A Deterministic Linear Program Solver in Current Matrix Multiplication Time

Jan van den Brand

Introduction

Fast algorithms for solving linear programs have a long history in computer science. Solving linear programs was first proven to be in PP in 1979 by Khachiyan [Kha79]; and later Karmarkar [Kar84] found the first polynomial time algorithm that was feasible in practice. This initiated the long line of work of solving linear programs using interior point algorithms, motivated by the fact that many problems can be stated as linear programs and solved using efficient solvers. [Ren88, Vai87, Vai89b, Vai89a, Meg89, NN89, NN91, VA93, Ans96, NT97, Ans99, LS14, LS15]

For linear programs of the form min⁡Ax=b,x≥0c⊤x\min_{Ax=b,x\geq 0}c^{\top}x with nn variables, dd constraints and nnz(A)nnz(A) non-zero entries, the current fastest algorithms are O~(d(nnz(A)+d2))\widetilde{O}(\sqrt{d}(nnz(A)+d^{2})) [LS14, LS15] Here O~(⋅)\widetilde{O}(\cdot) hides polylog(n)\text{polylog}(n) and polylog(1/δ)\text{polylog}(1/\delta) terms. and O~(nω)\widetilde{O}(n^{\omega})-time [CLS18] The algorithm of [CLS18] runs in O((nω+n2.5−α/2+o(1)+n2+1/6)log⁡(n)log⁡(n/δ))O((n^{\omega}+n^{2.5-\alpha/2+o(1)}+n^{2+1/6})\log(n)\log(n/\delta)) time, where δ\delta is the relative accuracy and α\alpha is the dual matrix exponent. The dual exponent α\alpha is the largest aa such that an n×nn\times n matrix can be multiplied with an n×nan\times n^{a} matrix in n2+o(1)n^{2+o(1)} arithmetic operations. For current ω≈2.38\omega\approx 2.38 and α≈0.31\alpha\approx 0.31 this time complexity is just O(nωlog⁡(n)log⁡(n/δ))O(n^{\omega}\log(n)\log(n/\delta)). , where the bound O(nω)O(n^{\omega}) is the number of arithmetic operations required to multiply two n×nn\times n matrices. The parameter ω\omega is also called matrix exponent. For the generic case d=Ω(n)d=\Omega(n), the latter complexity is essentially optimal as all known linear system solvers require up to O(nω)O(n^{\omega}) time for solving Ax=bAx=b. As the complexity is essentially optimal, but the algorithm is randomized, a typical next step (e.g. [KT19, Cha00, PR02, MRSV17]) is to attempt to derandomize this algorithm. Derandomizing algorithms has the benefit that the required analysis can lead to further understanding of the studied problem. There have been precedences where derandomizing algorithms required developing new techniques, which then allowed for improvements in other settings. For example, in order to derandomize Karger’s edge connectivity algorithm [Kar00], Kawarabayashi and Thorup [KT19] had to develop new techniques, which then lead to new results in the distributed setting [DHNS19].

In the related area of linear program solvers in the real RAM model (i.e. when analyzing the complexity only in terms of the dimension, but not the bit-complexity of the input), a lot of effort has been put in derandomization and finding fast deterministic algorithms (see e.g. [CM96, BCM99, Cha16]). Yet, there is still a wide gap between the best randomized and deterministic complexity bounds. For an overview see [Cha16]. The fastest deterministic algorithm requires O(ndd(1/2+o(1)))O(nd^{d(1/2+o(1))}) time [Cha16], while with randomized techniques an O(nd2+exp⁡(O(dlog⁡d)))O(nd^{2}+\exp(O(\sqrt{d\log d}))) time bound is possible (a combination of [Cla95, Kal92, MSW96]). The same observation can be made in our setting, when analyzing the complexity with respect to the bit-complexity of the input, where the best deterministic bounds are O~(n⋅nnz(A)+nd1.38)\widetilde{O}(\sqrt{n}\cdot nnz(A)+nd^{1.38}) [Kar84] When using the O~(n)\widetilde{O}(\sqrt{n})-iterations short step method., O~(n⋅nnz(A)+n1.34d1.15)\widetilde{O}(\sqrt{n}\cdot nnz(A)+n^{1.34}d^{1.15}) [Vai89b] and O~(d⋅nnz(A)+dω+1)\widetilde{O}(d\cdot nnz(A)+d^{\omega+1}) [Vai89a]. For curious readers we recommend [LS15]. They give a brief overview of these algorithms and offer a helpful graph that shows which algorithm is fastest for which range of n,d,nnz(A)n,d,nnz(A). For d=Ω(n)d=\Omega(n), all deterministic algorithms are stuck at Ω(n2.5)\Omega(n^{2.5}) time. Further, these bounds are at least 30 years old and all new algorithms, that have been able to improve upon these bounds, crucially use randomized techniques. This raises the question: Is there a deterministic algorithm that can close the gap between deterministic and randomized complexity bounds, or at least break the 30 years old Ω(n2.5)\Omega(n^{2.5}) barrier?

We are able to answer this question affirmatively by derandomizing the algorithm of Cohen et al. [CLS18]. Our deterministic algorithm is not just able to break the 30 years old barrier, it even matches one of the fastest randomized bounds of O~(nω)\widetilde{O}(n^{\omega}). This closes the complexity gap between randomized and deterministic algorithms for large dd. More formally, we prove the following result:

Let min⁡Ax=b,x≥0c⊤x\min_{Ax=b,x\geq 0}c^{\top}x be a linear program without redundant constraints. Let RR be a bound on ∥x∥1\|x\|_{1} for all x≥0x\geq 0 with Ax=bAx=b. Then for any 0<δ≤10<\delta\leq 1 we can compute x≥0x\geq 0 such that

in time O(nωlog⁡2(n)log⁡(n/δ)),O(n^{\omega}\log^{2}(n)\log(n/\delta)), for the current matrix multiplication time with ω≈2.38\omega\approx 2.38 [Wil12, Gal14].

which can be simplified to O(nωlog⁡2(n)log⁡(n/δ))O(n^{\omega}\log^{2}(n)\log(n/\delta)) for current values of ω≈2.38\omega\approx 2.38 [Wil12, Gal14], α≈0.31\alpha\approx 0.31 [GU18]. For integral A,b,cA,b,c the parameter δ=2−O(L)\delta=2^{-O(L)} is enough to round the approximate solution of Theorem 1.1 to an exact solution. Here L=log⁡(1+det⁡max⁡+∥c∥∞+∥b∥∞)L=\log(1+\det_{\max}+\|c\|_{\infty}+\|b\|_{\infty}) is the bit-complexity, where det⁡max⁡\det_{\max} is the largest determinant of any square submatrix of AA. [Ren88, LS13]

Derandomizing the O~(nω)\widetilde{O}(n^{\omega}) algorithm of [CLS18] was stated by Song as an open question in [Son19]. In addition to answering this open question, our techniques also allow us to simplify the analysis of the central path method used in [CLS18], reducing the length by roughly half.

Interior point algorithms must typically repeatedly compute the projection of a certain vector vv, i.e. they must compute PvPv where PP is a projection matrix. It suffices to use an approximation P~\widetilde{P} of PP, and in each iteration the matrix PP changes only a bit, which allowed previous results to maintain the approximation P~\widetilde{P} quickly (See for example [Kar84, NN89, Vai89b, LS15]). A natural barrier for improving linear program solvers is the fact that computing P~v\widetilde{P}v requires Ω(n2)\Omega(n^{2}) for dense vv. This leads to the Ω(n2.5)\Omega(n^{2.5}) barrier for linear program solvers, because a total of Ω(n)\Omega(\sqrt{n}) projections must be computed. Cohen et al. were able to break this barrier in [CLS18] by sparsifying vv to some approximate v~\widetilde{v} via random sampling and computing P~v~\widetilde{P}\widetilde{v} instead of P~v\widetilde{P}v. Our new approach for breaking this barrier deterministically is to maintain the product P~v~\widetilde{P}\widetilde{v} directly for some approximation v~\widetilde{v} of vv. This is the key difference of our linear program solver compared to previous results, which only maintained P~\widetilde{P}.

We will now outline the difference between our deterministic O~(nω)\widetilde{O}(n^{\omega}) solver for linear programs and the randomized result of Cohen et al. [CLS18]. They managed to obtain a fast solver for linear programs by computing the projection P~v~\widetilde{P}\widetilde{v} in subquadratic time using two clever tools:

They created a data-structure to maintain P~\widetilde{P} in sub-quadratic time, amortized over n\sqrt{n} iterations.

They created a novel stochastic central path method which can sparsify the vector vv to some approximate v~\widetilde{v} via random sampling. Thus the projection P~v~\widetilde{P}\widetilde{v} could be computed in sub-quadratic worst-case time.

Derandomizing this algorithm seems like a difficult task as it is not clear how to obtain a deterministic sparsification of vv. Recently [LSZ19] derandomized the central path method (2), so they could extend their linear program solver to the problem of Empirical Risk Minimization. However, in order to achieve O~(nω)\widetilde{O}(n^{\omega}) total time, they had to reduce some dimension in the representation of P~\widetilde{P} via random sketching, which resulted in randomizing the data-structure (1).

In this paper we show how to completely derandomize the algorithm of [CLS18] via a data-structure that can maintain the projection P~v~\widetilde{P}\widetilde{v} directly for some dense approximate v~≈v\widetilde{v}\approx v, instead of just maintaining the matrix P~\widetilde{P} as in [CLS18]. This result can be obtained in two different ways. One option is to use a dynamic linear system algorithm (e.g. [San04, vdBNS19]) via a black-box reduction, or alternatively one can interpret the resulting data-structure as a surprisingly simple extension of the data-structure used in [CLS18]. Indeed the algorithmic description of the data-structure (1) of [CLS18] grows only by a few lines (see Algorithm 1 in Section 4).

The high level idea of our new data-structure is that the vector vv can be written as some function vi=f(wi)v_{i}=f(w_{i}), where the argument vector ww does not change much between two iterations of the central path method. By approximating ww by some w~\widetilde{w} we can re-use information of the previous iteration when computing the projection of v~=f(w~)\widetilde{v}=f(\widetilde{w}). One difficulty, that we must overcome, is that v~:=f(w~)\widetilde{v}:=f(\widetilde{w}) is not an approximation of v=f(w)v=f(w) in the classical sense (i.e. we can not satisfy ∥v−v~∥≤ε∥v∥\|v-\widetilde{v}\|\leq\varepsilon\|v\| or even v~i≈vi\widetilde{v}_{i}\approx v_{i}), even if w~\widetilde{w} is an approximation of ww, because for non-monotonous ff, the vectors vv and v~\widetilde{v} could point in opposite directions. This is a problem for the short step central path method, because these algorithm can be interpreted as some gradient descent and here vv depends on the gradient of some potential function. So if v~\widetilde{v} points in the opposite direction, then the algorithm will actually increase the potential function instead of decreasing it.

Outline

In this section we outline how our algorithm works and how we adapt existing ideas such as the short step central path method and the projection maintenance. Readers only interested in verifying our algorithm can skip this overview, but reading it can help provide some intuition for how the different parts of our algorithm interact and what difficulties must be solved in order for our algorithm to work.

We start the outline with a brief summary of the short step central path method, which motivates why we must maintain a certain projection. Readers already familiar with the short step central path method can skip ahead to the next subsection 2.2.

In Section 2.2 we describe the task of the projection maintenance, and how we are able to perform this task quickly by using a certain notion of approximation (details in Section 4). The next Section 2.3 of the outline explains the difficulties that we encounter by using this type of approximation, and how we are able to solve these problems (details in Section 5).

We first give a brief summary of the short step central path method. Readers familiar with these types of algorithms can skip ahead to the next subsection 2.2.

Consider the linear program min⁡Ax=b,x≥0c⊤x\displaystyle\min_{Ax=b,x\geq 0}c^{\top}x and its dual program max⁡A⊤y≤cb⊤y\displaystyle\max_{A^{\top}y\leq c}b^{\top}y. Given a feasible dual solution yy (a vector yy s.t. A⊤y≤cA^{\top}y\leq c), we can define the slack vector s:=c−A⊤ys:=c-A^{\top}y. Based on the complementary slackness condition (see e.g. [PS82]) we know a triple (x,y,s)(x,y,s) is optimal, if and only if

If only the last three conditions are satisfied, then we call the triple (x,y,s)(x,y,s) feasible. Given such a feasible triple, we define the vector μ\mu such that μi:=xisi\mu_{i}:=x_{i}s_{i} and the complementary slackness theorem motivates why we should try to minimize the entries of μ\mu.

It is known how to transform the LP in such a way, that we can easily construct a feasible solution triple (x,y,s)(x,y,s) with xisi≈1x_{i}s_{i}\approx 1 for all i=1,...,ni=1,...,n (e.g. Lemma A.3 [YTM94]). Thus for t:=1t:=1 we have μi≈t\mu_{i}\approx t. The idea is to repeatedly decrease tt and to modify the solution x←x+δx,y←y+δy,s←s+δsx\leftarrow x+\delta_{x},y\leftarrow y+\delta_{y},s\leftarrow s+\delta_{s} in such a way, that the entries of μ\mu stay close to tt. The change of μ\mu is given by μinew⁡=(x+δx)i(s+δs)i=μi+xiδs,i+siδx,i+δx,iδs,i\mu^{\operatorname{new}}_{i}=(x+\delta_{x})_{i}(s+\delta_{s})_{i}=\mu_{i}+x_{i}\delta_{s,i}+s_{i}\delta_{x,i}+\delta_{x,i}\delta_{s,i} and if δx,δs\delta_{x},\delta_{s} are small enough, this can be approximated via μinew⁡≈μi+xiδs,i+siδx,i\mu^{\operatorname{new}}_{i}\approx\mu_{i}+x_{i}\delta_{s,i}+s_{i}\delta_{x,i}. Thus to change μ\mu by (approximately) δμ\delta_{\mu}, we can solve the following linear system

where X=diag⁡(x)X=\operatorname{diag}(x) and S=diag⁡(s)S=\operatorname{diag}(s) are diagonal matrices with the entries of xx and ss on the diagonal respectively. The solution to this system is given by the following lemma:

The solution for δx,δs\delta_{x},\delta_{s} in (1) is given by

A typical choice for the decrement of tt is to multiply it by 1−O(1n)1-O(\frac{1}{\sqrt{n}}), which means it takes about O(n/δ)O(\sqrt{n}/\delta) iterations until tt reaches some desired accuracy parameter δ>0\delta>0 [Ren88, Vai87].

For the short step central path method the distance between μ\mu and tt is typically measured by ∑i=1n(μi−t)2=∥μ−t∥22\sum_{i=1}^{n}(\mu_{i}-t)^{2}=\|\mu-t\|_{2}^{2} and one tries to maintain x,sx,s in such a way that ∥μ−t∥22≤O(t2)\|\mu-t\|_{2}^{2}\leq O(t^{2}). This can be modelled via the potential function Φ(x)=∥x∥22\Phi(x)=\|x\|_{2}^{2}, and then one tries to maintain μ\mu such that Φ(μ/t−1)=O(1)\Phi(\mu/t-1)=O(1), which is equivalent to ∥μ−t∥22≤O(t2)\|\mu-t\|_{2}^{2}\leq O(t^{2}). Thus a good choice for δμ\delta_{\mu} would be a vector with the same direction as −∇Φ(μ/t−1)-\nabla\Phi(\mu/t-1), as this allows us to decrease the potential, which then means the distance between μ\mu and tt is reduced.

2 Projection Maintenance (Details in Section 4)

In this subsection we outline one of the main results of this paper and sketch its proof. As described in the previous section, we must repeatedly compute PvPv for P:=XSA⊤(AXSA⊤)−1AXSP:=\sqrt{\frac{X}{S}}A^{\top}\left(A\frac{X}{S}A^{\top}\right)^{-1}A\sqrt{\frac{X}{S}} and v:=δμXSv:=\frac{\delta_{\mu}}{\sqrt{XS}}, where the matrix AA describes the constraints of the linear program, XX and SS are diagonal matrices that depend on some current feasible solution and δμ\delta_{\mu} is some vector.

Our main result is to maintain an approximation of PvPv deterministically in O~(nω−0.5+n2.5−α)\widetilde{O}(n^{\omega-0.5}+n^{2.5-\alpha}) amortized time, where ω\omega is the current matrix multiplication exponent and α\alpha is the dual exponent. This new data-structure is a simple extension of the data-structure presented in [CLS18], which was able to maintain an approximation of PP within the same time bound, but their data-structure required up to O(n2)O(n^{2}) time for computing PvPv for dense vv.

The exact statement of our result involves various details, for example how PP and vv change over time. So we first want to describe the task of maintaining PvPv in more detail.

The matrix P=XSA⊤(AXSA⊤)−1AXSP=\sqrt{\frac{X}{S}}A^{\top}\left(A\frac{X}{S}A^{\top}\right)^{-1}A\sqrt{\frac{X}{S}} shares a lot of structure between two iterations. Indeed only the diagonal matrices XX and SS change, while the matrix AA stays fixed. Thus for simplicity we define U:=X/SU:=X/S, in which case P:=UA⊤(AUA⊤)−1AUP:=\sqrt{U}A^{\top}\left(AUA^{\top}\right)^{-1}A\sqrt{U} and only the diagonal matrix UU changes from one iteration to the next one.

For this task we would wish for a data-structure that can compute PvPv for any vector vv in O(nω−0.5)O(n^{\omega-0.5}) time, which with O(n)O(\sqrt{n}) iterations would then result in an O(nω)O(n^{\omega})-time solver for linear programs. More accurately, we hope for an algorithm that solves the following task:

Initialize(A,u,v)(A,u,v): Given matrix AA and two nn dimensional vectors u,vu,v we preprocess the matrix and return

where U=diag(u)U=diag(u) is the diagonal matrix with uu on the diagonal.

Update(u,v)(u,v): Given two nn dimensional vectors u,vu,v, we must compute

It is not clear whether a data-structure exists for this task with O(nω−0.5)O(n^{\omega-0.5}) update time, but due to the very first short step linear program solver by Karmarkar [Kar84] it is known that one can relax the requirements. Indeed it is enough to use an approximation of PP.

Relaxation and result

Due to [Kar84] it is known, that it is enough to use an approximation P~:=U~A⊤(AU~A⊤)−1AU~\widetilde{P}:=\sqrt{\widetilde{U}}A^{\top}(A\widetilde{U}A^{\top})^{-1}A\sqrt{\widetilde{U}} for (1−ε)U≤U~≤(1+ε)U(1-\varepsilon)U\leq\widetilde{U}\leq(1+\varepsilon)U, instead of the exact matrix PP. We show later in Section 5, that it is also enough to approximate the vector vv via some v~\widetilde{v}. The type of approximation for vv is a bit different: We show in Section 5 that we can write v=δμ/XSv=\delta_{\mu}/\sqrt{XS} as a function of μ/t\mu/t, so v=f(μ/t)v=f(\mu/t). We then “approximate” vv via some v~:=f(μ~/t)\widetilde{v}:=f(\widetilde{\mu}/t), where (1−ε)μ≤μ~≤(1+ε)μ(1-\varepsilon)\mu\leq\widetilde{\mu}\leq(1+\varepsilon)\mu. Note that thus v~\widetilde{v} itself is not necessarily an approximation of vv in the classical sense (i.e. ∥v−v~∥2≫ε∥v∥2\|v-\widetilde{v}\|_{2}\gg\varepsilon\|v\|_{2}) and the two vectors might even point in opposite directions.

Motivated by these observations we want to maintain P~v~\widetilde{P}\widetilde{v} instead of PvPv. This idea allows for a speed-up, because in each iteration we only need to change the entries of u~\widetilde{u} and μ~\widetilde{\mu} for which the (1+ε)(1+\varepsilon)-approximation condition is broken. Thus if the vectors uu and μ\mu do not change much per iteration, then we only need to change few entries of u~\widetilde{u} and μ~\widetilde{\mu}. We prove in Section 5.2 that uu and μ\mu satisfy the following condition:

Let (uk)k≥1(u^{k})_{k\geq 1} be the sequence of vectors uu, generated by the central path method. Then ∥(uk+1−uk)/uk∥2≤C\|(u^{k+1}-u^{k})/u^{k}\|_{2}\leq C for all kk and some constant CC. (A similar statement can be made for μ\mu)

Thus, while we are not able to solve 2.2 exactly, we do obtain a data-structure that (i) maintains the solution approximately, and (ii) is fast if ∥(uk+1−uk)/uk∥2\|(u^{k+1}-u^{k})/u^{k}\|_{2} and ∥(μk+1−μk)/μk∥2\|(\mu^{k+1}-\mu^{k})/\mu^{k}\|_{2} are small.

Initialize(A,u,f,v,εmp)(A,u,f,v,\varepsilon_{mp}): The data-structure preprocesses the given two nn dimensional vectors u,vu,v, the d×nd\times n matrix AA the function ff in O(n2dω−2)O(n^{2}d^{\omega-2}) time. The given parameter εmp>0\varepsilon_{mp}>0 specifies the accuracy of the approximation.

Update(u,v)(u,v): Given two nn dimensional vectors u,vu,v. Then the data-structure returns four vectors

Here U~\widetilde{U} is the diagonal matrix diag⁡(u~)\operatorname{diag}(\widetilde{u}) and v~\widetilde{v} a vector such that

If the update sequence u(1),...,u(T)u^{(1)},...,u^{(T)} (and likewise v(1),...,v(T)v^{(1)},...,v^{(T)}) satisfies

for all k=1,...,Tk=1,...,T then the total time for the first TT updates is

There are two equivalent ways to prove Theorem 2.4: One could use the data-structures of [San04, vdBNS19] which maintain M−1bM^{-1}b for some non-singular matrix MM and some vector bb. Via a black-box reduction these data-structures would then be able to maintain P~v~\widetilde{P}\widetilde{v} and applying the tools of [CLS18] for optimizing the amortized complexity would then result in Theorem 2.4.

If one tries to write down a pseudo-code description of the resulting data-structure, then the code is very similar to the data-structure from [CLS18]. This is because all these data-structures are based on the Sherman-Morrison-Woodburry identity. Hence an alternative way to prove Theorem 2.4 is to take the data-structure from [CLS18], which already maintains P~\widetilde{P}, and extend such that it also maintains P~v~\widetilde{P}\widetilde{v}.

In this paper we present the second option, where we modify the existing data-structure of [CLS18]. This is because we want to highlight that our derandomization result can be obtained from a simple modification of the existing randomized algorithm. Though for the curious reader we also give a sketch of the first variant in Appendix B.

Proof sketch (Details in Section 4)

We now outline how to obtain Theorem 2.4 by extending the data-structure of [CLS18] to also maintain P~v~\widetilde{P}\widetilde{v}, instead of just P~\widetilde{P}. Their data-structure internally has three matrices M,L,RM,L,R with the property

where MM is some n×nn\times n matrix and L,RL,R are rectangular matrices with some m≪nm\ll n columns. With each update, the matrices L,RL,R change and the number of their columns may increase. This way the n2n^{2} entries of the matrix P~\widetilde{P} are not explicitly computed and a sub-quadratic update time can be achieved.

As the number of columns mm of L,RL,R grows, the data-structure will become slower and slower. Once these matrices have too many columns, the data-structure performs a “reset”. This means we set

and the matrices L,RL,R are set to be empty (so zero columns). Thus after the reset we have P~=M+LR⊤=M\widetilde{P}=M+LR^{\top}=M, so (3) is still satisfied. Such a reset requires Ω(n2)\Omega(n^{2}) time, but it does not happen too often so the cost is small on average. Section 5 of [CLS18] is about bounding this amortized cost.

One can now easily maintain P~f(v~)\widetilde{P}f(\widetilde{v}) as follows: Assume we already know Mf(v~)Mf(\widetilde{v}), then a new solution P~f(v~)\widetilde{P}f(\widetilde{v}) is given by

because of (3). Here the term LR⊤f(v~)LR^{\top}f(\widetilde{v}) can be computed in O(nm)≪O(n2)O(nm)\ll O(n^{2}) time, because L,RL,R have m≪nm\ll n columns. The assumption, that Mf(v~)Mf(\widetilde{v}) is known, can be satisfied easily: During the initialization of the algorithm we compute this value, and whenever MM changes (i.e. during the reset (4)) we can compute the new Mf(v~)Mf(\widetilde{v}) in O(n2)O(n^{2}) time. This does not affect the complexity of the data-structure, because a reset does already require Ω(n2)\Omega(n^{2}) time to compute the new MM.

At last, we must handle the case where entries of v~\widetilde{v} are changed. Let’s say v~new⁡←v~+δv\widetilde{v}^{\operatorname{new}}\leftarrow\widetilde{v}+\delta_{v}, then

where the last equality comes from (3). The complexity can be bounded as follows: The term P~f(v~)\widetilde{P}f(\widetilde{v}) is computed as described in (5). The second term M(f(v~new⁡)−f(v~))M(f(\widetilde{v}^{\operatorname{new}})-f(\widetilde{v})) can be computed quickly because on average v~new⁡\widetilde{v}^{\operatorname{new}} and v~\widetilde{v} differ in only few entries, because of the small change to vv per iteration (as given by (2) of Theorem 2.4). The last term LR⊤(f(v~new⁡)−f(v~))LR^{\top}(f(\widetilde{v}^{\operatorname{new}})-f(\widetilde{v})) is again computed quickly because the matrices L,RL,R have very few columns.

3 Adapting the Central Path Method for Approximate Projection Maintenance (Details in Section 5)

We now outline difficulties that occur, if one tries to use the projection maintenance algorithm (Theorem 2.4, outlined in Section 2.2) in the classical central path method (outlined in Section 2.1), and how we are able to solve these issues in Section 5.

The central path method can be interpreted as some gradient descent, where we try to minimize some potential. When we use the data-structure of Theorem 2.4, then we are essentially performing this gradient descent while using some approximate gradient. This approximation is of such low quality, that the approximate gradient occasionally points in a completely wrong direction, effectively increasing the potential instead of decreasing it. By adapting the potential function, we are able to prove that the approximate gradient only points in the wrong direction when the potential is small. Whenever the potential is large, the approximate gradient points in the correct direction. (A formal proof of this will be in Section 5.3, Lemma 5.14.) This adaption to the short step central path method allows us to handle these faulty approximate gradients. Before we can outline why this is true, we must first explain why we obtain these faulty approximate gradients in the first place.

The central path method tries to maintain some vector μ\mu close to a scalar tt, where the relative distance is measured via some potential function Φ(μ/t−1)\Phi(\mu/t-1). The central path method tries to minimize this potential function by solving some linear system that depends on the gradient ∇Φ(μ/t−1)\nabla\Phi(\mu/t-1).

Adapting the central path method

The majority of the proof that this choice for Φ\Phi works, is adapted from [CLS18]. For their stochastic central path method, Cohen et al. sparsify the gradient ∇Φ(μ/t−1)\nabla\Phi(\mu/t-1) via randomly sampling its entries. This sparsification could be interpreted as some type of approximation of the gradient, which allows us to adapt their proof to our new notion of “approximating” the gradient via ∇Φ(μ~/t−1)\nabla\Phi(\widetilde{\mu}/t-1) for μ~≈μ\widetilde{\mu}\approx\mu. The main difference is that in [CLS18], the exact and approximate gradient always point in the same direction (i.e. their inner product is positive), so in [CLS18] it was a bit easier to show that the potential Φ(μ/t−1)\Phi(\mu/t-1) decreases in each iteration. For comparison, when using our approximation, the inner product of exact gradient ∇Φ(μ/t−1)\nabla\Phi(\mu/t-1) and the approximation ∇Φ(μ~/t−1)\nabla\Phi(\widetilde{\mu}/t-1) may become negative. So we must spend some extra effort in Section 5.3 to show that the approximate gradient points in the correct direction, whenever Φ(μ/t−1)\Phi(\mu/t-1) is large (this will be proven in Lemma 5.14). Intuitively, this is true because when Φ(μ/t−1)\Phi(\mu/t-1) is large, then there are many indices ii such that μi\mu_{i} is further from tt than some (1±εmp)(1\pm\varepsilon_{mp})-factor. As outlined before, this means the approximate gradient tries to change the iith coordinate of μ\mu in the correct direction, i.e. iith entry of the exact and approximate gradient have the same sign.

We also want to point out, that our approach of using a gradient w.r.t the approximate μ~≈μ\widetilde{\mu}\approx\mu means it is enough to maintain an approximate x~≈x\widetilde{x}\approx x, s~≈s\widetilde{s}\approx s, so x~s~=:μ~≈μ\widetilde{x}\widetilde{s}=:\widetilde{\mu}\approx\mu. The same observation was made independently in [LSZ19], where that property was exploited to compute the steps δx\delta_{x}, δs\delta_{s} approximately via random sketching. The analysis of their central path method is based on modifying the standard newton steps to be a variant of gradient descent in some hessian norm space. In comparison our proof is arguably simpler, as we perform a typical gradient descent w.r.t Φ(μ~/t)\Phi(\widetilde{\mu}/t).

Preliminaries

For the linear program min⁡Ax=b,x≥0c⊤x\min_{Ax=b,x\geq 0}c^{\top}x we assume there are no redundant constraints, i.e. the matrix AA is of rank dd and n≥dn\geq d.

For two nn dimensional vectors v,wv,w their inner products is written as v⊤wv^{\top}w or alternatively ⟨v,w⟩\langle v,w\rangle. We write vwvw for the entry-wise product, so (vw)i:=viwi(vw)_{i}:=v_{i}w_{i}. The same is true for all other arithmetic operations, for example (v/w)i:=vi/wi(v/w)_{i}:=v_{i}/w_{i} and (v)i:=vi(\sqrt{v})_{i}:=\sqrt{v_{i}}. For a scalar ss the product svsv is the typical entry-wise product and analogously we define v−sv-s as the entry-wise difference, so (v−s)i:=vi−s(v-s)_{i}:=v_{i}-s.

Inequalities

We write v≤wv\leq w if vi≤wiv_{i}\leq w_{i} for all i=1,...,ni=1,...,n and we use the notation v≈εwv\approx_{\varepsilon}w to express a (1±ε)(1\pm\varepsilon) approximation, defined as (1−ε)w≤v≤(1+ε)w(1-\varepsilon)w\leq v\leq(1+\varepsilon)w. Note that v≈εwv\approx_{\varepsilon}w is not symmetric, but it implies w≈2εvw\approx_{2\varepsilon}v for ε≤1/2\varepsilon\leq 1/2.

Relative error and multiplicative change

Let v,w,δv,δwv,w,\delta_{v},\delta_{w} be vectors, such that vnew⁡=v+δvv^{\operatorname{new}}=v+\delta_{v}, wnew⁡=w+δww^{\operatorname{new}}=w+\delta_{w} then

Here the last term can be bounded via ∥δvvδww∥2≤∥δvv∥∞∥δww∥2≤∥δvv∥2∥δww∥2\|\frac{\delta_{v}}{v}\frac{\delta_{w}}{w}\|_{2}\leq\|\frac{\delta_{v}}{v}\|_{\infty}\|\frac{\delta_{w}}{w}\|_{2}\leq\|\frac{\delta_{v}}{v}\|_{2}\|\frac{\delta_{w}}{w}\|_{2} ∎

Further, if vnew⁡v^{\operatorname{new}} has small multiplicative change compared to vv, then the same is true for 1/vnew⁡1/v^{\operatorname{new}} and 1/v1/v.

Fast Matrix Multiplication

We write O(nω)O(n^{\omega}) for the arithmetic complexity of multiplying two n×nn\times n matrices. Computing the inverse has the same complexity. The exponent ω\omega is also called the matrix exponent. We call α\alpha the dual matrix exponent, which is the largest value such that multiplying a n×nn\times n matrix with an n×nαn\times n^{\alpha} requires O(n2+o(1))O(n^{2+o(1)}) time. The current best bounds are ω≈2.38\omega\approx 2.38 [Wil12, Gal14] and α≈0.31\alpha\approx 0.31 [GU18].

Projection Maintenance

Initialize(A,u,f,v,εmp)(A,u,f,v,\varepsilon_{mp}): The data-structure preprocesses the given two nn dimensional vectors u,vu,v, the d×nd\times n matrix AA the function ff in O(n2dω−2)O(n^{2}d^{\omega-2}) time. The given parameter εmp>0\varepsilon_{mp}>0 specifies the accuracy of the approximation.

Update(u,v)(u,v): Given two nn dimensional vectors u,vu,v. Then the data-structure returns four vectors

Here U~\widetilde{U} is the diagonal matrix diag⁡(u~)\operatorname{diag}(\widetilde{u}) and v~\widetilde{v} a vector such that

If the update sequence u(1),...,u(T)u^{(1)},...,u^{(T)} (and likewise v(1),...,v(T)v^{(1)},...,v^{(T)}) satisfies

for all k=1,...,Tk=1,...,T then the total time for the first TT updates is

This section is split into three parts: We first present the algorithm and give a high-level description in Section 4.1. The next subsection (Section 4.2) proves that the algorithm returns the correct result, and at last in Section 4.3 we bound the complexity of the algorithm.

Algorithm 1 describes a data-structure, so we have variables that persist between calls to its function Update. What these variables represent might be a bit hard to deduce from just reading the pseudo-code, so we want to give a brief outline of Algorithm 1 here. This outline is not required for verifying the proofs, but it might help for understanding how the algorithm works.

The internal variables are nn-dimensional vectors u~,v~,w\widetilde{u},\widetilde{v},w and an n×nn\times n matrix MM. The relationship between them is

where U~=diag⁡(u~)\widetilde{U}=\operatorname{diag}(\widetilde{u}).

These internal variables are useful because of the following reason: In each call to Update, the data-structure receives two new vectors unew⁡,vnew⁡u^{\operatorname{new}},v^{\operatorname{new}} and for Unew⁡=diag⁡(unew⁡)U^{\operatorname{new}}=\operatorname{diag}(u^{\operatorname{new}}) the task is to return an approximation of Unew⁡A⊤(AUnew⁡A⊤)−1AUnew⁡f(vnew⁡)\sqrt{U^{\operatorname{new}}}A^{\top}(AU^{\operatorname{new}}A^{\top})^{-1}A\sqrt{U^{\operatorname{new}}}f(v^{\operatorname{new}}) by (1±εmp)(1\pm\varepsilon_{mp})-approximating Unew⁡U^{\operatorname{new}} and vnew⁡v^{\operatorname{new}}. Thus if

then U~w\sqrt{\widetilde{U}}w would be the desired approximate result. If this (1+εmp)(1+\varepsilon_{mp})-approximation condition (8) is not satisfied, then we can define two new valid approximations

for all i=1,...,ni=1,...,n. If u~new⁡\widetilde{u}^{\operatorname{new}} and u~\widetilde{u} (and respectively v~new⁡\widetilde{v}^{\operatorname{new}}, v~new⁡\widetilde{v}^{\operatorname{new}}) differ in at most kk many entries, then it is known (via Sherman-Morrison-Woodbury identity Lemma 4.3) that one can quickly construct two n×kn\times k matrices R,LR,L such that

This in turn means that we can get the desired approximate result as follows:

Here each term can be computed in at most O(nk)O(nk) time, because the first term is the already known vector ww, the vector of the second term is sparse, and R,LR,L are n×kn\times k matrices.

Thus, if kk is small, then we can maintain the solution quickly. In [CLS18], Cohen et al. have developed a strategy with low amortized cost, that specifies when to recompute MM for some new u~\widetilde{u}, such that kk stays small. In their algorithm they do not maintain the matrix-vector product, so their data-structure does not have the internal variables ww and v~\widetilde{v}. We extend their strategy to also recompute ww for some new v~\widetilde{v}, such that the above outlined procedure has low amortized cost.

2 Correctness

The task of this subsection is to prove the following lemma, which says that the vectors returned by Algorithm 1 are as specified in Lemma 4.1.

After every update to Algorithm 1 with input (unew⁡,vnew⁡)(u^{\operatorname{new}},v^{\operatorname{new}}) the returned vectors u~new⁡,v~new⁡,f(v~new⁡),r\widetilde{u}^{\operatorname{new}},\widetilde{v}^{\operatorname{new}},f(\widetilde{v}^{\operatorname{new}}),r satisfy unew⁡≈εmpu~new⁡u^{\operatorname{new}}\approx_{\varepsilon_{mp}}\widetilde{u}^{\operatorname{new}}, vnew⁡≈εmpv~new⁡v^{\operatorname{new}}\approx_{\varepsilon_{mp}}\widetilde{v}^{\operatorname{new}} and

Before we can prove this lemma, we must first prove that the internal variables of the data-structure save the correct values, i.e. we want to prove that equation (7) is correct. For this we must first state the following lemma from [CLS18], based on Sherman-Morison-Woodbury identity.

If M=A⊤(AU~A⊤)−1AM=A^{\top}(A\widetilde{U}A^{\top})^{-1}A at the start of the update of Algorithm 1 and MS,MS,S,ΔS,SM_{S},M_{S,S},\Delta_{S,S} are chosen as described in Algorithm 1, then we have

We can now prove that the internal variables store the correct values.

At the start of every update to Algorithm 1 we have

If it is the first update after the initialization, then the claim is true by definition of the procedure Initialize. Next, we prove that at the end of every call to Update we satisfy (9), if (9) was satisfied at the start of Update. This then implies Lemma 4.4. If k≥nak\geq n^{a}, then 33 makes sure that M=A⊤(AU~new⁡A⊤)−1AM=A^{\top}(A\widetilde{U}^{\operatorname{new}}A^{\top})^{-1}A (see Lemma 4.3). The next lines set w←MU~new⁡f(vnew⁡)w\leftarrow M\sqrt{\widetilde{U}^{\operatorname{new}}}f(v^{\operatorname{new}}), v~←vnew⁡\widetilde{v}\leftarrow v^{\operatorname{new}} and u~←u~new⁡\widetilde{u}\leftarrow\widetilde{u}^{\operatorname{new}}. Thus (9) is satisfied for the case k≥nak\geq n^{a}. If ∣T∣≥na|T|\geq n^{a}, then we compute w←MU~f(vnew⁡)w\leftarrow M\sqrt{\widetilde{U}}f(v^{\operatorname{new}}) and set v~←vnew⁡\widetilde{v}\leftarrow v^{\operatorname{new}}. The matrices MM and U~\widetilde{U} are not modified, so (9) is satisfied. If ∣T∣<na|T|<n^{a}, then we do not change M,u~,v~M,\widetilde{u},\widetilde{v} or rr, so (9) is satisfied.

We now prove the correctness of Algorithm 1 by proving Lemma 4.2.

Note that we always have unew⁡≈εmpu~new⁡u^{\operatorname{new}}\approx_{\varepsilon_{mp}}\widetilde{u}^{\operatorname{new}} by 27.

In 33 we have set M=A⊤(AU~new⁡A⊤)−1AM=A^{\top}(A\widetilde{U}^{\operatorname{new}}A^{\top})^{-1}A (see Lemmas 4.3 and 4.4). Hence by setting r←U~new⁡w=U~new⁡MU~new⁡f(vnew⁡)r\leftarrow\sqrt{\widetilde{U}^{\operatorname{new}}}w=\sqrt{\widetilde{U}^{\operatorname{new}}}M\sqrt{\widetilde{U}^{\operatorname{new}}}f(v^{\operatorname{new}}), and v~new⁡←vnew⁡\widetilde{v}^{\operatorname{new}}\leftarrow v^{\operatorname{new}}, all claims of Lemma 4.2 are satisfied.

Case |T|≥na|T|\geq n^{a}:

In this case we set rr to the following value:

Here the equality comes from Lemmas 4.3 and 4.4. Further, we set v~new⁡←vnew⁡\widetilde{v}^{\operatorname{new}}\leftarrow v^{\operatorname{new}}, so Lemma 4.2 is correct for the case ∣T∣≥na|T|\geq n^{a}.

Case |T|<na|T|<n^{a}:

Here vnew⁡≈εmpv~new⁡v^{\operatorname{new}}\approx_{\varepsilon_{mp}}\widetilde{v}^{\operatorname{new}} by 43, so we are left with verifying rr. First note that w=MU~f(v~)w=M\sqrt{\widetilde{U}}f(\widetilde{v}) by Lemma 4.4, so w+M(U~new⁡f(v~new⁡)−U~f(v~))=MU~new⁡f(v~new⁡)w+M(\sqrt{\widetilde{U}^{\operatorname{new}}}f(\widetilde{v}^{\operatorname{new}})-\sqrt{\widetilde{U}}f(\widetilde{v}))=M\sqrt{\widetilde{U}^{\operatorname{new}}}f(\widetilde{v}^{\operatorname{new}}). Thus rr is set to the following term:

Where the last equality comes from Lemmas 4.3 and 4.4.

3 Complexity

In this section we will bound the complexity of Algorithm 1, proving the stated complexity bound in Lemma 4.1:

If the updates to Algorithm 1 satisfy the condition (6) as stated in Lemma 4.1, then after TT updates the total update time of Algorithm 1 is

The preprocessing requires O(n2dω−2)O(n^{2}d^{\omega-2}) time.

As our data-structure is a modification of the data-structure presented in [CLS18], we must only analyze the complexity of the modified part. To bound the complexity of the unmodified sections of our algorithm, we will here refer to [CLS18]. The complexity analysis in [CLS18] requires an entire section (about 7 pages) via analysis of some complicated potential function. In the Appendix (Lemma A.2) we present an alternative simpler proof.

The preprocessing requires O(n2dω−2)O(n^{2}d^{\omega-2}) time. After TT updates the total time of all updates of Algorithm 1, when ignoring the branch for k<nak<n^{a} (so we assume that branch of 36 has cost 00), is

When ignoring the branch of 36, then our algorithm performs the same operations as [CLS18][Algorithm 3] and we both maintain MM in the exact same way. The only difference is that we also compute the vector rr in 34, but this requires only O(n2)O(n^{2}) time and is subsumed by the complexity of 33. Thus our time complexity (when ignoring the branch of 36) can be bounded by the update complexity of [CLS18][Algorithm 3], which is the complexity stated in Lemma 4.6. In the same fashion we can bound the complexity of the preprocessing. The preprocessing of [CLS18][Algorithm 3] takes O(n2dω−2)O(n^{2}d^{\omega-2}) time, where their algorithm computes only the matrix MM. The only difference in our algorithm is that we also compute the vector ww in 13. The required O(n2)O(n^{2}) time to compute ww is subsumed by computing MM. ∎

In order to prove Lemma 4.5 we only need to bound the complexity of the branch for the case k<nak<n^{a}. The time required by all other steps of Algorithm 1 is already bounded by Lemma 4.6.

In every update we must compute (ΔS,S−1+MS,S)−1(\Delta_{S,S}^{-1}+M_{S,S})^{-1}, which takes O(na⋅ω)O(n^{a\cdot\omega}) time via the assumption k<nak<n^{a}. Additionally, if ∣T∣<na|T|<n^{a}, then one update requires additional O(n1+a)O(n^{1+a}) operations to compute rr and ww, because (f(v~new⁡)−f(v~))(f(\widetilde{v}^{\operatorname{new}})-f(\widetilde{v})) and (U~−U~new⁡)(\sqrt{\widetilde{U}}-\sqrt{\widetilde{U}^{\operatorname{new}}}) both have at most nan^{a} non-zero entries and MSM_{S} is a n×nan\times n^{a} matrix.

If T≥naT\geq n^{a}, then computing rr and ww can take up to O(n2)O(n^{2}) operations. This can happen at most every O(na/2εmp/C)O(n^{a/2}\varepsilon_{mp}/C) updates by Lemma A.1, because ∑i=1n((vinew⁡−vi)/vi)2≤C2\sum_{i=1}^{n}((v_{i}^{\operatorname{new}}-v_{i})/v_{i})^{2}\leq C^{2}, Hence the amortized time per update is O(n2−a/2C/εmp)O(n^{2-a/2}C/\varepsilon_{mp}).

Note that by assuming a≤α≤1a\leq\alpha\leq 1 the term O(na⋅ω)O(n^{a\cdot\omega}) is subsumed by O(n1+a)O(n^{1+a}), because ω≤3−α\omega\leq 3-\alpha, so a⋅ω≤a(3−α)≤a(3−a)≤1+aa\cdot\omega\leq a(3-\alpha)\leq a(3-a)\leq 1+a. ∎

Central Path Method

In this section we prove the main result Theorem 1.1, by showing how to use the projection maintenance algorithm of Section 4 to obtain a fast deterministic algorithm for solving linear programs.

The algorithm for Theorem 1.1 is based on the short step central path method, outlined in Section 2.1: We construct some feasible solution triple (x,y,s)(x,y,s) with xs=:μ≈1xs=:\mu\approx 1 and then repeatedly decrease tt while maintaining x,sx,s such that μ\mu stays close to tt. Once tt is small enough, we have a good approximate solution. This is a high-level summary of Algorithm 2, which first constructs a solution, and then runs a while-loop until tt is small enough. The actual hard part, maintaining the solution pair x,sx,s with μ≈t\mu\approx t, is done in Algorithm 3. For this task, Algorithm 3 solves a linear system (similar to (1) in Section 2.1) via the data-structure of Lemma 4.1. The majority of this section is dedicated to proving that Algorithm 3 does not require too much time and does indeed maintain the solution pairs (x,s)(x,s) with μ≈t\mu\approx t. For this we must verify the following three properties:

Algorithm 3 does solve an approximate variant of the linear system (1).

We do not change the linear system too much between two calls to Algorithm 3. Otherwise the data-structure of Lemma 4.1 would become too slow.

The approximate result obtained in Algorithm 3 is good enough to maintain x,sx,s such that μ\mu is close to tt.

The proof for this is based on the stochastic central path method by Cohen et al. [CLS18]. In [CLS18], they randomly sampled a certain vector, while in our algorithm this vector will be approximated deterministically via the data-structure of Algorithm 1. This derandomization has the nice side-effect, that we can skip many steps of Cohen et al.’s proof. For example they had to bound the variance of random vectors, which is no longer necessary for our algorithm.

The outline of this section is as follows. We first explain in more detail how Algorithm 3 works in Section 5.1, where we also verify the first requirement, that Algorithm 3 does indeed solve the system (1) approximately. In the next Section 5.2, we check that the input parameters for the data-structure of Lemma 4.1, used by Algorithm 3, do not change too much per iterations. The last Section 5.3 verifies, that we indeed always have μ≈t\mu\approx t. We also consolidate all results in the last subsection by proving the main result Theorem 1.1.

In this section we outline how Algorithm 3 works and we prove that it does indeed solve the linear system (1) (outlined in Section 2.1) in some approximate way. The high-level idea of Algorithm 3 is as follows: In order to maintain μ\mu close to tt, we want to measure the distance via some potential function Φ(μ/t−1)\Phi(\mu/t-1). As we want to minimize the distance, it makes sense to change μ\mu by some δμ\delta_{\mu}, which points in the same direction as −∇Φ(μ/t−1)-\nabla\Phi(\mu/t-1). We can find out how to change xx and ss, in order to change μ\mu by approximately δμ\delta_{\mu}, by solving the linear system (1) via the data-structure of Lemma 4.1.

In reality, we choose δμ\delta_{\mu} to be slightly different:

where tnew⁡:=(1−ε3n)t^{\operatorname{new}}:=(1-\frac{\varepsilon}{3\sqrt{n}}) is the new smaller value that we want to set tt to, and ε\varepsilon is a parameter for how large our step size should be for decreasing tt.

This choice of δμ\delta_{\mu} is motivated by the fact, that the first term (tnew⁡t−1)μ(\frac{t^{{\operatorname{new}}}}{t}-1)\mu leads to some helpful cancellations in later proofs. The second term is the one pointing in the direction of −∇Φ(μ/t−1)-\nabla\Phi(\mu/t-1), which is motivated by decreasing Φ(μ/t−1)\Phi(\mu/t-1).

One can split δμ\delta_{\mu} into the two terms δt=(tnew⁡t−1)μ\delta_{t}=(\frac{t^{{\operatorname{new}}}}{t}-1)\mu and δΦ=ε2⋅tnew⁡⋅∇Φ(μ/t−1)∥∇Φ(μ/t−1)∥2\delta_{\Phi}=\frac{\varepsilon}{2}\cdot t^{{\operatorname{new}}}\cdot\frac{\nabla\Phi(\mu/t-1)}{\|\nabla\Phi(\mu/t-1)\|_{2}}.

Algorithm 3 approximates both vectors in a different way. Specifically, given x,s,μ,δt,δΦ,δμx,s,\mu,\delta_{t},\delta_{\Phi},\delta_{\mu}, Algorithm 3 internally maintains approximations x~,s~,μ~,δ~t,δ~Φ,δ~μ\widetilde{x},\widetilde{s},\widetilde{\mu},\widetilde{\delta}_{t},\widetilde{\delta}_{\Phi},\widetilde{\delta}_{\mu} with the following properties (here εmp>0\varepsilon_{mp}>0 is the accuracy parameter for Lemma 4.1)

and for these approximate values, we solve the following system (which is the same as (1), but using the approximate values):

We prove in two steps that Algorithm 3 does indeed solve (11) for approximate values as in (10): First we prove in Lemma 5.2 that the approximations are as stated in (10), then we show in Lemma 5.3 that we indeed solve the linear system (11).

Note that δ~Φ\widetilde{\delta}_{\Phi} is not an approximation of δΦ\delta_{\Phi} in the classical sense (likewise δ~μ\widetilde{\delta}_{\mu} and δμ\delta_{\mu}) and the vectors could point in completely different directions. They are only “approximate” in the sense that their definition is the same, but for δ~Φ\widetilde{\delta}_{\Phi} we replace μ\mu by the approximate μ~\widetilde{\mu}.

As outlined in the overview Section 2.3, this results in our algorithm not always decreasing the difference between μ\mu and tt. We prove in Section 5.3 that this is not a problem, if we use the following potential function Φ\Phi, accuracy parameter εmp\varepsilon_{mp} (for Lemma 4.1) and step size ε\varepsilon.

where cosh⁡(x):=(ex+e−x)/2\cosh(x):=(e^{x}+e^{-x})/2, λ=40ln⁡n\lambda=40\ln n. For the step size ε\varepsilon and the accuracy parameter εmp\varepsilon_{mp} for Lemma 4.1, assume 0<εmp≤ε≤1/(1500ln⁡n)0<\varepsilon_{mp}\leq\varepsilon\leq 1/(1500\ln n).

The computed vectors x~,s~,μ~,δ~t,δ~Φ,δ~μ\widetilde{x},\widetilde{s},\widetilde{\mu},\widetilde{\delta}_{t},\widetilde{\delta}_{\Phi},\widetilde{\delta}_{\mu} in Algorithm 3 satisfy the following properties: Let μ~/t\widetilde{\mu}/t be the approximation of μ/t\mu/t maintained internally by mpΦ\text{mp}_{\Phi}, then μ≈εmpμ~\mu\approx_{\varepsilon_{mp}}\widetilde{\mu} and δ~Φ=−ε2⋅tnew⁡⋅∇Φλ(μ~/t−1)∥∇Φλ(μ~/t−1)∥\widetilde{\delta}_{\Phi}=-\frac{\varepsilon}{2}\cdot t^{\operatorname{new}}\cdot\frac{\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)}{\|\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)\|}. Further δt≈εmpδ~t\delta_{t}\approx_{\varepsilon_{mp}}\widetilde{\delta}_{t}, x≈εmpx~x\approx_{\varepsilon_{mp}}\widetilde{x}, s≈2εmps~s\approx_{2\varepsilon_{mp}}\widetilde{s}.

The returned vector mm in line 16 is an approximation in the sense that μ/t≈εmpm\mu/t\approx_{\varepsilon_{mp}}m, which means μ≈εmpmt=:μ~\mu\approx_{\varepsilon_{mp}}mt=:\widetilde{\mu}. We have xs=:u≈εmpu~\frac{x}{s}=:u\approx_{\varepsilon_{mp}}\widetilde{u}, hence uu~≈εmp1\frac{u}{\widetilde{u}}\approx_{\varepsilon_{mp}}1 and 1≈εmpu~u1\approx_{\varepsilon_{mp}}\frac{\widetilde{u}}{u}. Thus x≈εmpxμ~μu~u=x~x\approx_{\varepsilon_{mp}}x\sqrt{\frac{\widetilde{\mu}}{\mu}\frac{\widetilde{u}}{u}}=\widetilde{x} and s≈2εmpsμ~μuu~=s~s\approx_{2\varepsilon_{mp}}s\sqrt{\frac{\widetilde{\mu}}{\mu}\frac{u}{\widetilde{u}}}=\widetilde{s}.

As potential function we have chosen Φλ(x)=∑i=1ncosh⁡(xi)\Phi_{\lambda}(x)=\sum_{i=1}^{n}\cosh(x_{i}), so (∇Φλ(x−1)/x)i=λsinh⁡(λ(xi−1))/xi.(\nabla\Phi_{\lambda}(x-1)/\sqrt{x})_{i}=\lambda\sinh(\lambda(x_{i}-1))/\sqrt{x_{i}}. This means λsinh⁡(λ(x−1))/x\lambda\sinh(\lambda(x-1))/\sqrt{x} for x=μ/tx=\mu/t is ∇Φλ(μ/t−1)/μ/t\nabla\Phi_{\lambda}(\mu/t-1)/\sqrt{\mu/t} and w=λsinh⁡(λ(m−1))/m=∇Φλ(μ~/t−1)/μ~/t.w=\lambda\sinh(\lambda(m-1))/\sqrt{m}=\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)/\sqrt{\widetilde{\mu}/t}. Hence we have that δ~Φ=−ε2⋅tnew⁡⋅μ~/tw∥∇Φλ(μ~/t−1)∥2=−ε2⋅tnew⁡⋅∇Φλ(μ~/t−1)∥∇Φλ(μ~/t−1)∥2\widetilde{\delta}_{\Phi}=-\frac{\varepsilon}{2}\cdot t^{\operatorname{new}}\cdot\frac{\sqrt{\widetilde{\mu}/t}w}{\|\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)\|_{2}}=-\frac{\varepsilon}{2}\cdot t^{\operatorname{new}}\cdot\frac{\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)}{\|\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)\|_{2}}. We also have δt=(tnew⁡t−1)μ\delta_{t}=(\frac{t^{{\operatorname{new}}}}{t}-1)\mu, μ≈εmpv2\mu\approx_{\varepsilon_{mp}}v^{2} and μ≈εmpμ~\mu\approx_{\varepsilon_{mp}}\widetilde{\mu}, so μ≈εmpvμ~\mu\approx_{\varepsilon_{mp}}v\sqrt{\widetilde{\mu}} which implies δt≈εmp(tnew⁡t−1)vμ~=:δ~t\delta_{t}\approx_{\varepsilon_{mp}}(\frac{t^{{\operatorname{new}}}}{t}-1)v\sqrt{\widetilde{\mu}}=:\widetilde{\delta}_{t}.

The computed vectors in Algorithm 3 satisfy the following linear system:

We define the following projection matrix:

Hence the change to xx and ss is given by

2 Bounding the change per iteration

Algorithm 3 uses the data-structure of Lemma 4.1. The complexity of this data-structure depends on how much the input parameters (in our case u:=x/su:=x/s, μ\mu and μ/t\mu/t) change per iteration. In this section we prove:

Assume μ≈0.1t\mu\approx_{0.1}t. Let μnew⁡:=(x+δ~x)(s+δ~s)\mu^{\operatorname{new}}:=(x+\widetilde{\delta}_{x})(s+\widetilde{\delta}_{s}), the value of μ\mu in the upcoming iteration, and let u:=xsu:=\frac{x}{s}, unew⁡:=x+δ~xs+δ~su^{\operatorname{new}}:=\frac{x+\widetilde{\delta}_{x}}{s+\widetilde{\delta}_{s}}, then

In order to prove this lemma, we must assume that μ\mu is currently a good approximation of tt. We assume the following proposition, which is proven in the next subsection.

For the input to Algorithm 3 we have μ≈0.1t\mu\approx_{0.1}t

How much we change x,sx,s depends on how long the vector δμ\delta_{\mu} is, so we start by bounding that length.

∥δt∥2≤1.1ε3t\|\delta_{t}\|_{2}\leq 1.1\frac{\varepsilon}{3}t, ∥δΦ∥2≤ε2t\|\delta_{\Phi}\|_{2}\leq\frac{\varepsilon}{2}t, ∥δμ∥2≤εt\|\delta_{\mu}\|_{2}\leq\varepsilon t ∥δ~t∥2≤1.2ε3t\|\widetilde{\delta}_{t}\|_{2}\leq 1.2\frac{\varepsilon}{3}t, ∥δ~Φ∥2≤ε2t\|\widetilde{\delta}_{\Phi}\|_{2}\leq\frac{\varepsilon}{2}t, ∥δ~μ∥2≤εt\|\widetilde{\delta}_{\mu}\|_{2}\leq\varepsilon t

Here the first inequality comes from μ≈0.1t\mu\approx_{0.1}t. This then also implies ∥δ~t∥2≤1.2ε3t\|\widetilde{\delta}_{t}\|_{2}\leq 1.2\frac{\varepsilon}{3}t, because δt≈εmpδ~t\delta_{t}\approx_{\varepsilon_{mp}}\widetilde{\delta}_{t} from Lemma 5.2. Next we handle the length of δΦ\delta_{\Phi}:

The same proof also yields the bound for δ~Φ\widetilde{\delta}_{\Phi} as we just replace μ/t\mu/t by μ~/t\widetilde{\mu}/t, but because of the normalization this does not change the length. By combining the past results via triangle inequality we obtain

and likewise ∥δ~μ∥≤εt\|\widetilde{\delta}_{\mu}\|\leq\varepsilon t. ∎

Next we show that the multiplicative change to xx and ss is small.

∥s~−1δ~s∥2≤1.2ε\|\widetilde{s}^{-1}\widetilde{\delta}_{s}\|_{2}\leq 1.2\varepsilon, ∥s−1δ~s∥2≤1.2ε\|s^{-1}\widetilde{\delta}_{s}\|_{2}\leq 1.2\varepsilon, ∥x~−1δ~x∥2≤1.2ε\|\widetilde{x}^{-1}\widetilde{\delta}_{x}\|_{2}\leq 1.2\varepsilon, ∥x−1δ~x∥2≤1.2ε\|x^{-1}\widetilde{\delta}_{x}\|_{2}\leq 1.2\varepsilon

Since P~\widetilde{P} is an orthogonal projection matrix we have ∥P~δ~μX~S~∥2≤∥δ~μX~S~∥2\|\widetilde{P}\frac{\widetilde{\delta}_{\mu}}{\sqrt{\widetilde{X}\widetilde{S}}}\|_{2}\leq\|\frac{\widetilde{\delta}_{\mu}}{\sqrt{\widetilde{X}\widetilde{S}}}\|_{2} and as μ≈εmpμ~=x~s~\mu\approx_{\varepsilon_{mp}}\widetilde{\mu}=\widetilde{x}\widetilde{s} and μ≈0.1t\mu\approx_{0.1}t, this can be further bounded by (1+εmp)/(0.9t)∥δ~μ∥.\sqrt{(1+\varepsilon_{mp})/(0.9t)}\|\widetilde{\delta}_{\mu}\|. This allows us to bound ∥s~−1δ~s∥2\|\widetilde{s}^{-1}\widetilde{\delta}_{s}\|_{2} as follows:

As x≈εmpx~x\approx_{\varepsilon_{mp}}\widetilde{x}, s≈2εmps~s\approx_{2\varepsilon_{mp}}\widetilde{s} we have ∥s−1δ~s∥2≤(1−εmp)−1∥s~−1δ~s∥2≤1.2ε\|s^{-1}\widetilde{\delta}_{s}\|_{2}\leq(1-\varepsilon_{mp})^{-1}\|\widetilde{s}^{-1}\widetilde{\delta}_{s}\|_{2}\leq 1.2\varepsilon, ∥x−1δ~x∥2≤(1−εmp)−1∥x~−1δ~x∥2≤1.2ε\|x^{-1}\widetilde{\delta}_{x}\|_{2}\leq(1-\varepsilon_{mp})^{-1}\|\widetilde{x}^{-1}\widetilde{\delta}_{x}\|_{2}\leq 1.2\varepsilon via the same proof.

With this we can now prove Lemma 5.4. We split the proof into two separate corollaries: one for μ\mu and one for uu.

∥μ−1(μnew⁡−μ)∥≤2.5ε\|\mu^{-1}(\mu^{\operatorname{new}}-\mu)\|\leq 2.5\varepsilon, ∥(μ/t)−1(μnew⁡/tnew⁡−μ/t)∥≤3ε\|(\mu/t)^{-1}(\mu^{\operatorname{new}}/t^{\operatorname{new}}-\mu/t)\|\leq 3\varepsilon

The first claim follows from μ=xs\mu=xs, μnew⁡=(x+δ~x)(s+δ~s)\mu^{\operatorname{new}}=(x+\widetilde{\delta}_{x})(s+\widetilde{\delta}_{s}) and ∥x−1δ~x∥,∥s−1δ~s∥≤1.2ε\|x^{-1}\widetilde{\delta}_{x}\|,\|s^{-1}\widetilde{\delta}_{s}\|\leq 1.2\varepsilon, and applying Lemma 3.1:

The second claim is implied by Lemma 3.1 and Lemma 3.2: Lemma 3.2 allows us to describe how much (tnew⁡)−1⋅1n(t^{\operatorname{new}})^{-1}\cdot\mathbf{1}_{n} changed compared to t−1⋅1nt^{-1}\cdot\mathbf{1}_{n}:

Then Lemma 3.2 tells us ∥(μ/t)−1(μnew⁡/tnew⁡−μ/t)∥≤0.35ε+2.5ε+(0.35⋅2.5)ε2≤3ε.\|(\mu/t)^{-1}(\mu^{\operatorname{new}}/t^{\operatorname{new}}-\mu/t)\|\leq 0.35\varepsilon+2.5\varepsilon+(0.35\cdot 2.5)\varepsilon^{2}\leq 3\varepsilon. ∎

Likewise, the multiplicative change of u:=xsu:=\frac{x}{s} can be bounded as follows:

Let u:=xsu:=\frac{x}{s}, then ∥(unew⁡−u)/u∥2≤3ε\|(u^{\operatorname{new}}-u)/u\|_{2}\leq 3\varepsilon

We have ∥x−1δx∥2,∥s−1δs∥≤1.2ε\|x^{-1}\delta_{x}\|_{2},\|s^{-1}\delta_{s}\|\leq 1.2\varepsilon, see Lemma 5.7. Thus ∥s((s+δs)−1−s−1)∥≤1.2ε/(1−1.2ε)≤1.4ε\|s((s+\delta_{s})^{-1}-s^{-1})\|\leq 1.2\varepsilon/(1-1.2\varepsilon)\leq 1.4\varepsilon by Lemma 3.2. This leads to ∥u−1(unew⁡−u)∥≤1.4ε+1.2ε+(1.2ε)2<3ε\|u^{-1}(u^{\operatorname{new}}-u)\|\leq 1.4\varepsilon+1.2\varepsilon+(1.2\varepsilon)^{2}<3\varepsilon, because of u=x/su=x/s and Lemma 3.1. ∎

3 Maintaining μ≈t\mu\approx t

In this section we prove Proposition 5.5, so μ≈0.1t\mu\approx_{0.1}t. An alternative way to write this statement is ∥μ/t−1∥∞≤0.1\|\mu/t-1\|_{\infty}\leq 0.1. We prove that this norm is small, by showing that the potential Φλ(μ/t−1)\Phi_{\lambda}(\mu/t-1) stays below a certain threshold. The choice of Φλ(x)=∑i=1ncosh⁡(xi)\Phi_{\lambda}(x)=\sum_{i=1}^{n}\cosh(x_{i}) is motivated by the following lemma:

∥μ/t−1∥∞≤ln⁡2Φλ(μ/t−1)λ\|\mu/t-1\|_{\infty}\leq\frac{\ln 2\Phi_{\lambda}(\mu/t-1)}{\lambda}

Φλ(x)=12∑i=1neλxi+e−λxi≥12eλ∥x∥∞\Phi_{\lambda}(x)=\frac{1}{2}\sum_{i=1}^{n}e^{\lambda x_{i}}+e^{-\lambda x_{i}}\geq\frac{1}{2}e^{\lambda\|x\|_{\infty}}, so ∥x∥∞≤ln⁡2Φλ(x)λ\|x\|_{\infty}\leq\frac{\ln 2\Phi_{\lambda}(x)}{\lambda}. ∎

This means we must prove Φλ(μ/t−1)≤0.5⋅e0.1λ=0.5n4\Phi_{\lambda}(\mu/t-1)\leq 0.5\cdot e^{0.1\lambda}=0.5n^{4}. We prove this in an inductive way. More accurately, in this section we prove the following lemma. (Note that 2n≤0.5n42n\leq 0.5n^{4} for n>1n>1.)

If Φλ(μ/t−1)≤2n\Phi_{\lambda}(\mu/t-1)\leq 2n, then Φλ(μnew⁡/tnew⁡−1)≤2n\Phi_{\lambda}(\mu^{\operatorname{new}}/t^{\operatorname{new}}-1)\leq 2n.

In order to show that Lemma 5.11 is true, we must first bound the impact of all the approximations. We start by bounding the error that we incur based on the approximation μnew⁡≈μ+δ~μ\mu^{\operatorname{new}}\approx\mu+\widetilde{\delta}_{\mu}, when in reality we have μnew⁡=(x+δ~x)(s+δ~s)=μ+δ~μ+δ~xδ~s\mu^{\operatorname{new}}=(x+\widetilde{\delta}_{x})(s+\widetilde{\delta}_{s})=\mu+\widetilde{\delta}_{\mu}+\widetilde{\delta}_{x}\widetilde{\delta}_{s}.

For μnew⁡=(x+δ~x)(s+δ~s)\mu^{\operatorname{new}}=(x+\widetilde{\delta}_{x})(s+\widetilde{\delta}_{s}) we have ∥μnew⁡−μ−δ~μ∥2≤6tε2.\|\mu^{\operatorname{new}}-\mu-\widetilde{\delta}_{\mu}\|_{2}\leq 6t\varepsilon^{2}.

We can expand the term for μnew⁡\mu^{\operatorname{new}} as follows:

Hence the error (relative to μ\mu) can be bounded as follows:

For the fourth line we used μ=xs\mu=xs, x≈εmpx~x\approx_{\varepsilon_{mp}}\widetilde{x}, s≈2εmps~s\approx_{2\varepsilon_{mp}}\widetilde{s}, which implies (for example) μ−1(x−x~)s=x−1(x−x~)≤x−1εmpx~≤εmp1−εmp\mu^{-1}(x-\widetilde{x})s=x^{-1}(x-\widetilde{x})\leq x^{-1}\varepsilon_{mp}\widetilde{x}\leq\frac{\varepsilon_{mp}}{1-\varepsilon_{mp}}. The last line uses Lemma 5.7.

By exploiting μ≈0.1t\mu\approx_{0.1}t and εmp≤ε\varepsilon_{mp}\leq\varepsilon, we get ∥μnew⁡−μ−δ~μ∥2≤6tε2\|\mu^{\operatorname{new}}-\mu-\widetilde{\delta}_{\mu}\|_{2}\leq 6t\varepsilon^{2}.

Another source of error is that δ~Φ\widetilde{\delta}_{\Phi} and δΦ\delta_{\Phi} (which depend on ∇Φλ(μ~/t−1)\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1) and ∇Φλ(μ/t−1)\nabla\Phi_{\lambda}(\mu/t-1)) might point in two completely different directions. This issue was outlined in the overview Section 2.3, where we claimed that for Φλ(μ/t−1)\Phi_{\lambda}(\mu/t-1) large enough, the approximate gradient ∇Φλ(μ~/t−1)\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1) does point in the same direction as ∇Φλ(μ/t−1)\nabla\Phi_{\lambda}(\mu/t-1). In order to prove this claim, we require some properties of Φλ(⋅)\Phi_{\lambda}(\cdot).

Let Φλ(x)=∑i=1ncosh⁡(λxi)\Phi_{\lambda}(x)=\sum_{i=1}^{n}\cosh(\lambda x_{i}), then

For any ∥v∥∞≤1/λ\|v\|_{\infty}\leq 1/\lambda we have

∥∇ϕλ(r)∥2≥λn(Φλ(r)−n)\|\nabla\phi_{\lambda}(r)\|_{2}\geq\frac{\lambda}{\sqrt{n}}(\Phi_{\lambda}(r)-n)

(∑i=1nλ2Φλ(ri)i2)0.5≤λn+∥∇Φλ(r)∥2(\sum_{i=1}^{n}\lambda^{2}\Phi_{\lambda}(r_{i})_{i}^{2})^{0.5}\leq\lambda\sqrt{n}+\|\nabla\Phi_{\lambda}(r)\|_{2}

With these tools we can now analyze the impact of approximating ∇Φλ(μ/t−1)\nabla\Phi_{\lambda}(\mu/t-1) via ∇Φλ(μ~/t−1)\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1). The following lemma says that, if the potential ∥∇Φλ(μ/t−1)∥2\|\nabla\Phi_{\lambda}(\mu/t-1)\|_{2} is larger than (2.5/0.9)λ2εmpn(2.5/0.9)\lambda^{2}\varepsilon_{mp}\sqrt{n}, then the approximate gradient does point in the correct direction (i.e. the inner product with the real gradient is positive).

By normalizing the second vector we then obtain:

So in order to prove Lemma 5.14, we must bound the norm ∥∇Φλ(μ/t−1)−∇Φλ(μ~/t−1)∥2\|\nabla\Phi_{\lambda}(\mu/t-1)-\nabla\Phi_{\lambda}(\widetilde{\mu}/t-1)\|_{2}. Note that ∇Φλ(x)i=λsinh⁡(λxi)\nabla\Phi_{\lambda}(x)_{i}=\lambda\sinh(\lambda x_{i}) and sinh⁡(x)=(ex−e−x)/2\sinh(x)=(e^{x}-e^{-x})/2. So for now let us bound ∣sinh⁡(x+y)−sinh⁡(x)∣|\sinh(x+y)-\sinh(x)|:

Thus we can bound the difference as follows

For the last inequality we used the third statement of Lemma 5.13. Note that ∥(μ~−μ)/t∥∞≤∥εmpμ~/t∥∞≤∥εmp1−εmpμ/t∥∞≤1.1εmp1−εmp\|(\widetilde{\mu}-\mu)/t\|_{\infty}\leq\|\varepsilon_{mp}\widetilde{\mu}/t\|_{\infty}\leq\|\frac{\varepsilon_{mp}}{1-\varepsilon_{mp}}\mu/t\|_{\infty}\leq\frac{1.1\varepsilon_{mp}}{1-\varepsilon_{mp}}. As εmp≤1/λ\varepsilon_{mp}\leq 1/\lambda we can use e∣x∣≤1+2∣x∣e^{|x|}\leq 1+2|x| for ∣x∣<1.25|x|<1.25 to bound the extra factor (eλ∥μ~−μ∥∞/t−1)<2.5λεmp(e^{\lambda\|\widetilde{\mu}-\mu\|_{\infty}/t}-1)<2.5\lambda\varepsilon_{mp}.

For the last inequality we used 2.5λεmp<0.12.5\lambda\varepsilon_{mp}<0.1. ∎

We now have all tools available to bound Φλ(μnew⁡tnew⁡−1)\Phi_{\lambda}(\frac{\mu^{\operatorname{new}}}{t^{\operatorname{new}}}-1):

First let us write μnew⁡tnew⁡−1\frac{\mu^{\operatorname{new}}}{t^{\operatorname{new}}}-1 as μt−1+v\frac{\mu}{t}-1+v for some vector vv. Then

In order to use Lemma 5.13, we must show that ∥v∥2<1/λ\|v\|_{2}<1/\lambda. For that we bound the length of ∥μnew⁡−μ−δt−δ~Φtnew⁡∥\|\frac{\mu^{\operatorname{new}}-\mu-\delta_{t}-\widetilde{\delta}_{\Phi}}{t^{\operatorname{new}}}\| as follows:

In the first line we used δ~μ=δ~t+δ~Φ\widetilde{\delta}_{\mu}=\widetilde{\delta}_{t}+\widetilde{\delta}_{\Phi} and in the last line we used Lemmas 5.12 and 5.6. Thus ∥v∥2≤6.5ε2+ε/2<ε≤1/λ\|v\|_{2}\leq 6.5\varepsilon^{2}+\varepsilon/2<\varepsilon\leq 1/\lambda and we can apply Lemma 5.13:

In the third line we used Lemma 5.14 and Cauchy-Schwarz and the last line comes from the bound we proved above. Next we bound the second order term:

The first inequality comes form Cauchy-Schwarz, the second inequality from Lemma 5.13 and the last inequality uses ∥v∥4≤∥v∥2<ε\|v\|_{4}\leq\|v\|_{2}<\varepsilon. Plugging all these bound together we obtain:

Here the first inequality uses ∥v∥∇2Φλ(μ/t−1)2≤λε2(λn+∥∇Φλ(μ/t−1)∥2)\|v\|^{2}_{\nabla^{2}\Phi_{\lambda}(\mu/t-1)}\leq\lambda\varepsilon^{2}(\lambda\sqrt{n}+\|\nabla\Phi_{\lambda}(\mu/t-1)\|_{2}). The third uses ε≤1/(1500ln⁡n)\varepsilon\leq 1/(1500\ln n) and λ=40ln⁡n\lambda=40\ln n, so (6.5ε2+2λε2−0.9ε2)<(6.5/1500+2⋅40/1500−0.9/2)ε<−ε/3(6.5\varepsilon^{2}+2\lambda\varepsilon^{2}-\frac{0.9\varepsilon}{2})<(6.5/1500+2\cdot 40/1500-0.9/2)\varepsilon<-\varepsilon/3. The fourth inequality uses part 2 of Lemma 5.13.

On one hand, Lemma 5.15 implies that Φλ(μnew⁡/tnew⁡−1)<Φλ(μ/t−1)\Phi_{\lambda}(\mu^{\operatorname{new}}/t^{\operatorname{new}}-1)<\Phi_{\lambda}(\mu/t-1), if Φλ(μ/t−1)>0.5n\Phi_{\lambda}(\mu/t-1)>0.5n. On the other hand, if Φλ(μ/t−1)≤0.5n\Phi_{\lambda}(\mu/t-1)\leq 0.5n, then Φλ(μnew⁡/tnew⁡−1)Φλ(μ/t−1)+ε3λn0.5n≤Φλ(μ/t−1)+0.005n<2n\Phi_{\lambda}(\mu^{\operatorname{new}}/t^{\operatorname{new}}-1)\Phi_{\lambda}(\mu/t-1)+\frac{\varepsilon}{3}\frac{\lambda}{\sqrt{n}}0.5n\leq\Phi_{\lambda}(\mu/t-1)+0.005\sqrt{n}<2n. Thus if Φλ(μ/t−1)≤2n\Phi_{\lambda}(\mu/t-1)\leq 2n, then Φλ(μnew⁡/tnew⁡−1)≤2n\Phi_{\lambda}(\mu^{\operatorname{new}}/t^{\operatorname{new}}-1)\leq 2n.

We now have all intermediate results required to prove our main result of Theorem 1.1.

At the start of algorithm we transform the linear program as specified in Lemma A.3 to obtain a feasible solution (x,y,s)(x,y,s). For that transformation we choose γ=min⁡{δ,1/λ}\gamma=\min\{\delta,1/\lambda\}, so μ−1=γc/L\mu-1=\gamma c/L and ∥μ/t−1∥∞≤1/λ\|\mu/t-1\|_{\infty}\leq 1/\lambda for t=1t=1 at the start of the algorithm. This then implies Φλ(μ/t−1)≤ncosh⁡(λ/λ)≤n(1+e)/2≤2n\Phi_{\lambda}(\mu/t-1)\leq n\cosh(\lambda/\lambda)\leq n(1+e)/2\leq 2n which for n>1n>1 is less than 0.5n40.5n^{4}, and thus ∥μ/t−1∥∞≤0.1\|\mu/t-1\|_{\infty}\leq 0.1 throughout the entire algorithm by Lemmas 5.11 and 5.10. (This then also proves Proposition 5.5.)

The algorithm runs until t<δ2/(2n)t<\delta^{2}/(2n), then we have ∥μ∥1≤n∥μ∥∞≤1.1nt≤δ2≤γ2\|\mu\|_{1}\leq n\|\mu\|_{\infty}\leq 1.1nt\leq\delta^{2}\leq\gamma^{2}, so we obtain a solution via Lemma A.3.

Complexity of the algorithm

In each iteration, tt decreases by a factor of (1−ε3n)(1-\frac{\varepsilon}{3\sqrt{n}}), so it takes O(nε−1log⁡(δ/n))O(\sqrt{n}\varepsilon^{-1}\log(\delta/n)) iterations to reach t<δ2/(2n)t<\delta^{2}/(2n). We now bound the cost per iteration. The vectors u:=x/su:=x/s, μ:=xs\mu:=xs, and μ/t\mu/t of Algorithm 3 have small multiplicative change, bounded by 3ε3\varepsilon, 2.5ε2.5\varepsilon, and 3ε3\varepsilon respectively (Corollaries 5.9 and 5.8). Thus the amortized cost per iteration is O(ε/εmp(nω−1/2+n2−a/2+o(1))log⁡n+n1+a)O(\varepsilon/\varepsilon_{mp}(n^{\omega-1/2}+n^{2-a/2+o(1)})\log n+n^{1+a}) via Lemma 4.1. For εmp=ε=1/(1500ln⁡n)\varepsilon_{mp}=\varepsilon=1/(1500\ln n) and a=min⁡{α,2/3}a=\min\{\alpha,2/3\} this is O(nω−1/2log⁡n)O(n^{\omega-1/2}\log n) for current ω≈2.37\omega\approx 2.37, α≈0.31\alpha\approx 0.31 [Wil12, Gal14, GU18].

The total cost is O((nω+n2.5−α/2+o(1)+n2+1/6+o(1))log⁡2(n)log⁡(n/δ))O((n^{\omega}+n^{2.5-\alpha/2+o(1)}+n^{2+1/6+o(1)})\log^{2}(n)\log(n/\delta)) and for current ω\omega, α\alpha this is just O(nωlog⁡2(n)log⁡(n/δ))O(n^{\omega}\log^{2}(n)\log(n/\delta)). ∎

Open Problems

The O~(nω)\widetilde{O}(n^{\omega}) upper bound presented in this paper (but also the one from [CLS18]) seems optimal in the sense, that all known linear system solvers require up to O(nω)O(n^{\omega}) time for solving Ax=bAx=b. However, this claimed optimality has two caveats: (i) The algorithm is only optimal when assuming d=Ω(n)d=\Omega(n). What improvements are possible for d≪nd\ll n? (ii) The O~(nω)\widetilde{O}(n^{\omega}) upper bound only holds for the current bounds of ω\omega and the dual exponent α\alpha. No matter how much ω\omega and α\alpha improve, the presented linear program solver can never beat O~(n2+1/6)\widetilde{O}(n^{2+1/6}) time. So if in the future some upper bound ω<2+1/6\omega<2+1/6 is discovered, then these linear program solvers are no longer optimal. One open question is thus, if the algorithm can be improved to run in truly O~(nω)\widetilde{O}(n^{\omega}) for every bound on ω\omega, or alternatively to prove that ω>2+1/6\omega>2+1/6. Recent developments indicate that at least the current techniques for fast matrix multiplication do not allow for ω<2+1/6<2.168\omega<2+1/6<2.168 [CVZ19, Alm19, AW18a, AW18b]. Another recent work that came out after this paper also rules out α≥0.625\alpha\geq 0.625 [CGLZ20].

Another interesting question is, if the techniques of this paper can also be applied to other interior point algorithms. For example, can they be used to speed-up solvers for semidefinite programming?

Acknowledgement

I thank Danupon Nanongkai and Thatchaphol Saranurak for discussions. I also thank So-Hyeon Park (Sophie) for her questions and feedback regarding the algorithm. This project has received funding from the European Research Council (ERC) under the European Unions Horizon 2020 research and innovation programme under grant agreement No 715672. The algorithmic descriptions in this paper use latex-code of [CLS18], available under CC-BY-4.0 https://creativecommons.org/licenses/by/4.0/

Appendix A Appendix

Let (xk)k≥1(x^{k})_{k\geq 1} be a sequence of vectors, such that for every kk we have ∥(xk+1−xk)/Xk∥2≤C<12\|(x^{k+1}-x^{k})/X^{k}\|_{2}\leq C<\frac{1}{2}, where Xk=diag(xk)X^{k}=diag(x^{k}). Then there exist at most O((Ck/ε)2)O((Ck/\varepsilon)^{2}) many ii s.t. xik>(1+ε)x1x^{k}_{i}>(1+\varepsilon)x^{1} or xik<(1−ε)x1x^{k}_{i}<(1-\varepsilon)x^{1}.

For c≤0.5c\leq 0.5 we have ∣log⁡xikxi1∣≤2∣xikxi1−1∣|\log\frac{x^{k}_{i}}{x^{1}_{i}}|\leq 2|\frac{x^{k}_{i}}{x^{1}_{i}}-1| which allows us to bound the following norm:

Let TT be the number of indices ii with xik≥(1+ε)xi1x^{k}_{i}\geq(1+\varepsilon)x^{1}_{i} or xik≤(1−ε)xi1x^{k}_{i}\leq(1-\varepsilon)x^{1}_{i}. We want to find an upper bound of TT.

Without loss of generality we can also assume that xkx^{k} and x1x^{1} differ in at most T+1T+1 entries. The reason is as follows: Let’s say we are allowed to choose the sequence of x1,...,xkx^{1},...,x^{k} and we want to maximize TT. Assume there is more than one index ii with xik≥(1+ε)xi1x^{k}_{i}\geq(1+\varepsilon)x^{1}_{i} or xik≤(1−ε)xi1x^{k}_{i}\leq(1-\varepsilon)x^{1}_{i}. Let i≠ji\neq j be two such indices, then we could have tried to increase TT by not changing the jjth entry and changing iith entry a bit more.

This leads to T⋅log⁡(1+ε)≤∥log⁡xkx1∥1≤T+1∥log⁡xkx1∥2≤2TkCT\cdot\log(1+\varepsilon)\leq\|\log\frac{x^{k}}{x^{1}}\|_{1}\leq\sqrt{T+1}\|\log\frac{x^{k}}{x^{1}}\|_{2}\leq 2\sqrt{T}kC which can be reordered to T=O((kC/ε)2)T=O((kC/\varepsilon)^{2}).

The preprocessing requires O(n2dω−2)O(n^{2}d^{\omega-2}) time. After TT updates the total time of all updates of Algorithm 1, when ignoring the branch for k<nak<n^{a} (so we assume that branch of 36 has cost 00), is

That means either ui(t)u^{(t)}_{i} differs to ui(0)u^{(0)}_{i} by some (1±Ω(εmp/log⁡n))(1\pm\Omega(\varepsilon_{mp}/\log n))-factor, or u~i(t−1)\widetilde{u}^{(t-1)}_{i} differs to ui(0)u^{(0)}_{i} by some (1±Ω(εmp/log⁡n))(1\pm\Omega(\varepsilon_{mp}/\log n))-factor (which means there exists some t′<tt^{\prime}<t where ui(t′)u^{(t^{\prime})}_{i} differs to ui(0)u^{(0)}_{i} by some (1±Ω(εmp/log⁡n))(1\pm\Omega(\varepsilon_{mp}/\log n))-factor, which caused u~i\widetilde{u}_{i} to receive an update).

The last equality uses that ω(1,1,x)\omega(1,1,x) is a convex function, so the largest term of the sum must be the first or the last one. If we assume a≤αa\leq\alpha, then nω(1,a,1)−a/2=n2+o(1)−a/2n^{\omega(1,a,1)-a/2}=n^{2+o(1)-a/2}, which leads to the complexity as stated in Lemma A.2. ∎

Consider a linear program min⁡Ax=b,x≥0c⊤x\min_{Ax=b,x\geq 0}c^{\top}x with nn variables and dd constraints. Assume that

Diameter of the polytope: For any x≥0x\geq 0 with Ax=bAx=b, we have that ∥x∥1≤R\|x\|_{1}\leq R.

Lipschitz constant of the LP: ∥c∥∞≤L\|c\|_{\infty}\leq L.

For any 0<γ≤10<\gamma\leq 1, the modified linear program min⁡A‾x‾=b‾,x‾≥0c‾⊤x‾\min_{\overline{A}\overline{x}=\overline{b},\overline{x}\geq 0}\overline{c}^{\top}\overline{x} with

\overline{x}=\left[\begin{array}[]{c}1_{n}\\ 1\\ 1\end{array}\right], \overline{y}=\left[\begin{array}[]{c}0_{d}\\ 0\\ 1\end{array}\right] and \overline{s}=\left[\begin{array}[]{c}1_{n}+\frac{\gamma}{L}\cdot c\\ 1\\ 1\end{array}\right] are feasible primal dual vectors.

For any feasible primal dual vectors (x‾,y‾,s‾)(\overline{x},\overline{y},\overline{s}) with ∑i=1nx‾is‾i≤γ2\sum_{i=1}^{n}\overline{x}_{i}\overline{s}_{i}\leq\gamma^{2}, consider the vector x^=R⋅x‾1:n\widehat{x}=R\cdot\overline{x}_{1:n} (x‾1:n\overline{x}_{1:n} is the first nn coordinates of x‾\overline{x}) is an approximate solution to the original linear program in the following sense

Appendix B Projection Maintenance via Dynamic Linear System Solvers

The data-structure from [San04, vdBNS19] can maintain the solution to the following linear system: Let MM be a non-singular n×nn\times n matrix and let bb be an nn-dimensional vector. Then the data-structures can maintain M−1bM^{-1}b while supporting changing any entry of MM or bb in O(n1.529)O(n^{1.529}) time. This differs from the problem we must solve for the linear system (1), where we must maintain PvPv for P=X/SA⊤(AXSA)−1AX/SP=\sqrt{X/S}A^{\top}(A\frac{X}{S}A)^{-1}A\sqrt{X/S} and the updates change entries of XX and SS. However, even though the structure seems very different, one can maintain PvPv via the following reduction:

Let AA be a d×nd\times n matrix of rank dd and let UU be an n×nn\times n diagonal matrix with non-zero diagonal entries. Then

where ∗* represents some entries that do not care about.

We can thus maintain PvPv by using a data-structure that maintains M−1bM^{-1}b by changing the diagonal entries of the U−1U^{-1} and U−1\sqrt{U}^{-1} blocks.

The inverse of a two-blocks×two-blocks\text{two-blocks}\times\text{two-blocks} matrix is given by

If Q=U−1Q=U^{-1}, T=0T=0, R=A⊤R=A^{\top}, T=AT=A, then the matrix has full-rank (i.e. it is invertible) and the top-left block of the inverse is U+UA⊤(AUA)−1A⊤UU+UA^{\top}(AUA)^{-1}A^{\top}U. Further, consider the following block-matrix and its inverse:

When MM is the previous block-matrix and NN is the (n+d)×n(n+d)\times n block-matrix (U−1,0n×d)⊤(\sqrt{U}^{-1},0_{n\times d})^{\top}, then the matrix is exactly the one given in Lemma B.1 and the bottom-center block of the inverse is

Let CC be this (3n+d)×(3n+d)(3n+d)\times(3n+d) block-matrix specified in Lemma B.1 and let b=(0n,0d,v,1n)b=(0_{n},0_{d},v,1_{n}) be an (3n+d)(3n+d)-dimensional vector, then the bottom nn coordinates of C−1bC^{-1}b are exactly UA⊤(AUA)−1A⊤Uv\sqrt{U}A^{\top}(AUA)^{-1}A^{\top}\sqrt{U}v. ∎

One can use the data-structure of [San04] to maintain U~A⊤(AU~A)−1AU~f(v~)\sqrt{\widetilde{U}}A^{\top}(A\widetilde{U}A)^{-1}A\sqrt{\widetilde{U}}f(\widetilde{v}) similar to Lemma 4.1, where U~=diag⁡(u~)\widetilde{U}=\operatorname{diag}(\widetilde{u}) and v~\widetilde{v} are approximate variants of the input parameters uu and vv. Whenever some entry of U~\widetilde{U} or v~\widetilde{v} must be changed, because the approximation no longer holds, the algorithm of [San04] spends O(n1.529)O(n^{1.529}) time per changed entry of U~\widetilde{U} and v~\widetilde{v}. This is not yet fast enough for our purposes, because when using this data-structure inside our linear program solver, up to Ω(n)\Omega(n) entries might be changed throughout the entire runtime of the solver. Thus one would require Ω(n2.529)\Omega(n^{2.529}) time for the solver.

By applying the complexity analyzsis of [CLS18] to this data-structure, one can achieve the same amortized complexity as in Lemma 4.1. We now briefly outline how this is done.

Per iteration of the linear system solver, more than one entry of u~\widetilde{u} and v~\widetilde{v} may have to be changed. This can be interpreted as a so called batch-update, and the complexity for batch-updates was already analyzed in [vdBNS19], but again the focus was on worst-case complexity. Both data-structure from [San04] and [vdBNS19] had the property, that the data-structure would become slower the more updates they received. This issue was fixed by re-initializing the data-structure in fixed intervals. The core new idea of [CLS18] is a new strategy for this re-initialization: They wait until nan^{a} many entries of u~\widetilde{u} must be changed (see 32 of Algorithm 1), and then they change preemptively a few more entries (see 23).

Applying the same reset strategy to [San04, vdBNS19] then results in the same complexity as Lemma 4.1. Indeed the resulting data-structure is essentially identical to Lemma 4.1/Algorithm 1, because all these algorithms are just exploiting the Sherman-Morrison-Woodbury identity.

References