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 |
[edit] Definition
[edit] Standard form
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.
[edit] Inequality form
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.
[edit] Duality
The dual of a semidefinite program in inequality form,
minimize subject to
is given by
maximize subject to
[edit] Examples
[edit] Example 1
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.
[edit] Example 2
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
Thus .
The semidefinite program associated with this problem is
- minimize t
- subject to
[edit] Algorithms
[edit] Interior point methods
There are two types of algorithms for solving SDPs. One is the interior point methods, the other one is spacialzed general convex optimization algorithms.
[edit] Bundle method
[edit] Software
The following codes are available for SDP:
SDPA, CSDP, SDPT3, SeDuMi, DSDP, PENSDP, SDPLR, SBmeth
[edit] Applications
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.
[edit] Open problems
[edit] See also
[edit] References
- Lieven Vandenberghe, Stephen Boyd, "Semidefinite Programming", SIAM REVIEW, March 1996.
- Monique Laurent, Franz Rendl, "Semidefinite Programming and Integer Programming".
[edit] External links
- Software