A Faster Small Treewidth SDP Solver

Yuzhou Gu, Zhao Song

Introduction

Semidefine programming is one fundamental problem in optimization and theoretical computer science. It has many applications in computer science, such as verifying the robustness of neural network [RSL18], solving the discrepancy problems [Ban10], sparse matrix factorization [CSTZ22], sparsest cut [ARV09], 33-colorable graph [KMS94], terminal embeddings [CN21], quantum complexity theory [JJUW11], obtaining tight approximation ratio for MAXCUT [GW95], solving sum of squares programs [BS16, FKP19], and so on.

Mathematically, a semidefinite program can be defined as follows.

Over the last century, many efforts have been put into optimizing the running time of semidefinite programming [Sho77, YN76, Kha80, KTE88, NN89, Vai89, KM03, BV02, LSW15, JLSW20, JLSW20, JKL+20, HJS+22]. Based on how many iterations you need to solve semi-definite programming, the previous work of solving semi-definite programming can be splitted into three lines: cutting plane method [LSW15, JLSW20], log barrier function [JKL+20, HJS+22], volumetric/hybrid barrier function [HJS+22].

Many graph problems can be written as semidefinite programs with certain structure. For example, the famous Goemans-Williamson algorithm [GW95] relaxes MaxCut\mathsf{MaxCut} problem to a semidefinite program. When the underlying graph has low treewidth, the corresponding SDP also has small treewidth. While the MaxCut\mathsf{MaxCut} problem takes exponential time in treewidth [LMS11] (under plausible hyposthesis like Exponetial Time Hypothesis [IP01]), when treewidth is constant, it can be easily solved in linear time; on the other hand, before our work, it was not known whether MaxCut\mathsf{MaxCut} SDP can be solved in nearly linear time even when treewidth is constant. Another graph problem is Lovász theta function [Lov79], it is an important quantity in noisy communication and is naturally defined as a semidefinite program.

In practice, data sets on graphs often have small treewidth, see e.g. [ZL18, Table 1], and [DLY21, Appendix B]. Therefore SDP with small treewidth is a problem of practical interest.

In this work, we consider SDP for which the treewidth is small. Formally,

Given an SDP (Definition 1.1), we define its SDP graph as a graph G=(V,E)G=(V,E) where V=[n]V=[n] and

Treewidth of an SDP is defined as treewidth of the SDP graph.

Let τ\tau denote the treewidth of the SDP graph. The best previous work on small treewidth semidefinite programming is due to [ZL18], which runs in n1.5τ6.5n^{1.5}\tau^{6.5} time. A natural question to consider is,

Can we solve SDP much faster under treewidth assumption, i.e., in particular can we solve SDP in nearly linear time in nn?

In this work, we answer the above question in affirmative.

We make the following linear independence assumption on our SDP. This assumption is standard in IPM literature, and is also present previous works [ZL18].

Under Assumption 1.3, the total number of constraints mm is bounded by m≤τnm\leq\tau n.

For the standard semidefinite programming (without low-treewidth assumptions), the best previous algorithms are due to [JKL+20, HJS+22]. Those algorithms are based on dual-only central path algorithms. Due to technical reasons, even with small treewidth assumption, those techniques lead to algorithm with running time at least Ω(mω)\Omega(m^{\omega}),Here ω\omega denotes the exponent of matrix multiplication, i.e., multiplying an n×nn\times n matrix with another n×nn\times n matrix takes nωn^{\omega} time. Currently, ω≈2.373\omega\approx 2.373 [Wil12, AW21]. and cannot solve semidefinite programming with time only linear in nn.

There is an algorithm that solves semidefinite programming (1) with accuracy ϵ>0\epsilon>0 in

1.2 Low-Treewidth LP

Furthermore, we also improve the best previous low-treewidth LP result due to [DLY21] (which runs in nτ2n\tau^{2} time). Before stating our result for LP, let us define treewidth of an LP.

Given an LP, we construct the LP dual graph where vertices are constraints, and there is an edge between two vertices if they share a common variable (with non-zero coefficients). Then treewidth of the LP is defined as the treewidth of its LP dual graph.

There is an algorithm that solves linear programming (3) with accuracy ϵ>0\epsilon>0 in

1.3 Decomposable SDP

There are cases where Theorem 1.4 does not apply but we can still obtain an efficient SDP solving algorithm. One such case is summarized in the following theorem. To state the result, let us define the sparsity graph, a graph with potentially lower treewidth than the SDP graph (Definition 1.2).

Given an SDP (Definition 1.1), we define its sparsity graph as a graph G=(V,E)G=(V,E) where V=[n]V=[n] and

Let γmax⁡\gamma_{\max} be the maximum number of constraints a bag correspond to. Let τ\tau be the maximum size of a bag. Then the SDP can be solved in time O~(nτ0.5(τ2+γmax⁡)ω)\widetilde{O}(n\tau^{0.5}(\tau^{2}+\gamma_{\max})^{\omega}).

A special case for which the condition in Theorem 1.9 is satisfied is the “Network Flow Semidefinite Program” studied in [ZL18].

A network flow SDP is an SDP (Definition 1.1) where for every constraint matrix AiA_{i}, there exists a vertex ki∈[n]k_{i}\in[n] such that Ai,u,v≠0⇒ki∈{u,v}A_{i,u,v}\neq 0\Rightarrow k_{i}\in\{u,v\}.

[ZL18] gave an algorithm to solve network flow semidefinite programs in O~(n1.5τ3.5(τ+dmax⁡mmax⁡)3.5)\widetilde{O}(n^{1.5}\tau^{3.5}(\tau+d_{\max}m_{\max})^{3.5}) time, where dmax⁡d_{\max} is the maximum degree of the tree T\mathcal{T} and mmax⁡m_{\max} is the maximum number of network flow constraints at any vertex (i.e., mmax⁡:=max⁡k∈V#{i∈[m]:ki=k}m_{\max}:=\max_{k\in V}\#\{i\in[m]:k_{i}=k\}).

Using Theorem 1.9, we can achieve almost linear running time for network flow semidefinite programs.

The network flow semidefinite program can be solved in time O~(nτ0.5(τ2+γmax⁡)ω)\widetilde{O}(n\tau^{0.5}(\tau^{2}+\gamma_{\max})^{\omega}).

Note that for network flow SDPs, a trivial bound for γmax⁡\gamma_{\max} is γmax⁡≤τmmax⁡\gamma_{\max}\leq\tau m_{\max}.

2 Applications

In this section, we discuss three applications: MaxCut SDP, Lovasz Theta function, and low rank matrix completion.

For a graph, a maximum cut is a cut whose size is at least the size of any other cut. That is, it is a partition of the graph’s vertices into two complementary sets SS and TT, such that the number of edges between the set SS and the set TT is as large as possible. The problem of finding a maximum cut in a graph is known as the MaxCut\mathsf{MaxCut} Problem. This problem is NP-complete [Kar72], and also APX-hard [PY91]. The MaxkCut\mathsf{MaxkCut} problem is a natural generalization of MaxCut\mathsf{MaxCut}, where we would like to partition the set of vertices into kk disjoint parts, and maximize the number of edges between different parts. A Max2Cut\mathsf{Max2Cut} problem is the same as a MaxCut\mathsf{MaxCut} problem.

MaxCut\mathsf{MaxCut} and MaxkCut\mathsf{MaxkCut} admit natural SDP relaxations.

Let LGL_{G} be the weighted Laplacian matrix for a graph GG with nn vertices. There is a randomized algorithm to solve MaxkCut\mathsf{MaxkCut} with an approximation ratio of 1−1/k1-1/k based on solving

The classic Goemans-Williamson 0.878-approximation algorithm [GW95] for MaxCut\mathsf{MaxCut} is recovered by setting k=2k=2 and removing the redundant constraint Xi,j≥−1X_{i,j}\geq-1. This is the best possible approximation ratio under the Unique Games Conjecture [KKMO07].

2.2 Lovász Theta Function

We discuss another famous application of SDP which is the Lovász theta function,

The SDP graph (Definition 1.2) is obtained by adding a new vertex oo to the complement graph G‾\overline{G} of input graph GG, with an edge (i,o)(i,o) for all i∈Vi\in V. Given a tree decomposition of G‾\overline{G} with bag size τ\tau, a tree decomposition of the SDP graph with bag size τ+1\tau+1 can be obtained by adding the new vertex oo into every bag. So SDP treewidth is small when G‾\overline{G} has small treewidth.

2.3 Low Rank Matrix Completion

In the low rank matrix completion problem, we are given a partially filled matrix BB, where entries (i,j)∈Ω(i,j)\in\Omega are filled. The goal is to find a matrix XX of smallest rank that agrees with BB on Ω\Omega.

This problem is non-convex and in general difficult to solve. A popular relaxation [CR09] of the problem is to minimize the nuclear norm ∥⋅∥∗\|\cdot\|_{*} instead.

Furthermore, [CR09] rewrote the above formulation in the following equivalent form:

Let G=([n],Ω)G=([n],\Omega) be the adjacency graph. The SDP graph (Definition 1.2) is as follows: for every edge (i,j)∈Ω(i,j)\in\Omega, the SDP graph contains the clique {i,j,i+n,j+n}\{i,j,i+n,j+n\}.

3 Related Work

In the previous SDP literature, there are two lines of SDP solvers: second order methods and first order methods. Second order methods usually have running time with logarithmic dependence on ϵ\epsilon, while first order methods usually have polynomial dependence on ϵ\epsilon.

Second order methods can be further splitted into several lines: first line is cutting plane methods, for example [LSW15, JLSW20]. The algorithm in [LSW15, JLSW20] can solve semidefinite programming in O(m(mn2+m2+nω))O(m(mn^{2}+m^{2}+n^{\omega})) time. The second line is interior point methods (associated with certain self-concordant barrier functions), for example, [NN92, JKL+20, HJS+22] use log-barrier function, and [Ans00, HJS+22] use hybrid barrier function. The algorithm in [JKL+20] can solve SDP in O(n(mn2+nω+nω))O(\sqrt{n}(mn^{2}+n^{\omega}+n^{\omega})) time. Furthermore, [HJS+22] shows that as long as m=Ω(n2)m=\Omega(n^{2}), we can solve semidefinite programming in O(mω+m2+1/4)O(m^{\omega}+m^{2+1/4}) time.

The interior point method is a second-order algorithm. Second-order algorithms usually have logarithmic dependence on the error parameter 1/ϵ1/\epsilon. First-order algorithms do not need to use second-order information, but they usually have polynomial dependence on 1/ϵ1/\epsilon. There is a long list of work focusing on first-order algorithms [AK07, GH16, AZL17, CDST19, LP20, YTF+19, JY11, ALO16].

For a semidefinite program with bounded treewidth, the work [ZL18] shows how to solve it in O~(n1.5τ6.5)\widetilde{O}(n^{1.5}\tau^{6.5}) time.

Technique Overview

In this section, we explain the previous technique and summarize our new techniques.

In Section 2.1, we briefly summarize the techniques in [ZL18] and explain the barrier of that algorithm.

In Section 2.3, we briefly analyze running time of the algorithm in previous section and explain the bottlenecks.

In Section 2.4, we discuss how we improve the running time for bottlenecks, thus achieving an improved algorithm for low-treewidth SDP.

In Section 2.5, we discuss how we achieve improved algorithm for low-treewidth linear program.

In this section, we briefly summarize the technique in [ZL18].

Suppose we have an SDP of form (1) with a tree decomposition of maximum bag size τ\tau.

[ZL18] creates another SDP of smaller number of variables, where every bag in the tree decomposition becomes one τ×τ\tau\times\tau PSD matrix, which corresponds to an τ×τ\tau\times\tau principal minor in the original PSD matrix.

See Appendix 5 for a more detailed explanation of the program.

The new SDP has three types of contraints:

Ai∙Xji=biA_{i}\bullet X_{j_{i}}=b_{i}, which corresponds to linear constraints in the original SDP;

Ni,j(Xi)=Nj,i(Xj)\mathcal{N}_{i,j}(X_{i})=\mathcal{N}_{j,i}(X_{j}), which says that when two minors overlap in the original PSD matrix, they should have the same value in overlapping positions;

Xj≥0X_{j}\geq 0, meaning that each minor should be PSD.

After this reduction, we run IPM iteration directly.In fact, [ZL18] ran IPM on the dual SDP, because the maximum degree of a bag in the tree decomposition could be large. However, we can easily make the maximum degree O(1)O(1) by adding O(n)O(n) bags. This does not change the asymptotic running time but results in a simpler algorithm.

[ZL18] uses interior point method to solve (5). For every step, we need to perform computation of the following kind

HxH_{x} is the Hessian matrix, a block-diagonal matrix.

Because of the low-treewidth assumption, these updates can be implemeneted efficiently, as discussed below.

Number of iterations we need to run is controlled by the number of variables and geometry of the primal space. (More precisely, number of iterations is square root of sum of self-concordance value of all blocks.) Because we can have O(n)O(n) τ×τ\tau\times\tau matrix variables, each of them is in the PSD cone, which is is τ\tau-self-concordant, the total number of iterations is

Each of the matrix factors in the above equation can be computed in O~(nτ6)\widetilde{O}(n\tau^{6}) time, and contains O(nτ4)O(n\tau^{4}) non-zero entries, so cost per iteration is O~(nτ6)\widetilde{O}(n\tau^{6}).

So the overall running time of [ZL18]’s algorithm is O~(n1.5τ6.5)\widetilde{O}(n^{1.5}\tau^{6.5}).

More specifically, [DLY21] gave an O(nτ2)O(n\tau^{2}) algorithm for low-treewidth LP. Their central path equation is

where xx is the primal variable, yy is the dual variable, ss is the slack variable, and μ\mu denotes the error. The central path is defined as the path of (x,s)(x,s) as tt goes from initial value to .

where Hx=∇2ϕ(x)H_{x}=\nabla^{2}\phi(x) is the Hessian.

We only need to follow the central path approximately, meaning that when computing the steps, we could use x‾\overline{x} instead of xx, where x‾\overline{x} is a vector close enough to xx. The IPM algorithm works roughly in the following sense.

x←x+δxx\leftarrow x+\delta_{x}, s←s+δss\leftarrow s+\delta_{s}

The general LP and SDP central path algorithm (without treewidth assumption) maintains (AHx‾−1A⊤)−1(AH_{\overline{x}}^{-1}A^{\top})^{-1} directly, since we don’t have the benefit of Cholesky decomposition (coming from treewidth assumption). This would lead to algorithms with cost-per-iteration super-linear in nn.

The key idea of [DLY21] is that, instead of maintaining the pair (x,s)(x,s) on the central path explicitly, we maintain them implicitly (“multiscale coefficients”)

Similar ideas can be applied to our treewidth SDP case. We maintain primal-dual pairs (xi,si)(x_{i},s_{i}), and let them follow the central path. In each step, we need to run approximate Newton step

To maintain the central path, we need to have a data structure which can support (1) central path steps (8), and (2) report coordinates on which xx and x‾\overline{x} differ too much.

However, because we maintain (x,s)(x,s) implicitly, maintaining Φx\Phi x under central path steps and under change of multiscale representation and answering range queries is not a trivial task. We resolve this issue by using BlockBalancedSketch (Section 4.4.5), a block version of balanced sampling tree sketch in [DLY21]. Using BlockBalancedSketch and BlockVectorSketch (Section 4.4.4, an easy application of segment trees), we are able to implement BatchSketch (Section 4.4.3), a data structure for maintaining sketches of (x,s)(x,s).

Finally, by combining ExactDS and ApproxDS, we are able to maintain (x,s)(x,s) implicitly, and to maintain an approximation (x‾,s‾)(\overline{x},\overline{s}) explicitly. This gives our central path maintenance algorithm CentralPathMaintenance (Section 4.2).

3 Bottlenecks for Running Time

In this section we give a brief analysis of running time. The actual analysis is much more complicated, but the highlight the bottlenecks here.

Therefore, the final running time is a result of balancing the total restart time and update time.

In the following, we plug in the exact exponents of τ\tau and compute the running time.

Restart can be splitted into two steps, one is initialization and the other is output. The most time-consuming step is computing Choleky factorization in initialization.

As described in Algorithm 1, update can be splitted into mainly four substeps: Central path (ExactDS) move, ApproxDS query (using sketching data structure BatchSketch), ExactDS update, and sketching data structure BatchSketch update.

The central path move step takes O(1)O(1) time per iteration because it only updates constant coefficients in the multiscale representation.

4 Improve Running Time Bottleneck

In this section we discuss how to improve the running time bottleneck. As described in the last section, the most time consuming step is computing Cholesky factorization AHx‾−1A⊤=Lx‾Lx‾⊤AH_{\overline{x}}^{-1}A^{\top}=L_{\overline{x}}L_{\overline{x}}^{\top} (which affects restart time), and updating Cholesky factorization under change of one variable block (which affects update time).

5 Improve Running Time of Low-Treewidth LP

In this section, we discuss the technique we use to achieve a more efficient algorithm for LP with bounded treewidth.

Recall that the key idea of [DLY21] is, instead of maintaining the primal and slack variables on the (approximate) central path explicitly, we maintain a sparsely-changing representation (multiscale representation) of them. The central path maintenance algorithm has two main parts (1) restart (which contains initialize and output), and (2) update. In every iteration, if certain conditions are satisfied, we restart the data structure. Afterwards, we perform a central path move and maintain the relevant data structures ExactDS and ApproxDS. The final running time is achieved by balancing restart time and update time.

We improve restart time by devising improved algorithms for computations related to Cholesky factorization. One main step in initialization part is to compute the Cholesky factorization of the matrix AHx‾−1A⊤=Lx‾Lx‾⊤AH_{\overline{x}}^{-1}A^{\top}=L_{\overline{x}}L_{\overline{x}}^{\top}. Because of the treewidth assumption, the Cholesky factor Lx‾L_{\overline{x}} is O~(τ)\widetilde{O}(\tau)-column sparse, i.e., every column has at most O~(τ)\widetilde{O}(\tau) non-zero entries. Using this property, [DLY21] is able to compute the Choleksy factorization in O~(nτ2)\widetilde{O}(n\tau^{2}) time.

We can do better by utilization more properties of the matrix. The key observation is that we can divide the indices of AHx‾−1A⊤AH_{\overline{x}}^{-1}A^{\top} into blocks of size O(τ)O(\tau), such that in the Cholesky factor is O~(1)\widetilde{O}(1)-block sparse, i.e., every block column has at most O~(1)\widetilde{O}(1) non-zero block entries.

In this way, we can perform the Choleksy factorization algorithm on block level, achieving an algorithm (c.f. Lemma 6.4, 8.4) running in time

Using similar ideas, we are able to improve other Cholesky-related computations, including Cholesky factor inverse (c.f. Lemma 8.7), product of Cholesky factor and a batch of vectors (c.f. Lemma 8.8), and so on. These are all bottleneck steps in the original [DLY21] algorithm. By combining all these improvements, we achieve improved running time for restart.

The overall running time is sum of restart time and update time. In the LP case, the number of iterations NN is n\sqrt{n}. Let qq be the data structure restart threshold. Then overall restart time is given by

where the last step is by taking q=n0.5τ(ω−3)/2q=n^{0.5}\tau^{(\omega-3)/2}.

Acknowledgements

The authors would like to thank Guanghao Ye and Lichen Zhang for useful discussions.

Here, we provide an organization for the rest of the paper.

In Section 3, we present a few basic definitions and results used in the paper.

In Section 4, we present a general framework which covers both semidefinite programming and linear programming.

In Section 6: we show how to further improve the running time of semidefinite programming solver to achieve an O~(nτ2ω+0.5)\widetilde{O}(n\tau^{2\omega+0.5}) time algorithm.

In Section 7, we show how to solve a more general kind of low-treewidth SDP (which we call decomposable SDP) using our general framework.

In Section 8, we show how to improve running time of low-treewidth linear programming to O~(nτ(ω+1)/2)\widetilde{O}(n\tau^{(\omega+1)/2}).

Preliminaries

In Section 3.1, we define some basic notations. In Section 3.2, we define self concordant barrier. In Section 3.3, we define treewidth. In Section 3.4, we introduce some backgrounds for sketching matrices.

For two functions f,gf,g, we use the shorthand f≲gf\lesssim g (resp. ≳\gtrsim) to indicate that f≤C⋅gf\leq C\cdot g (resp. ≥\geq) for an absolute constant CC. We use f≂gf\eqsim g to mean cf≤g≤Cfcf\leq g\leq Cf for constants c,Cc,C.

We use ω\omega to denote the exponent of matrix multiplication, i.e., multiplying an n×nn\times n matrix with another n×nn\times n matrix takes nωn^{\omega} time. Currently, ω≈2.373\omega\approx 2.373 [Wil12, AW21].

We will deal with block matrices and vectors a lot. Therefore we use a block-friendly notation.

In particular ∥x∥0,1=∥x∥0\|x\|_{0,1}=\|x\|_{0}, ∥x∥2,2=∥x∥2\|x\|_{2,2}=\|x\|_{2}.

2 Self-Concordant Barrier

We start with defining self concordant barrier,

A function ϕ\phi is a self-concordant barrier if the first condition holds.

Log-barrier for the n×nn\times n PSD cone is nn-self-concordant.

3 Treewidth

Let G=(V,E)G=(V,E) be a graph, a tree decomposition of GG is a tree TT with bb vertices, and bb sets J1,…,Jb⊆VJ_{1},\ldots,J_{b}\subseteq V (called bags), satisfying the following properties:

For every edge (u,v)∈E(u,v)\in E, there exists j∈[b]j\in[b] such that u,v∈Jju,v\in J_{j};

For every vertex v∈Vv\in V, {j∈[b]:v∈Jj}\{j\in[b]:v\in J_{j}\} is a non-empty subtree of TT.

The treewidth of GG is defined as the minimum value of max⁡{∣Jj∣:j∈[b]}−1\max\{|J_{j}|:j\in[b]\}-1 over all tree decompositions.

4 Sketching Matrices

5 Sparse Cholesky Decomposition

In this section we state a few basic results on sparse Cholesky decomposition. The following definition essentially come from [Sch82].

Let GG be an undirected graph on nn vertices. An elimination tree T\mathcal{T} is a rooted tree on V(G)V(G) together with an ordering π\pi of V(G)V(G) such that for any vertex vv, its parent is the smallest (under π\pi) element uu such that there exists a path PP from vv to uu, such that π(w)≤π(v)\pi(w)\leq\pi(v) for all w∈P−uw\in P-u.

The following lemma is useful in proving elimination trees.

Let GG be an undirected graph on nn vertices. Let T\mathcal{T} be a rooted tree with nn vertices, satisfying the property that: for any path u=v1,⋯ ,vk=vu=v_{1},\cdots,v_{k}=v with (vi,vi+1)∈E(G)(v_{i},v_{i+1})\in E(G) for all i∈[k−1]i\in[k-1], then there exists i∈[k]i\in[k] such that viv_{i} is an ancestor of both uu and vv. Then T\mathcal{T} together with any post-order traversal of T\mathcal{T} is an elimination tree.

We prove that T\mathcal{T} satisfies Definition 3.7. Let v∈V(G)v\in V(G) and PP be any path from vv to a vertex outside the subtree rooted at vv. By assumption, there exists a vertex u∈Pu\in P which is an ancestor of vv. Let ww be the parent of vv. Then π(u)≥π(w)>π(v)\pi(u)\geq\pi(w)>\pi(v). Therefore ww is the smallest element reachable from vv using only elements before vv. ∎

When any post-order traversal of T\mathcal{T} works, we omit the choice of π\pi and say T\mathcal{T} is an elimination tree.

Under the setting of Lemma 3.8, if depth of T\mathcal{T} is at most τ\tau, then the Cholesky decomposition LL can be computed in O(nτ2)O(n\tau^{2}) time.

General Treewidth Program Solver Framework

In this section we establish a general framework for solving treewidth LP/SDP and related problems. Our framework takes block size into consideration and do not assume various block size-related parameters are constant. Our framework takes in certain subroutine running time as parameters. This allows us to see which subroutines are running time bottlenecks. Our SDP and LP results follow from the general framework with minimal problem-specific results in addition.

We briefly describe the outline of this section.

In Section 4.1, we present the definitions and backgrounds for this Section 4.

In Section 4.2, we present the main data structure which is central path maintenance data structure.

In Section 4.3, we present several computation-related lemmas which will be heavily used in our tasks.

In Section 4.4, we present several data structures that are being used in central path maintenance, including ExactDS (Section 4.4.1), ApproxDS (Section 4.4.2), BatchSketch (Section 4.4.3) and BlockVectorSketch(Section 4.4.4).

In Section 4.5, we prove correctness and running time of the central path maintenance data structure.

In Section 4.6, we prove the main result (Theorem 4.3).

We consider programs of the following form.

We make the following assumptions on Program (9) and define relevant parameters. These parameters will have an impact to the final running time (Theorem 4.3).

Assume that for each Ki\mathcal{K}_{i}, we have a νi\nu_{i}-self-concordant barrier function ϕi\phi_{i}. Let νmax⁡:=max⁡i∈[n]νi\nu_{\max}:=\max_{i\in[n]}\nu_{i}.

Assume that ϕi\phi_{i}, ∇ϕi\nabla\phi_{i} and ∇2ϕi\nabla^{2}\phi_{i} can be computed in TH,iT_{H,i} time. Define TH,max⁡:=max⁡i∈[n]TH,iT_{H,\max}:=\max_{i\in[n]}T_{H,i} and TH:=∑i∈[n]TH,iT_{H}:=\sum_{i\in[n]}T_{H,i}.

Assume that it takes TLT_{L} time to compute Cholesky decomposition AHA⊤=LL⊤AHA^{\top}=LL^{\top}.

Assume that it takes TΔL,max⁡T_{\Delta_{L},\max} time to update Cholesky decomposition, i.e., given AHA⊤=LL⊤AHA^{\top}=LL^{\top} and ΔH\Delta_{H} supported on a single diagonal block, computing ΔL\Delta_{L} such that A(H+ΔH)A⊤=(L+ΔL)(L+ΔL)⊤A(H+\Delta_{H})A^{\top}=(L+\Delta_{L})(L+\Delta_{L})^{\top}.

Assume that it takes TZT_{Z} time to compute L−1viL^{-1}v_{i} for all i∈[m]i\in[m], where viv_{i} is supported on ⋃j∈P(i)Bj\bigcup_{j\in\mathcal{P}(i)}B_{j}, where P(i)\mathcal{P}(i) is the set of ancestors of vertex ii. This is used in Lemma 4.24.

Assume that RR is the diameter of Ki\mathcal{K}_{i}. Assume that we are given an initial point xx such that B(x,r)⊆KB(x,r)\subseteq\mathcal{K}. Assume that there exists xx such that Az=bAz=b and B(x,r)⊆KB(x,r)\subseteq\mathcal{K}.

Under assumptions in Definition 4.2, given any 0<ϵ≤120<\epsilon\leq\frac{1}{2}, we can find x∈Kx\in\mathcal{K} with Ax=bAx=b such that

2 Algorithm structure and CentralPathMaintenance

Our algorithm is a robust Interior Point Method (robust IPM). Details of the robust IPM will be given in Section A.

and explicitly maintain (x‾,s‾)(\overline{x},\overline{s}) such that they remain close to (x,s)(x,s).

This task is handled by the CentralPathMaintenance data structure, which is the main data structure. The robust IPM algorithm (Algorithm 19,20) directly calls it in every iteration. This data structure is a generalization of CentralPathMaintenance data structure in [DLY21].

The CentralPathMaintenance data structure (Algorithm 2) has two main sub data structures, ExactDS (Algorithm 4 and Algorithm 5) and ApproxDS. ExactDS is used to to maintain (x,s)(x,s), and ApproxDS is used to monitor changes in (x,s)(x,s), and update (x‾,s‾)(\overline{x},\overline{s}) when necessary.

MultiplyAndMove(t)(t): (See Lemma 4.38) It implicitly maintains

Assuming the function is called at most NN times and tt is monotonically decreasing from tmax⁡t_{\max} to tmin⁡t_{\min}, the total running time is

Correctness and running time analysis of CentralPathMaintenance is deferred to Section 4.5 and Section 4.6, after we establish properties of the sub data structures.

3 Block Elimination Tree and Computation-Related Lemmas

Our algorithm is based on efficient computations involving Cholesky factorization and the block elimination tree. In this section we introduce the block elimination tree and prove a few useful lemmas on running time of relevant computations. They will be used repeatedly in the running time analysis of our algorithm.

Under the setting of Program 9, we always take GG to be the LP dual graph, and MM to be AHx‾−1A⊤AH_{\overline{x}}^{-1}A^{\top}.

The following lemma is the block verion of Lemma 3.9.

We define another tree T′\mathcal{T}^{\prime} with block pattern (1,…,1)(1,\ldots,1). For every vertex vv in T\mathcal{T}, we replace it with a path (of an arbitrary ordering of elements in vv). For all edges in T\mathcal{T}, we connect top element of the child and the bottom element of the parent.

In this way, T′\mathcal{T}^{\prime} satisfies the property that for any path u=v1,⋯ ,vk=vu=v_{1},\cdots,v_{k}=v with (vi,vi+1)∈E(G)(v_{i},v_{i+1})\in E(G) for all i∈[mk−1]i\in[m_{k}-1], then there exists i∈[k]i\in[k] such that viv_{i} is an ancestor of both uu and vv. By Lemma 3.9, T′\mathcal{T}^{\prime} is a valid elimination tree. This implies that T\mathcal{T} is a valid block elimination tree. ∎

As in Definition 4.2, we assume that we are given a block elimination tree with (block) depth η\eta. We can without loss of generality assume that the blocks are labeled in postorder, i.e., for any ii and j∈P(i)j\in\mathcal{P}(i), we have i<ji<j.

Given a block elimination tree, we can efficiently perform many computations related to the Cholesky decomposition, as shown in the following lemma.

Assume that we are given a block elimination tree with block structure (m1,…,mm)(m_{1},\ldots,m_{m}) and block depth η\eta. Assume that we are given the Cholesky factorization AHA⊤=LL⊤AHA^{\top}=LL^{\top} together with inverses of the diagonal blocks of LL, i.e., Li,i−1L_{i,i}^{-1} for all i∈[m]i\in[m].

Then we have the following running time for matrix-vector multiplications.

Statements about L⊤vL^{\top}v and L−⊤vL^{-\top}v follow from the Transposition principle [Bor57].

If vv is supported on a single block i∈[m]i\in[m], then computing LvLv takes ∑j∈P(i)mj2=O(ηmmax⁡2)\sum_{j\in\mathcal{P}(i)}m_{j}^{2}=O(\eta m_{\max}^{2}) time by block column sparsity of LL. So computing LvLv for general vv takes O(∥v∥2,0ηmmax⁡2)O(\|v\|_{2,0}\eta m_{\max}^{2}) time.

Consider Algorithm 3. By block column sparsity pattern of LL, for every block j∈[m]j\in[m] with xj≠0x_{j}\neq 0, it takes O(ηmmax⁡2)O(\eta m_{\max}^{2}) time to compute xjx_{j} and update v←v−L∗,jxjv\leftarrow v-L_{*,j}x_{j}. So overall running time is O(∥L−1v∥2,0ηmmax⁡2)O(\|L^{-1}v\|_{2,0}\eta m_{\max}^{2}).

W⊤v=H−1/2A⊤L−⊤v\mathcal{W}^{\top}v=H^{-1/2}A^{\top}L^{-\top}v. So the result follows from combining (i)(vii)(v).

Assume that we are given a block elimination tree with block structure (m1,…,mm)(m_{1},\ldots,m_{m}) and block depth η\eta. Assume that we are given the Cholesky factorization AHA⊤=LL⊤AHA^{\top}=LL^{\top} together with inverses of the diagonal blocks of LL, i.e., Li,i−1L_{i,i}^{-1} for all i∈[m]i\in[m].

Then we have the following running time for matrix-vector multiplications, when we only need result for a subset of coordinates.

We have (L−⊤v)S=eS⊤L−⊤v=(v⊤L−1eS)⊤(L^{-\top}v)_{S}=e_{S}^{\top}L^{-\top}v=(v^{\top}L^{-1}e_{S})^{\top}. By column sparsity pattern of LL, L−1eSL^{-1}e_{S} is supported on SS. So (L−⊤v)S(L^{-\top}v)_{S} depends only on vSv_{S}. So we only need to compute LS,S−⊤vSL_{S,S}^{-\top}v_{S}, which takes O(η2mmax⁡2)O(\eta^{2}m_{\max}^{2}) time By Lemma 4.7(i).

We state a generic bound on TZT_{Z} (recall Definition 7.1).

Computing each L−1viL^{-1}v_{i} takes O(η2mmax⁡2)O(\eta^{2}m_{\max}^{2}) time by Lemma 4.7(iv). So computing mm of them takes O(η2mmmax⁡2)O(\eta^{2}mm_{\max}^{2}) time. ∎

4 Data structures being used in CentralPathMaintenance

In Section 4.4, we present several data structures that are being used in central path maintenance, including:

ExactDS (Section 4.4.1). This data structure implicitly maintains the primal-dual solution pair (x,s)(x,s). This data structure is directly used by CentralPathMaintenance.

ApproxDS (Section 4.4.2). This data structure explicitly maintains the approximate primal-dual solution pair (x‾,s‾)(\overline{x},\overline{s}). This data structure is directly used by CentralPathMaintenance.

BatchSketch (Section 4.4.3). This data structure maintains a sketch of xx and ss, using BlockVectorSketch and BlockBalancedSketch. This data structure is used by ApproxDS.

BlockVectorSketch(Section 4.4.4). This data structure maintains a sketch of a vector (with block pattern) under single-point updates. This data structured is used by BatchSketch.

BlockBalancedSketch(Section 4.4.5). This data structure maintains a sketch of a vector of form W⊤v\mathcal{W}^{\top}v, under updates of (x‾,s‾)(\overline{x},\overline{s}). This data structure is used by BatchSketch.

In this section, we present our ExactDS (Algorithm 4 and Algorithm 5). In Theorem 4.11, we provide our theoretical statement for Algorithm 4 and Algorithm 5. This is a block-based generalization of MultiscaleRepresentation data structure of [DLY21].

We can write the central path update using multiscale representation

The data structure supports the following functions:

time, with initial value of the primal-dual pair (x,s)(x,s), its initial approximation (x‾,s‾)(\overline{x},\overline{s}), and initial approximate timestamp t‾\overline{t}.

time, and output the changes in variables δh,δϵx,δϵs,δHx‾1/2x^,δHx‾−1/2s^,δH‾x‾−1/2cx\delta_{h},\delta_{\epsilon_{x}},\delta_{\epsilon_{s}},\delta_{H_{\overline{x}}^{1/2}\widehat{x}},\delta_{H_{\overline{x}}^{-1/2}\widehat{s}},\delta_{\overline{H}_{\overline{x}}^{-1/2}c_{x}}.

Furthermore, δh,δϵx,δϵs\delta_{h},\delta_{\epsilon_{x}},\delta_{\epsilon_{s}} changes in O(η(∥δx‾∥2,0+∥δs‾∥2,0))O(\eta(\|\delta_{\overline{x}}\|_{2,0}+\|\delta_{\overline{s}}\|_{2,0})) blocks, and δHx‾1/2x^,δHx‾−1/2s^,δH‾x‾−1/2cx\delta_{H_{\overline{x}}^{1/2}\widehat{x}},\delta_{H_{\overline{x}}^{-1/2}\widehat{s}},\delta_{\overline{H}_{\overline{x}}^{-1/2}c_{x}} changes in O(∥δx‾∥2,0+∥δs‾∥2,0)O(\|\delta_{\overline{x}}\|_{2,0}+\|\delta_{\overline{s}}\|_{2,0}) blocks.

Queryx(i∈[n])x(i\in[n]): Output xix_{i} in O~(nmax⁡2+η2mmax⁡2)\widetilde{O}(n_{\max}^{2}+\eta^{2}m_{\max}^{2}) time. This function is used by ApproxDS.

Querys(i∈[n])s(i\in[n]): Output sis_{i} in O~(nmax⁡2+η2mmax⁡2)\widetilde{O}(n_{\max}^{2}+\eta^{2}m_{\max}^{2}) time. This function is used by ApproxDS.

By combining Lemma 4.12, 4.13, 4.15, 4.16. ∎

ExactDS correctly maintains an implicit representation of (x,s)(x,s), i.e., invariant

Initialize: Initialization satisfies the invariant because x^=x\widehat{x}=x, s^=s\widehat{s}=s, ϵx=ϵs=0\epsilon_{x}=\epsilon_{s}=0, βx=βs=0\beta_{x}=\beta_{s}=0. Furthermore, we correctly initialize Hx‾H_{\overline{x}}, Lx‾L_{\overline{x}}, α‾\overline{\alpha}, δ‾μ\overline{\delta}_{\mu}, cx=Hx‾−1/2δ‾μc_{x}=H_{\overline{x}}^{-1/2}\overline{\delta}_{\mu}, h=Lx‾−1AHx‾−1δ‾μh=L_{\overline{x}}^{-1}AH_{\overline{x}}^{-1}\overline{\delta}_{\mu}.

Move: By inspecting terms with coefficient βx,βs\beta_{x},\beta_{s}, we see that we move in the correct direction and step size.

Update: We would like to prove that Update does not change the value of (x,s)(x,s). First note that Hx‾H_{\overline{x}} and Lx‾L_{\overline{x}}, α‾\overline{\alpha}, δ‾μ\overline{\delta}_{\mu} are update correctly. The remaining updates are separated into two steps: UpdateHH and UpdateW\mathcal{W}.

So cxc_{x} and hh are updated correctly. Furthermore, immediately after Algorithm 5, Line 24, we have

So xx is updated correctly, i.e., after UpdateHH finishes, we have

Immediately after Algorithm 5, Line 24, we have

So ss is updated correctly, i.e., after UpdateHH finishes, we have

So xx is updated correctly, i.e., after UpdateW\mathcal{W} finishes, we have

Immediately after Algorithm 5, Line 33, we have

So ss is updated correctly, i.e., after UpdateW\mathcal{W} finishes, we have

Computing Hx‾H_{\overline{x}} takes THT_{H} time. Computing Lx‾L_{\overline{x}} takes TLT_{L} time.

ExactDS.Move (Algorithm 4) runs in O(1)O(1) time.

All steps in this procedure can be done in O(1)O(1) time. ∎

Each call of ExactDS.Update (Algorithm 5) runs in

time. Furthermore, δh,δϵx,δϵs\delta_{h},\delta_{\epsilon_{x}},\delta_{\epsilon_{s}} changes in O(η(∥δx‾∥2,0+∥δs‾∥2,0))O(\eta(\|\delta_{\overline{x}}\|_{2,0}+\|\delta_{\overline{s}}\|_{2,0})) blocks, and δHx‾1/2x^,δHx‾−1/2s^,δH‾x‾−1/2cx\delta_{H_{\overline{x}}^{1/2}\widehat{x}},\delta_{H_{\overline{x}}^{-1/2}\widehat{s}},\delta_{\overline{H}_{\overline{x}}^{-1/2}c_{x}} changes in O(∥δx‾∥2,0+∥δs‾∥2,0)O(\|\delta_{\overline{x}}\|_{2,0}+\|\delta_{\overline{s}}\|_{2,0}) blocks.

It remains to analyze two parts UpdateHH and UpdateW\mathcal{W}. We will analyze these two parts separately in the next a few paragraphs.

time by Lemma 4.8(i). Also, δh\delta_{h} is supported on O(∥δx∥2,0)O(\|\delta_{x}\|_{2,0}) paths in the block elimination tree, thus O(η∥δx∥2,0)O(\eta\|\delta_{x}\|_{2,0}) blocks, or O(ηnmax⁡∥δx∥2,0)O(\eta n_{\max}\|\delta_{x}\|_{2,0}) dimension.

We compute δx^\delta_{\widehat{x}} and δs^\delta_{\widehat{s}} from left to right. This takes

Computing δx^\delta_{\widehat{x}} and δs^\delta_{\widehat{s}} takes

To compute δϵx\delta_{\epsilon_{x}} and δϵs\delta_{\epsilon_{s}}, we first compute (L−⊤(βxh+ϵx))S(L^{-\top}(\beta_{x}h+\epsilon_{x}))_{S}, where S∈[m]S\in[m] is the row support of ΔL\Delta_{L}, which can be decomposed into at most ∥δx‾∥2,0\|\delta_{\overline{x}}\|_{2,0} paths. This takes

time by Lemma 4.8(i). So computing δϵx\delta_{\epsilon_{x}} and δϵs\delta_{\epsilon_{s}} takes

Combining everything finishes the proof of running time.

For the claim on output sparsity, note that δh,δϵx,δϵs\delta_{h},\delta_{\epsilon_{x}},\delta_{\epsilon_{s}} change in O(∥δx‾∥2,0+∥δs‾∥2,0)O(\|\delta_{\overline{x}}\|_{2,0}+\|\delta_{\overline{s}}\|_{2,0}) paths, and that δHx‾1/2x^,δHx‾−1/2s^,δH‾x‾−1/2cx\delta_{H_{\overline{x}}^{1/2}\widehat{x}},\delta_{H_{\overline{x}}^{-1/2}\widehat{s}},\delta_{\overline{H}_{\overline{x}}^{-1/2}c_{x}} change only in the support of δx‾\delta_{\overline{x}} and support of δs‾\delta_{\overline{s}}. ∎

Correctness is by Lemma 4.12. By Lemma 4.7(viii). ∎

ExactDS.Queryxx (Algorithm 4) and ExactDS.Queryss (Algorithm 4) runs in O(nmax⁡2+η2mmax⁡2)O(n_{\max}^{2}+\eta^{2}m_{\max}^{2}) time and returns the correct answer.

Correctness is obvious. Running time follows from Lemma 4.8(ii). ∎

4.2 ApproxDS

In this section we introduce ApproxDS, data structure for maintaining a sparsely-changing approximation of (x,s)(x,s).

Furthermore, total time cost over all queries is at most

The proof for ss is similar and omitted.

Initialize: By Initialize part of Theorem 4.21.

Then the running time bound for Queryxx follows from Query part of Theorem 4.11 and Queryxx part of Theorem 4.21.

The proof for ss is similar and omitted. ∎

4.3 BatchSketch

In this section we introduce BatchSketch, our data structure for maintaining a sketch of Hx‾1/2xH_{\overline{x}}^{1/2}x and Hx‾−1/2sH_{\overline{x}}^{-1/2}s.

For this task, we need another tree structure on the set of variable blocks.

If vv is a leaf node of S\mathcal{S}, then ∣χ(v)∣=1|\chi(v)|=1

For any node vv of S\mathcal{S}, the set \{\chi(c):\text{cisachildofis a child ofv}\} forms a partition of χ(v)\chi(v).

The partition tree does not need to (but can) have any relationship with the block elimination tree. The partition tree will need to satisfy O(1)O(1) maximum degree and O~(1)\widetilde{O}(1) depth. We will choose the partition tree in Section 4.4.5 so that the BlockBalancedSketch data structure can be efficiently maintained.

Data structure BatchSketch (Algorithm 8, 9) supports the following operations:

For every query, with probability at least 1−δ1-\delta, the return values are correct, and costs at most

For every query, with probability at least 1−δ1-\delta, the return values are correct, and costs at most

Correctness: Correctness of Update follows from combining Lemma 4.23 and Lemma 4.29. In the following we focus on correctness of queries.

Proof of correctness of Queryss is similar and omitted.

Initialize: Follows from Lemma 4.23 and Lemma 4.30.

Update: Follows from Lemma 4.23 and Lemma 4.31.

Then the result follows from Lemma 4.23 and Lemma 4.35.

Queryss: Proof is similar to Queryxx and is omitted. ∎

4.4 BlockVectorSketch

In this section we present BlockVectorSketch (Algorithm 10), data structure for maintaining a vector with block structure under sparse changes. This is generalization of VectorSketch in [DLY21].

Query(v∈V(S))(v\in V(\mathcal{S})): Outputs Φχ(v)xχ(v)\Phi_{\chi(v)}x_{\chi(v)} in O(rlog⁡n)O(r\log n) time.

Note that in Theorem 4.23, the running time does not depend on depth of the partition tree.

Correctness follows from from guarantees of segment trees.

Update: For every modified coordinate, it takes O(rlog⁡n)O(r\log n) time to update T\mathcal{T}. So total time cost is O(r∥δx∥0log⁡n)O(r\|\delta_{x}\|_{0}\log n).

Query: Takes O(rlog⁡n)O(r\log n) time because of segment tree query time.

4.5 BlockBalancedSketch

Initialize(S,χ,Φ,x‾,h)(\mathcal{S},\chi,\Phi,\overline{x},h): Initializes the data structure in

Query(v)(v): Outputs Φχ(v)(W⊤h)χ(v)\Phi_{\chi(v)}(\mathcal{W}^{\top}h)_{\chi(v)} in O~(rη2mmax⁡2)\widetilde{O}(r\eta^{2}m_{\max}^{2}) time.

The algorithm is a block version of [DLY21, Section 6.6.1]. We nevertheless present a full proof for completeness.

Let us first describe the main idea of the algorithm. Note that in BlockBalancedSketch, we have the freedom of choosing the partition tree (S,χ)(\mathcal{S},\chi). Then this tree is used by BatchSketch and BlockVectorSketch. Therefore we can choose a partition tree which works well for our purpose.

Let us consider the operations BlockBalancedSketch needs to support. It needs to support updating x‾\overline{x} and hh, and answering queries on a subtree χ(v)\chi(v). Change of one block in x‾\overline{x} leads to change of one path in the block elimination tree T\mathcal{T}, and change of one block in hh leads to change of one subtree in T\mathcal{T}. Therefore we essentially would like a data structure which supports subtree and path updates and subtree queries. With this in mind, it is natural to use heavy-light decomposition [ST81].

Given a rooted tree T\mathcal{T} with mm vertices, we can construct in O(m)O(m) time an ordering π\pi of the vertices such that (1) every path in T\mathcal{T} can be decomposed into O(log⁡m)O(\log m) contiguous subseqeuences under π\pi, and (2) every subtree in T\mathcal{T} is a single contiguous subsequence under π\pi.

We fix an ordering π\pi of [m][m] using the heavy-light decomposition (Lemma 4.25). We construct complete binary tree B\mathcal{B} with leaves [m][m] and ordering π\pi.

To get a partition tree, we need to add leaves [n][n] to B\mathcal{B}. For every coordinate i∈[n]i\in[n], let lowT(i)\mathsf{low}^{\mathcal{T}}(i) be any vertex vv in T\mathcal{T} such that the support of A∗,iA_{*,i} is contained in PT(v)\mathcal{P}^{\mathcal{T}}(v). (Recall that for a block elimination tree, support of A∗,iA_{*,i} is contained in a path for any i∈[n]i\in[n].) For any j∈[m]j\in[m], we construct a complete binary tree with leaves {i∈[n]:lowT(i)=j}\{i\in[n]:\mathsf{low}^{\mathcal{T}}(i)=j\} and hang this tree under leaf jj in B\mathcal{B}. This finishes the construction of a partition tree (S,χ)(\mathcal{S},\chi).

The following definitions come from [DLY21].

We make the following definitions. For v∈Bv\in\mathcal{B}, define

where χ‾(v)\overline{\chi}(v) is the set of leaves in B\mathcal{B} which are descendants of vv.

For u∈Tu\in\mathcal{T}, define Λ∘(u)\Lambda^{\circ}(u) be the lowest vertex v∈Bv\in\mathcal{B} such that u∈Λ‾(v)u\in\overline{\Lambda}(v). In other words, Λ∘(u)\Lambda^{\circ}(u) is the lowest vertex v∈Bv\in\mathcal{B} such that χ‾(v)\overline{\chi}(v) contains DT(u)\mathcal{D}^{\mathcal{T}}(u) (set of descendants of uu in T\mathcal{T}). Therefore Λ∘(u)\Lambda^{\circ}(u) is well-defined.

For any vv, Λ(v)\Lambda(v) is contained in the union of two paths in T\mathcal{T}. In particular, ∣Λ(v)∣=O(η)|\Lambda(v)|=O(\eta).

The order π\pi in Lemma 4.25 is a pre-order traversal of T\mathcal{T}. Let uu be the last vertex before χ‾(v)\overline{\chi}(v) under π\pi, and ww be the first vertex after χ‾(v)\overline{\chi}(v) under π\pi. Then Λ(v)\Lambda(v) is contained in PT(u)∪PT(w)\mathcal{P}^{\mathcal{T}}(u)\cup\mathcal{P}^{\mathcal{T}}(w). ∎

BlockBalancedSketch correctly maintains a sketch of W⊤h\mathcal{W}^{\top}h, and all query results are returned correctly.

We prove that the following invariant always holds after every call to BlockBalancedSketch.

Initialize: The invariants are clearly satisfied after initialization.

Query: If v∈S\Bv\in\mathcal{S}\backslash\mathcal{B} then we compute JvLx‾[t]−⊤hJ_{v}L_{\overline{x}}[t]^{-\top}h directly and the result is correct.

Now assume v∈Bv\in\mathcal{B}. We update tv←tt_{v}\leftarrow t, and update ZvZ_{v} and yv▽y_{v}^{\triangledown} accordingly. We have Note that

because Invariant (13) and column sparsity of ZvZ_{v}. So

So Invariant (11) is satisfied. Updating yv▽y_{v}^{\triangledown} ensures that Invariant (12) is satisfied. Finally, the return value is correct because of definition of yv▽y_{v}^{\triangledown} and yv△y_{v}^{\vartriangle}.

Update: We divide the proof into several steps. Correctness of Updatexx follows from correctness of UpdateLL and UpdateHH (which we will prove below).

Correctness of UpdateHH: We update tvt_{v}, ZvZ_{v} and yv▽y_{v}^{\triangledown} for v∈S=PB(Λ∘(lowT(i)))v\in S=\mathcal{P}^{\mathcal{B}}(\Lambda^{\circ}(\mathsf{low}^{\mathcal{T}}(i))). In other words, SS is the set of all vertices vv with lowT(i)∈Λ‾(v)\mathsf{low}^{\mathcal{T}}(i)\in\overline{\Lambda}(v). For any v∉Sv\not\in S, L[t]⋅IΛ‾(v)L[t]\cdot I_{\overline{\Lambda}(v)} is not changed. So Invariant (13) is preserved for v∉Sv\not\in S.

Fix v∈Sv\in S. In Algorithm 13, Line 5, we update tvt_{v} to t−1t-1. In Algorithm 13, Line 6, we update tvt_{v} to tt. By a similar computation as the one we did for Query, ZvZ_{v} is updated correctly (i.e., Invariant (11) is preserved). This implies yv▽y_{v}^{\triangledown} is updated correctly (i.e., Invariant (12) is preserved).

Correctness of UpdateLL: We update JvJ_{v}, ZvZ_{v}, yv▽y_{v}^{\triangledown} for all v∈PS(u)v\in\mathcal{P}^{\mathcal{S}}(u) (where χ(u)={i}\chi(u)=\{i\}). Invariant (13) is preserved because tvt_{v} does not change. Invariant (10), (11), (12) are preserved by our choice of δJv\delta_{J_{v}}, δZv\delta_{Z_{v}}, δyv▽\delta_{y_{v}^{\triangledown}}.

Correctness of Algorithm 12, Line 6 to Line 11: This part is “Updatehh”. For i∈[m]i\in[m] with δh,i≠0\delta_{h,i}\neq 0, we update yu▽y_{u}^{\triangledown} for u∈Bu\in\mathcal{B} such that i∈Λ‾(u)i\in\overline{\Lambda}(u). Recall that PB(Λ∘(i))\mathcal{P}^{\mathcal{B}}(\Lambda^{\circ}(i)) contains all vertices uu such that i∈Λ‾(u)i\in\overline{\Lambda}(u). So Invariant (12) is satisfied. ∎

BlockBalancedSketch.Initialize (Algorithm 11) costs

Computing Hx‾H_{\overline{x}} takes THT_{H} time. Computing Hx‾−1H_{\overline{x}}^{-1}, Hx‾−1/2H_{\overline{x}}^{-1/2} takes O(Tn)O(T_{n}) time. Computing Lx‾[t]L_{\overline{x}}[t] takes TLT_{L} time.

Computation of ZvZ_{v}: To compute ZvZ_{v}, we first compute ZvZ_{v} for all leaves v∈Bv\in\mathcal{B}. This takes rTZrT_{Z} time by assumption (Definition 4.2). Then we sum from bottom to up to compute ZvZ_{v} for all v∈Bv\in\mathcal{B}. Because height of the partition tree is O~(1)\widetilde{O}(1), every non-zero entry in the leaves gets propagated O~(1)\widetilde{O}(1) times. So computing ZvZ_{v} takes O~(rTZ)\widetilde{O}(rT_{Z}) time in total.

Summing everything up we get the desired running time. ∎

BlockBalancedSketch.Update (Algorithm 12) costs

For each i∈[m]i\in[m] with δh,i≠0\delta_{h,i}\neq 0 and each vv, it takes O(rmmax⁡)O(rm_{\max}) time to update yu▽y_{u}^{\triangledown}. So the total time needed to update yu▽y_{u}^{\triangledown} is O(rmmax⁡∥δh∥2,0)O(rm_{\max}\|\delta_{h}\|_{2,0}). ∎

BlockBalancedSketch.Updatex‾\overline{x} (Algorithm 12) costs

BlockBalancedSketch.UpdateLL (Algorithm 13) costs O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time.

By Lemma 4.28, we have ∣Λ(v)∣=O(η)|\Lambda(v)|=O(\eta). So we can compute (Lx‾[t−1]−Lx‾[tv])⋅IΛ(v)(L_{\overline{x}}[t-1]-L_{\overline{x}}[t_{v}])\cdot I_{\Lambda(v)} in O(η2mmax⁡2)O(\eta^{2}m_{\max}^{2}) time by Lemma 4.7(ii). Then computing (Lx‾[t−1]−Lx‾[tv])⋅IΛ(v)⋅Zv⊤(L_{\overline{x}}[t-1]-L_{\overline{x}}[t_{v}])\cdot I_{\Lambda(v)}\cdot Z_{v}^{\top} takes O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time. Finally, computing δZv=Lx‾[t−1]−1⋅(Lx‾[t−1]−Lx‾[tv])⋅Zv⊤\delta_{Z_{v}}=L_{\overline{x}}[t-1]^{-1}\cdot(L_{\overline{x}}[t-1]-L_{\overline{x}}[t_{v}])\cdot Z_{v}^{\top} takes O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time by Lemma 4.7(iv). Analysis for δZv′\delta_{Z_{v}}^{\prime} is the same.

Computing δyv▽\delta_{y_{v}}^{\triangledown} takes O(rηmmax⁡)O(r\eta m_{\max}) time by sparsity pattern of δZv+δZv′\delta_{Z_{v}}+\delta_{Z_{v}}^{\prime}.

Summing everything up we get the desired running time. ∎

BlockBalancedSketch.Query (Algorithm 11) takes O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time.

If v∈S\Bv\in\mathcal{S}\backslash{\mathcal{B}}, then (each row of) JvJ_{v} is supported on a path. So computing JvLx‾[t]−⊤hJ_{v}L_{\overline{x}}[t]^{-\top}h takes O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time by Lemma 4.7(iv).

Now suppose v∈Bv\in\mathcal{B}. By Lemma 4.28, we have ∣Λ(v)∣=O(η)|\Lambda(v)|=O(\eta). So we can compute (Lx‾[t]−Lx‾[tv])⋅IΛ(v)(L_{\overline{x}}[t]-L_{\overline{x}}[t_{v}])\cdot I_{\Lambda(v)} in O(η2mmax⁡2)O(\eta^{2}m_{\max}^{2}) time by Lemma 4.7(ii). Then computing ΔLx‾⋅Zv⊤\Delta_{L_{\overline{x}}}\cdot Z_{v}^{\top} takes O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time. Furthermore, ΔLx‾\Delta_{L_{\overline{x}}} has columns supported on two paths. Therefore, computing Lx‾[t]−1⋅ΔLx‾⋅Zv⊤L_{\overline{x}}[t]^{-1}\cdot\Delta_{L_{\overline{x}}}\cdot Z_{v}^{\top} takes O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}) time by Lemma 4.7(iv). So the total time needed to compute δZv\delta_{Z_{v}} is O(rη2mmax⁡2)O(r\eta^{2}m_{\max}^{2}).

Computing yv▽y_{v}^{\triangledown} takes O(rηmmax⁡)O(r\eta m_{\max}) time by sparsity pattern of ZvZ_{v}. Computing yv△y_{v}^{\vartriangle} takes O(rηmmax⁡)O(r\eta m_{\max}) time because ∣Λ(v)∣=O(η)|\Lambda(v)|=O(\eta).

Summing everything up we get the desired running time. ∎

Combining everything we finish the proof of Lemma 4.24.

Combining Lemma 4.29, Lemma 4.30, Lemma 4.31, Lemma 4.35. ∎

5 Analysis of CentralPathMaintenance

The goal of this section is to prove Theorem 4.4.

We first prove correctness of CentralPathMaintenance.

We correctly maintain a multiscale representation of (x,s)(x,s) because of correctness of exact.\textscUpdate\mathsf{exact}.\textsc{Update} (Lemma 4.12).

where the second step follows from definition of ∥⋅∥x‾\|\cdot\|_{\overline{x}}, the third step follows from Lemma A.4, and the last step follows from our choice of ζx\zeta_{x}.

We set x‾=Hx‾−1/2x~\overline{x}=H_{\overline{x}}^{-1/2}\widetilde{x}, so

where the first step follows from definition of ∥⋅∥x‾i\|\cdot\|_{\overline{x}_{i}}, the second step follows from definition of ∥⋅∥2,∞\|\cdot\|_{2,\infty}, the third step follows from (14).

Now we prove running time claims in Theorem 4.4.

Total running time of MultiplyAndMove (Algorithm 2) is

The choice of parameters under modification of ww is summarized in Table 4.

By Theorem 4.11 and Theorem 4.18, in a sequence of qq update/queries,

the total cost for query is O~(q2w−1⋅η2mmax⁡2)\widetilde{O}(q^{2}w^{-1}\cdot\eta^{2}m_{\max}^{2}).

We restart the data structure whenever k>qk>q or ∣t‾−t∣>t‾ϵt|\overline{t}-t|>\overline{t}\epsilon_{t}, so there are

restarts in total. By Theorem 4.11, Theorem 4.18, time cost per restart is

The third step is by taking w=νmax⁡w=\nu_{\max}, N=nνmax⁡wN=\sqrt{n\nu_{\max}w}, ϵt=12ϵ‾\epsilon_{t}=\frac{1}{2}\overline{\epsilon}. The fourth step is by taking

Note that because the initialization time is bounded above by time for running nn updates, we always have

Therefore q≤n0.5νmax⁡0.5≤Nq\leq n^{0.5}\nu_{\max}^{0.5}\leq N and (4.5) is a valid choice for qq. ∎

The proof directly follows from Theorem 4.11. ∎

6 Proofs of Main Result

In this section we combine everything and prove Theorem 4.4 and Theorem 4.3.

Using Lemma 4.36, we finish the correctness part.

Using Lemma 4.37, we prove the running time for initialization,

Using Lemma 4.38, we prove the running time for multiply and move,

where we use Theorem 4.4 and Theorem A.1 (by setting tmax⁡/tmin⁡=R/(rϵ)t_{\max}/t_{\min}=R/(r\epsilon)).

Our First Result

In Section 5.1, we present the main result of this section, Theorem 5.2.

In Section 5.2, we reduce our SDP to a form which can be handled by Theorem 4.3.

In Section 5.3, we state and prove parameters needed to apply Theorem 4.3.

In Section 5.4, we plug in all parameters and finish proof of Theorem 5.2.

In Section 5.5, we discuss how to deal with inequality constraints.

We consider semidefinite program of form (1). Let us restate it here for clarity.

We make the following assumptions on program (16).

where O~\widetilde{O} hides no(1)n^{o(1)} terms.

Our proof of Theorem 5.2 is in two steps. First we reduce program (16) to form (9), then we apply Theorem 4.3 by plugging in needed parameters.

2 Reduce Low-Treewidth SDP to General Treewidth Program

In this section we reduce program (16) satisfying Definition 5.1 to form (9).

Using Lemma 5.3, we can WLOG assume that TT has maximum degree O(1)O(1).

Given any tree decomposition TT with nn bags, we can construct another tree decomposition with at most 2n2n bags, with the same maximum bag size, and maximum degree at most 33.

For every vertex j∈[n]j\in[n] with degree dj>3d_{j}>3, we can replace it with dj−1d_{j}-1 vertices, each of degree 33, with the corresponding bags equal to JjJ_{j}. It is easy to verify that this is a valid tree decomposition, and that the total number of bags after this transformation is at most 2n2n. ∎

By Lemma 5.4, to solve program (16), it suffices to solve the following program with fewer variables:

Now we have reduced program (16) to program (17), which is of form (9). Let us compute the treewidth of program 17.

Let us define a bag decomposition for the LP dual graph. For every j∈[n]j\in[n], we define a bag BjB_{j} containing

all type-AA constraints AiA_{i} with ji=jj_{i}=j or (ji,j)∈T(j_{i},j)\in T, and

all type-NN constraints Ni,j\mathcal{N}_{i,j} with (i,j)∈T(i,j)\in T.

We connect BjB_{j} with BiB_{i} if and only if (i,j)∈T(i,j)\in T.

Finally, we prove that (T,B1,…,Bn)(T,B_{1},\ldots,B_{n}) is a valid tree decomposition of the LP dual graph. For any two constraints sharing a variable XjX_{j}, they must both be in BjB_{j}. So the first condition in Definition 3.5 is satisfied. The second condition in Definition 3.5 is clearly satisfied. So (T,B1,…,Bn)(T,B_{1},\ldots,B_{n}) is a valid tree decomposition. ∎

This enables solving program (17) using Theorem 4.3.

3 Choice of Parameters

In this section we present value of parameters needed to apply Theorem 4.3.

Under the setting of Theorem 5.2, we can choose the following set of parameters.

Bounds on TnT_{n} and TmT_{m} are direct consequences of (i), (ii).

It remains to prove that the constructed tree T\mathcal{T} is a valid block elimination tree. By properties of a bag decomposition, the condition in Lemma 4.6 is satisfied. So T\mathcal{T} is a valid block elimination tree. ∎

4 Proof of Theorem 5.2

According to Theorem 4.3, there is an algorithm solving SDP in

It remains to compute the parameters THT_{H}, TLT_{L}, η\eta, TmT_{m}, mmax⁡m_{\max}, nmax⁡n_{\max}, TΔL,max⁡T_{\Delta_{L},\max}, TH,max⁡T_{H,\max}, the details can be found in Lemma 5.6.

5 Discussions on Inequality Constraints

In certain problems (e.g., MaxCut\mathsf{MaxCut}) there are inequality constraints. In this section we briefly discuss how to deal with inequality constraints.

Therefore, the running time claims of Theorem 5.2 and Theorem 6.1 still hold in the presence of inequality constraints.

Our Second Result, An Improved Version of Our First Result

In Section 6.1, we present the main result of this section, Theorem 6.1.

In Section 6.2, we state and prove parameters needed to apply Theorem 4.3.

In Section 6.3, we develop improved algorithms for Cholesky-related computation.

In Section 6.4, we plug in all parameters and finish proof of Theorem 6.1.

We work under the same setting as Section 5, where we are given program (17) with assumptions in Definition 5.1.

where O~\widetilde{O} hides no(1)n^{o(1)} terms.

2 Choice of Parameters

In this section we present value of parameters needed to apply Theorem 4.3.

Under the setting of Theorem 6.1, we can choose the following set of parameters.

Bounds on TnT_{n} and TmT_{m} are direct consequences of (i), (ii).

It remains to prove that the constructed tree T\mathcal{T} is a valid block elimination tree. By properties of a bag decomposition, the condition in Lemma 4.6 is satisfied. So T\mathcal{T} is a valid block elimination tree. ∎

3 Cholesky Decomposition Using Block Structures

In this section we discuss how to utilize the block elimination tree constructed in Lemma 6.3 to compute and update Cholesky decomposition faster.

Correctness: From the algorithm we can see Li,j≠0L_{i,j}\neq 0 only when i∈P(j)i\in\mathcal{P}(j). So for i,j∈[m]i,j\in[m], if (LL⊤)i,j≠0(LL^{\top})_{i,j}\neq 0, then either i∈P(k)i\in\mathcal{P}(k) or j∈P(i)j\in\mathcal{P}(i). WLOG assume that i∈P(j)i\in\mathcal{P}(j). If j=ij=i, then Line 5 shows that (LL⊤)i,i=Mi,i(LL^{\top})_{i,i}=M_{i,i}. If j≠ij\neq i, then Line 7 shows that (LL⊤)i,j=Mi,j(LL^{\top})_{i,j}=M_{i,j}. So LL⊤=MLL^{\top}=M.

Then we prove that the square root in Line 5 always exists. Let D′(j):=D(j)\j\mathcal{D}^{\prime}(j):=\mathcal{D}(j)\backslash j. Recall that

where the last step is by property of PSD matrix. So the square root in Line 5 can always be taken.

Finally, let us examine the effect of Line 12. Note that before Line 10, all Lj,jL_{j,j} are PSD matrices. Line 12 makes update Lj,j←Lj,jQj⊤=(QjLj,j)⊤=Rj⊤L_{j,j}\leftarrow L_{j,j}Q_{j}^{\top}=(Q_{j}L_{j,j})^{\top}=R_{j}^{\top}, which makes Lj,jL_{j,j} a lower triangular matrix. So in the end LL is a lower triangular matrix as desired.

Running time: Because the block elimination tree has block depth O~(1)\widetilde{O}(1), there are O~(m)\widetilde{O}(m) triples (i,j,k)(i,j,k) with i∈P(j)i\in\mathcal{P}(j), j∈P(k)j\in\mathcal{P}(k). For each such triple, we take O~(τω)\widetilde{O}(\tau^{\omega}) time to perform the corresponding computations. So computation before Line 9 takes O~(mτω)\widetilde{O}(m\tau^{\omega}) time. By [DDH07], computing QR decomposition of a matrix of size τ\tau takes O~(τω)\widetilde{O}(\tau^{\omega}) time. So computation starting from Line 10 takes O~(mτω)\widetilde{O}(m\tau^{\omega}) time. Therefore the whole algorithm runs in O~(mτω)\widetilde{O}(m\tau^{\omega}) time. ∎

Work under the setting of Lemma 6.4. In addition, assume that we already computed the Cholesky decomposition M=LL⊤M=LL^{\top}. Suppose we perform an update M←M+ΔMM\leftarrow M+\Delta_{M}, where support of ΔM\Delta_{M} is contained in the union of block row vv and block column vv, for some vertex v∈Tv\in\mathcal{T}. Then in O~(τω)\widetilde{O}(\tau^{\omega}) time, we can compute ΔL\Delta_{L} such that M+ΔM=(L+ΔL)(L+ΔL)⊤M+\Delta_{M}=(L+\Delta_{L})(L+\Delta_{L})^{\top} is the Cholesky factorization of M+ΔMM+\Delta_{M}.

Running time: There are O~(1)\widetilde{O}(1) tuples (i,j,k)(i,j,k) such that k∈P(v),j∈P(k),i∈P(j)k\in\mathcal{P}(v),j\in\mathcal{P}(k),i\in\mathcal{P}(j). For every such tuple, computation time is O~(τω)\widetilde{O}(\tau^{\omega}). So total update time is O~(τω)\widetilde{O}(\tau^{\omega}). ∎

4 Proof of Theorem 6.1

According to Theorem 4.3, there is an algorithm solving SDP in

It remains to compute the parameters THT_{H}, TLT_{L}, η\eta, TmT_{m}, mmax⁡m_{\max}, nmax⁡n_{\max}, TΔL,max⁡T_{\Delta_{L},\max}, TH,max⁡T_{H,\max}, the details can be found in Lemma 6.2.

Decomposable SDP

In this section we give a more general version of Theorem 6.1, which can handle more general decomposable SDPs. Outline of this section is as follows.

In Section 7.1, we present the main result of this section, Theorem 7.2.

In Section 7.2, we reduce decomposable SDPs to a form which can be handled by Theorem 4.3.

In Section 7.3, we state and prove parameters needed to apply Theorem 4.3.

In Section 7.4, we plug in all parameters and finish proof of Theorem 7.2.

We consider semidefinite programs of form (16). Instead of assumptions in Definition 5.1, we make the following assumptions on the program.

We make the following assumptions on program (16).

Assume that for every constraint AiA_{i}, we have a connected (in the given tree decomposition) set SiS_{i} of bags, such that the union of these bags contains the support of AiA_{i}, i.e.,

Let γmax⁡\gamma_{\max} be the maximum number of constraints a bag correspond to.

where O~\widetilde{O} hides no(1)n^{o(1)} terms.

2 Reduce Decomposable SDP to General Treewidth Program

In this section we reduce program (16) satisfying Definition 7.1 to form (9).

Let T,J1,…,JnT,J_{1},\ldots,J_{n} be the given tree decomposition. Using Lemma 5.3, we can WLOG assume that TT has maximum degree O(1)O(1).

Lemma 7.3 tells us that we can reduce program 16 to the following program.

Under assumptions in Definition 7.1, the optimal value of program (16) is equal to the optimal value of (22).

In this way, we further reduce (22) into the following form.

Program (23) is a form which can be handled by Theorem 4.3. Let us compute the treewidth of program (23).

For every j∈[n]j\in[n], we define a bag BjB_{j} containing

all type-AA constraints AiA_{i} with j∈Sij\in S_{i},

all type-NN constraints Ni,j\mathcal{N}_{i,j} with (i,j)∈T(i,j)\in T.

We connected BiB_{i} with BjB_{j} if and only if (i,j)∈T(i,j)\in T.

Finally, we prove that (T,B1,…,Bn)(T,B_{1},\ldots,B_{n}) is a valid tree decomposition of the LP dual graph. Recall that we assume that every SiS_{i} is connected in TT. So the second condition in Definition 3.5 is satisfied. For any two constraints sharing a variable XjX_{j}, they must both be in BjB_{j}. So the first condition in Definition 3.5 is satisfied. Therefore (T,B1,…,Bn)(T,B_{1},\ldots,B_{n}) is a valid tree decomposition. ∎

3 Choice of Parameters

In this section we present value of parameters needed to apply Theorem 4.3.

Under the setting of Theorem 7.2, we can choose the following set of parameters.

Bounds on TnT_{n} and TmT_{m} are direct consequences of (i), (ii).

4 Proof of Theorem 7.2

It remains to compute the parameters THT_{H}, TLT_{L}, η\eta, TmT_{m}, mmax⁡m_{\max}, nmax⁡n_{\max}, TΔL,max⁡T_{\Delta_{L},\max}, TH,max⁡T_{H,\max}, the details can be found in Lemma 6.2.

Improving Running Time for Linear Programming

In this section, we discuss our result for linear programming,

In Section 8.1, we present the main result in this Section, Theorem 8.2.

In Section 8.2, we state and prove parameters needed to apply Theorem 4.3.

In Section 8.3, we develop improved algorithms for Cholesky-related computation.

In Section 8.4, we plug in all parameters and finish proof of Theorem 8.2.

We consider linear program of form (3). Let us restate it here for clarity.

We make the following assumptions on program (26).

Assume that we are given a tree decomposition (Definition 3.5) of the LP dual graph (Definition 1.6) with maximum bag size τ\tau.

2 Choice of Parameters

Under the setting of Theorem 8.2, we can choose the following set of parameters.

We let every variable block contain a single element.

Because AA is of full rank, m≤nm\leq n. We let every constraint block contain a single element.

The LP dual graph for program 9 and 26 are the same graphs.

We use the log barrier ϕi(xi)=−log⁡(ui−xi)−log⁡(xi−li)\phi_{i}(x_{i})=-\log(u_{i}-x_{i})-\log(x_{i}-l_{i}).

Bounds on TnT_{n} and TmT_{m} are direct consequences of (i), (ii).

Computing a single Hessian takes O(1)O(1) time.

Follows from Lemma 8.6. There is one caveat: in the statement of Lemma 8.6, we use a block elimination tree T2\mathcal{T}_{2} constructed using Lemma 6.3. For definition of TZT_{Z}, we use block elimination tree T1\mathcal{T}_{1} constructed using Lemma 5.7. However by examining both algorithms, we see that every path in T1\mathcal{T}_{1} is contained in a path in T2\mathcal{T}_{2}, and vice versa. So Lemma 8.6 can be applied here.

3 Improvement for Cholesky-Related Computation

In this section we prove Lemma 8.4 and Lemma 8.6.

In Lemma 8.3 we choose constraint block structure (1,…,1)(1,\ldots,1) for the purpose of smaller updating time (e.g., TΔL,max⁡T_{\Delta L,\max}). Nevertheless, we can utilize another block structure to achieve faster initialization (e.g., TLT_{L}, TZT_{Z}).

Using Lemma 6.3, we can construct a block elmination tree T\mathcal{T} with constant maximum degree, maximum depth O~(1)\widetilde{O}(1) and maximum bag size O(τ)O(\tau). However, this block elimination tree could potentially have Ω(m)\Omega(m) vertices. So we use Lemma 8.5 to compute a new block elimination tree T′\mathcal{T}^{\prime} with number of blocks O(m/τ)O(m/\tau). Finally, we use Lemma 6.4 to compute Cholesky factorization using T′\mathcal{T}^{\prime}, which takes O~(m/τ⋅τω)=O~(mτω−1)\widetilde{O}(m/\tau\cdot\tau^{\omega})=\widetilde{O}(m\tau^{\omega-1}) time. ∎

Given a block elimination tree (T,B1,…,Bb)(\mathcal{T},B_{1},\ldots,B_{b}) with maximum degree O(1)O(1), maximum depth O~(1)\widetilde{O}(1), maximum block size τ\tau, and total block size mm, we can construct a block elimination tree (T′,B1′,…,Bb′′)(\mathcal{T}^{\prime},B^{\prime}_{1},\ldots,B^{\prime}_{b^{\prime}}) with maximum degree O(1)O(1), maximum depth O~(1)\widetilde{O}(1), maximum block size O(τ)O(\tau), and O(m/τ)O(m/\tau) blocks in total (i.e., b′=O(m/τ)b^{\prime}=O(m/\tau)).

We perform a bottom up process to construct the new tree T′\mathcal{T}^{\prime}.

For each node vv from bottom to up, if any of its children is in a block of size smaller than τ\tau, then we combine their blocks with vv (if there are multiple such children, then all of their blocks are merged).

In this way every block (except possibly the root block) has size at least τ\tau. Because T\mathcal{T} has O(1)O(1) maximum degree, every new block has O(τ)O(\tau) size. So the number of blocks in T′\mathcal{T}^{\prime} is O(m/τ)O(m/\tau).

Because T′\mathcal{T}^{\prime} preserves all ancestor-descendant relationships in T\mathcal{T}, condition in Lemma 3.9 is satisfied by T′\mathcal{T}^{\prime}. So T′\mathcal{T}^{\prime} is still a block elimination tree.

The only remaining problem is that T′\mathcal{T}^{\prime} could have nodes with large degree. For every node vv with number of children cc larger than 33, we replace this node with a perfect binary tree with cc leaves, where the root node is vv, and all other nodes are empty. Then we link vv’s original children to leaves of the perfect binary tree.

The number of added nodes is at most O(m/τ)O(m/\tau). So this final tree satisfies all requirements. ∎

Under the setting of Lemma 8.4, there is an algorithm to compute L−1viL^{-1}v_{i} for all i∈[m]i\in[m], where viv_{i} is supported on a single path in T\mathcal{T}, in O(mτω−1)O(m\tau^{\omega-1}) time.

By our construction in proof of Theorem 8.4, every block in T′\mathcal{T}^{\prime} is the union of several blocks in T\mathcal{T}. For i∈[m]i\in[m], let bi∈[b′]b_{i}\in[b^{\prime}] be the block it belongs to in T′\mathcal{T}^{\prime}. Note that T′\mathcal{T}^{\prime} preserves all ancestor-descendant relationships in T\mathcal{T}. So for every i∈[b]i\in[b], we have

So every path in T\mathcal{T} is contained in a path in T′\mathcal{T}^{\prime}.

Therefore, we only need to solve the following problem: Compute L−1viL^{-1}v_{i} for i∈[m]i\in[m], where every viv_{i} is supported on a single path in T′\mathcal{T}^{\prime}. Because T′\mathcal{T}^{\prime} has maximum depth O~(1)\widetilde{O}(1), we can assume that every viv_{i} is supported on a single block in T′\mathcal{T}^{\prime} (with an O~(1)\widetilde{O}(1) factor loss in running time). Then the desired result follows from combining Lemma 8.7 and Lemma 8.8 on T′\mathcal{T}^{\prime} and LL. ∎

Then L−1L^{-1} is also a lower-triangular matrix compatible with T\mathcal{T}, and we can compute L−1L^{-1} in O~(nτω−1)\widetilde{O}(n\tau^{\omega-1}) time.

Run Algorithm 18. Correctness is obvious. Let us focus on running time.

By induction, we can see that Xj,k≠0X_{j,k}\neq 0 only when j∈P(k)j\in\mathcal{P}(k). So we perform O(1)O(1) matrix multiplications for every tuple (i,j,k)(i,j,k) with i∈P(j)i\in\mathcal{P}(j), j∈P(k)j\in\mathcal{P}(k). Because maximum depth is O~(1)\widetilde{O}(1), number of such triples is O~(m/τ)\widetilde{O}(m/\tau). So total running time is O~(m/τ⋅τω−1)=O~(mτω−1).\widetilde{O}(m/\tau\cdot\tau^{\omega-1})=\widetilde{O}(m\tau^{\omega-1}). ∎

where in the last step we use that b=O(m/τ)b=O(m/\tau) and ∑j∈[b]pj=O(m)\sum_{j\in[b]}p_{j}=O(m). ∎

4 Proof of Theorem 8.2

According to Theorem 4.3, there is an algorithm solving LP in

It remains to compute the parameters THT_{H}, TLT_{L}, η\eta, TmT_{m}, mmax⁡m_{\max}, nmax⁡n_{\max}, TΔL,max⁡T_{\Delta_{L},\max}, TH,max⁡T_{H,\max}, the details can be found in Lemma 8.3.

where the second step follows Lemma 8.3(i) (nmax⁡=O(1)n_{\max}=O(1)), and the third step follows from Lemma 8.3(xi) (TΔL,max⁡=O(τ2)T_{\Delta L,\max}=O(\tau^{2})), the forth step follows from Lemma 8.3(viii) (TH,max⁡=O(1)T_{H,\max}=O(1)), the fifth step follows from Lemma 8.3(iv) (η=O~(τ)\eta=\widetilde{O}(\tau) and mmax⁡=O(1)m_{\max}=O(1)), and the last step follows from merging the terms.

where the first step follows from Lemma 8.3(iv) (νmax⁡=O(1)\nu_{\max}=O(1)), the second step follows from A=O~(nτω−1)A=\widetilde{O}(n\tau^{\omega-1}) (see Eq. (8.4)) and B=O~(τ2)B=\widetilde{O}(\tau^{2}) (see Eq. (8.4)).

References

Appendix

Appendix A Robust IPM Analysis

The goal of this section is to present some existing tools which give us a bound on the number of iterations of IPM. To really improve the total running time, we still need to improve the cost per iteration which is a major contribution of our work. Those discussions can be found in Section 4.

Let us begin with a roadmap for this section. In Section A.1, we present the main convergence statement. In Section A.2, we explain the the choice of step and present a useful lemma.

We consider program of form (9). The following theorem gives a bound on the number of iterations of a robust IPM algorithm.

Inner radius rr: There exists a zz such that Az=bAz=b and B(z,r)⊂KB(z,r)\subset\mathcal{K}.

Lipschitz constant LL: ∥c∥2≤L\|c\|_{2}\leq L.

The above Theorem A.1 provides the iteration bound for Algorithm 19. The overall running time largely depends on cost per iteration, which is decided by the implementation of CentralPathMaintenance. The high level framework of Algorithm 19 and 20 are the same as [DLY21], but the reduction to form (9) and the implementations of CentralPathMaintenance are different.

A.2 Definitions and Useful Lemmas

For each block Ki\mathcal{K}_{i}, we define

For the whole domain K=∏i=1nKi\mathcal{K}=\prod_{i=1}^{n}\mathcal{K}_{i}, we define

Instead of following the path x(t)x(t) exactly, we follow the path

where μ\mu is close to under ∥⋅∥x∗\|\cdot\|_{x}^{*}. The norm of μ\mu is controlled using the following potential function.

For i∈[n]i\in[n], define error at ii-th variable block as

Define γit(x,s):=∥μit(x,s)∥xi∗\gamma_{i}^{t}(x,s):=\|\mu_{i}^{t}(x,s)\|_{x_{i}}^{*}. Define the soft-max function as

for some λ>0\lambda>0. Finally, the potential function is the soft-max of norm of the error at each variable block

Since our goal is to decrease Φ(x,s)=Ψλ(γ)\Phi(x,s)=\Psi_{\lambda}(\gamma), a natural choice is the steepest descent direction ([DLY21, Section A.4]):

Using HxH_{x} to denote ∇2ϕ(x)\nabla^{2}\phi(x) and solve the above equations, we get

This is the ideal IPM step. In robust IPM, we compute the steps using (x‾,s‾,t‾)(\overline{x},\overline{s},\overline{t}), a sparsely changing approximation of (x,s,t)(x,s,t), giving

We state a useful lemma for bounding the step size.

The steps δx\delta_{x} and δs\delta_{s} satisfy