Semidefinite programming
From Wikipedia, the free encyclopedia
Semidefinite programming (SDP) is a subfield of convex optimization concerned with the optimization of a linear objective function over the intersection of the cone of positive semidefinite matrices with an affine space.
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, SDP's 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 can be expressed as SDPs, and via hierarchies of SDPs the solutions of polynomial optimization problems can be approximated. Finally, semidefinite programming can aid in the design of quantum computing circuits, which makes it interesting as a future subject.
Contents |
The standard form of a semidefinite programming problem consists of the following three parts:
- A linear function
to be minimized over the matrix variable X - Equality constraints of the form
, where each Ai is a matrix and
is a scalar. - Semi-definiteness of the matrix variable, i.e.

A semidefinite program is thus written as
minimize
subject to
where
are the problem parameters.
SDPs can also be written in inequality form, in which case the optimization variable x is in
. The problem has the form
minimize
subject to
where
and
. here the inequality is a linear matrix inequality.
The dual of a semidefinite program in inequality form,
minimize
subject to
is given by
maximize
subject to
Consider three random variables
,
, and
. By definition, their correlation coefficients
are valid if and only if
Suppose that we know from some prior knowledge (empirical results of an experiment, for example) that
and
. The problem of determining the smallest and largest values that
can take is given by:
- minimize/maximize

- subject to




we set
to obtain the answer. This can be formulated by an SDP. We handle the inequality constraints by augmenting the variable matrix and introducing slack variables, for example

Solving this SDP gives the minimum and maximum values of
as − 0.978 and 0.872 respectively.
Consider the problem
- minimize

- subject to

where we assume that dTx > 0 whenever
.
Introducing an auxiliary variable t the problem can be reformulated:
- minimize t
- subject to

In this formulation, the objective is a linear function of the variables x,t.
The first restriction can be written as
where the matrix
is the square matrix with values in the diagonal equal to the elements of the vector Ax + b.
The second restriction can be written as
or equivalently
- det
![\underbrace{\left[\begin{array}{cc}t&c^Tx\\c^Tx&d^Tx\end{array}\right]}_{D}\geq 0](../../../math/4/7/1/4716c3a1c00adcf62801a21e76330fdb.png)
Thus
.
The semidefinite program associated with this problem is
- minimize t
- subject to
![\left[\begin{array}{ccc}\textbf{diag}(Ax+b)&0&0\\0&t&c^Tx\\0&c^Tx&d^Tx\end{array}\right]\geq 0](../../../math/3/2/1/321136484d98bcc9f559e88b6b5130c5.png)
There are two types of algorithms for solving SDPs. One is the interior point methods, the other one is spacialzed general convex optimization algorithms.
The following codes are available for SDP:
SDPA, CSDP, SDPT3, SeDuMi, DSDP, PENSDP, SDPLR, SBmeth
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.
- Lieven Vandenberghe, Stephen Boyd, "Semidefinite Programming", SIAM REVIEW, March 1996.
- Monique Laurent, Franz Rendl, "Semidefinite Programming and Integer Programming".
- Software






