Semidefinite programming (SDP) is a subfield of mathematical programming concerned with the optimization of a linear objective function (a user-specified function that the user wants to minimize or maximize)over the intersection of the cone of positive semidefinite matrices with an affine space, i.e., a spectrahedron.
Semidefinite programming is a relatively new field of optimization which is of growing interest for several reasons. Many practical problems in operations research and combinatorial optimization can be modeled or approximated as semidefinite programming problems. In automatic control theory, SDPs are used in the context of linear matrix inequalities. SDPs are in fact a special case of cone programming and can be efficiently solved by interior point methods.All linear programs and (convex) quadratic programs can be expressed as SDPs, and via hierarchies of SDPs the solutions of polynomial optimization problems can be approximated. Semidefinite programming has been used in the optimization of complex systems. In recent years, some quantum query complexity problems have been formulated in terms of semidefinite programs.
A linear programming problem is one in which we wish to maximize or minimize a linear objective function of real variables over a polytope. In semidefinite programming, we instead use real-valued vectors and are allowed to take the dot product of vectors; nonnegativity constraints on real variables in LP (linear programming) are replaced by semidefiniteness constraints on matrix variables in SDP (semidefinite programming). Specifically, a general semidefinite programming problem can be defined as any mathematical programming problem of the form
\begin{array}{rl} {\displaystyle
min | |
x1,\ldots,xn\inRn |
ci,j,ai,j,k
bk
xi ⋅ xj
xi
xj
An
n x n
M
x1,\ldots,xn
mi,j=xi ⋅ xj
i,j
M\succeq0
Denote by
Sn
n x n
{\rmtrace}
We can rewrite the mathematical program given in the previous section equivalently as\langleA,B\rangle:={\rmtrace}(ATB)=
n \sum i=1,j=1 AijBij.
\begin{array}{rl} {\displaystylemin | |
X\inSn |
where entry
i,j
C
ci,j+cj,i | |
2 |
Ak
n x n
i,j
ai,j,k+aj,i,k | |
2 |
C
Ak
Note that if we add slack variables appropriately, this SDP can be converted to an equational form:
\begin{array}{rl} {\displaystylemin | |
X\inSn |
For convenience, an SDP may be specified in a slightly different, but equivalent form. For example, linear expressions involving nonnegative scalar variables may be added to the program specification. This remains an SDP because each variable can be incorporated into the matrix
X
Xii
i
Xii\geq0
Xij=0
j ≠ i
X
\{vi\}
i
j
X
Xij=(vi,vj)
vi
vj
\{vi\}
O(n3)
The space of semidefinite matrices is a convex cone. Therefore, SDP is a special case of conic optimization, which is a special case of convex optimization.
When the matrix C is diagonal, the inner products <C,X> is equivalent to a vector product of the diagonal of C and the diagonal of X. Analogously, when the matrices Ak are diagonal, the corresponding inner products are equivalent to vector products. In these vector products, only the diagonal elements of X are used, so we can add constraints equating the non-diagonal elements of X to 0. The condition
X\succeq0
Analogously to linear programming, given a general SDP of the form
\begin{array}{rl} {\displaystylemin | |
X\inSn |
(the primal problem or P-SDP), we define the dual semidefinite program (D-SDP) as
\begin{array}{rl} {\displaystylemax | |
y\inRm |
where for any two matrices
P
Q
P\succeqQ
P-Q\succeq0
The weak duality theorem states that the value of the primal SDP is at least the value of the dual SDP. Therefore, any feasible solution to the dual SDP lower-bounds the primal SDP value, and conversely, any feasible solution to the primal SDP upper-bounds the dual SDP value. This is because
\langleC,X\rangle-bTy =\langleC,X\rangle-
m | |
\sum | |
i=1 |
yibi =\langleC,X\rangle-
m | |
\sum | |
i=1 |
yi\langleAi,X\rangle =\langleC-
m | |
\sum | |
i=1 |
yiAi,X\rangle \geq0,
When the value of the primal and dual SDPs are equal, the SDP is said to satisfy the strong duality property. Unlike linear programs, where every dual linear program has optimal objective equal to the primal objective, not every SDP satisfies strong duality; in general, the value of the dual SDP may lie strictly below the value of the primal, and the P-SDP and D-SDP satisfy the following properties:
(i) Suppose the primal problem (P-SDP) is bounded below and strictlyfeasible (i.e., there exists
n, | |
X | |
0\inS |
X0\succ0
\langle Ai,X0\rangle=bi
i=1,\ldots,m
y*
\langleC,X*\rangle=bTy*.
(ii) Suppose the dual problem (D-SDP) is bounded above and strictlyfeasible (i.e.,
m | |
\sum | |
i=1 |
(y0)iAi \precC
m | |
y | |
0\in\R |
X*
A sufficient condition for strong duality to hold for a SDP problem (and in general, for any convex optimization problem) is the Slater's condition. It is also possible to attain strong duality for SDPs without additional regularity conditions by using an extended dual problem proposed by Ramana.[1] [2]
Consider three random variables
A
B
C
\rhoAB, \rhoAC,\rhoBC
\begin{pmatrix} 1&\rhoAB&\rhoAC\\ \rhoAB&1&\rhoBC\\ \rhoAC&\rhoBC&1 \end{pmatrix}\succeq0.
This matrix is called the correlation matrix. Suppose that we know from some prior knowledge (empirical results of an experiment, for example) that
-0.2\leq\rhoAB\leq-0.1
0.4\leq\rhoBC\leq0.5
\rhoAC
\begin{array}{rl} {\displaystylemin/max}&x13\\ subjectto&-0.2\leqx12\leq-0.1\\ &0.4\leqx23\leq0.5\\ &\begin{pmatrix} 1&x12&x13\\ x12&1&x23\\ x13&x23&1 \end{pmatrix}\succeq0 \end{array}
We set
\rhoAB=x12, \rhoAC=x13, \rhoBC=x23
tr\left(\left(\begin{array}{cccccc} 0&1&0&0&0&0\\ 0&0&0&0&0&0\\ 0&0&0&0&0&0\\ 0&0&0&1&0&0\\ 0&0&0&0&0&0\\ 0&0&0&0&0&0\end{array}\right) ⋅ \left(\begin{array}{cccccc} 1&x12&x13&0&0&0\\ x12&1&x23&0&0&0\\ x13&x23&1&0&0&0\\ 0&0&0&s1&0&0\\ 0&0&0&0&s2&0\\ 0&0&0&0&0&s3\end{array}\right)\right)=x12+s1=-0.1
Solving this SDP gives the minimum and maximum values of
\rhoAC=x13
-0.978
0.872
Consider the problem
minimize
(cTx)2 | |
dTx |
subject to
Ax+b\geq0
where we assume that
dTx>0
Ax+b\geq0
Introducing an auxiliary variable
t
minimize
t
subject to
Ax+b\geq0,
(cTx)2 | |
dTx |
\leqt
In this formulation, the objective is a linear function of the variables
x,t
The first restriction can be written as
bf{diag}(Ax+b)\geq0
where the matrix
bf{diag}(Ax+b)
Ax+b
The second restriction can be written as
tdTx-(cTx)2\geq0
Defining
D
D=\left[\begin{array}{cc}t&cTx\\cTx&dTx\end{array}\right]
We can use the theory of Schur Complements to see that
D\succeq0
The semidefinite program associated with this problem is
minimize
t
subject to
\left[\begin{array}{ccc}bf{diag}(Ax+b)&0&0\\0&t&cTx\\0&cTx&dTx\end{array}\right]\succeq0
Semidefinite programs are important tools for developing approximation algorithms for NP-hard maximization problems. The first approximation algorithm based on an SDP is due to Michel Goemans and David P. Williamson (JACM, 1995). They studied the max cut problem: Given a graph G = (V, E), output a partition of the vertices V so as to maximize the number of edges crossing from one side to the other. This problem can be expressed as an integer quadratic program:
Maximize
\sum(i,j)
1-vivj | |
2 |
,
vi\in\{1,-1\}
Unless P = NP, we cannot solve this maximization problem efficiently. However, Goemans and Williamson observed a general three-step procedure for attacking this sort of problem:
\epsilon
For max cut, the most natural relaxation is
max\sum(i,j)
1-\langlevi,vj\rangle | |
2 |
,
\lVert
2 | |
v | |
i\rVert |
=1
\{vi\}
This is an SDP because the objective function and constraints are all linear functions of vector inner products. Solving the SDP gives a set of unit vectors in
Rn |
\cos-1\langlevi,vj\rangle
\pi
(1-\langlevi,vj\rangle)/{2}
Since the original paper of Goemans and Williamson, SDPs have been applied to develop numerous approximation algorithms. Recently, Prasad Raghavendra has developed a general framework for constraint satisfaction problems based on the unique games conjecture.[3]
Semidefinite programming has been applied to find approximate solutions to combinatorial optimization problems, such as the solution of the max cut problem with an approximation ratio of 0.87856. SDPs are also used in geometry to determine tensegrity graphs, and arise in control theory as LMIs, and in inverse elliptic coefficient problems as convex, non-linear, semidefiniteness constraints. It is also widely used in physics to constrain conformal field theories with the conformal bootstrap.[4]
The semidefinite feasibility problem (SDF) is the following decision problem: given an SDP, decide whether it has at least one feasible solution. The exact run-time complexity of this problem is unknown (as of 1997). However, Ramana proved the following:
There are several types of algorithms for solving SDPs. These algorithms output the value of the SDP up to an additive error
\epsilon
log(1/\epsilon)
The ellipsoid method is a general method for convex programming, and can be used in particular to solve SDPs. In the context of SDPs, the ellipsoid method provides the following guarantee.Consider an SDP in the following equational form:
Let L be the affine subspace of matrices in Sn satisfying the m equational constraints; so the SDP can be written as:} & \langle C, X \rangle \\\text & \langle A_k, X \rangle = b_k, \quad k = 1,\ldots,m \\& X \succeq 0.\end
\begin{array}{rl} {\displaystylemax X\inSn
maxX\in\langleC,X\ranglesubjecttoX\succeq0
Y\succeq0
vdeep:=\sup\{\langleC,X\rangle:Xis\epsilon-deep\}
X\succeq0
\langleC,X*\rangle\geqvdeep-\epsilon
The run-time is polynomial in the binary encodings of the inputs and in log(R/ε), in the Turing machine model.
Note that, in general, R may be doubly-exponential in n. In that case, the run-time guarantee of the ellipsoid method is exponential in n. But in most applications, R is not so huge. In these cases, the ellipsoid method is the only known method that guarantees polynomial runtime in the Turing machine model. But in practice, its performance is not so good.
Most codes are based on interior point methods (CSDP, MOSEK, SeDuMi, SDPT3, DSDP, SDPA). These are robust and efficient for general linear SDP problems, but restricted by the fact that the algorithms are second-order methods and need to store and factorize a large (and often dense) matrix. Theoretically, the state-of-the-art high-accuracy SDP algorithms[5] [6] are based on this approach.
First-order methods for conic optimization avoid computing, storing and factorizing a large Hessian matrix and scale to much larger problems than interior point methods, at some cost in accuracy. A first-order method is implemented in the Splitting Cone Solver (SCS).[7] Another first-order method is the alternating direction method of multipliers (ADMM).[8] This method requires in every step projection on the cone of semidefinite matrices.
The code ConicBundle formulates the SDP problem as a nonsmooth optimization problem and solves it by the Spectral Bundle method of nonsmooth optimization. This approach is very efficient for a special class of linear SDP problems.
Algorithms based on Augmented Lagrangian method (PENSDP) are similar in behavior to the interior point methods and can be specialized to some very large scale problems. Other algorithms use low-rank information and reformulation of the SDP as a nonlinear programming problem (SDPLR, ManiSDP).
Algorithms that solve SDPs approximately have been proposed as well. The main goal of such methods is to achieve lower complexity in applications where approximate solutions are sufficient and complexity must be minimal. A prominent method that has been used for data detection in multiple-input multiple-output (MIMO) wireless systems is Triangular Approximate SEmidefinite Relaxation (TASER),[9] which operates on the Cholesky decomposition factors of the semidefinite matrix instead of the semidefinite matrix. This method calculates approximate solutions for a max-cut-like problem that are often comparable to solutions from exact solvers but in only 10-20 algorithm iterations. Hazan[10] has developed an approximate algorithm for solving SDPs with the additional constraint that the trace of the variables matrix must be 1.
Facial reduction algorithms are algorithms used to preprocess SDPs problems by inspecting the constraints of the problem. These can be used to