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, 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, 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 has been used in the optimization of complex systems.
Contents |
Motivation and definition
Initial motivation
A linear programming problem is one in which we wish to maximize or minimize a linear objective function of real variables over a polyhedron. In semidefinite programming, we instead use real-valued vectors and are allowed to take the dot product of vectors. Specifically, a general semidefinite programming problem can be defined as any mathematical programming problem of the formEquivalent formulations
An matrix is said to be positive semidefinite if it is the gramian matrix of some vectors (ie. if there exist vectors such that for all ). If this is the case, we denote this as . Note that there are several other equivalent definitions of being positive semidefinite.Denote by the space of all real symmetric matrices. The space is equipped with the inner product (where denotes the trace)
We can rewrite the mathematical program given in the previous section equivalently as
Note that if we add slack variables appropriately, this SDP can be converted to one of the form
Duality theory
Definitions
Analogously to linear programming, given a general SDP of the formWeak duality
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 becauseStrong duality
Under a condition known as Slater's condition, the value of the primal and dual SDPs are equal. This is known as strong duality. Unlike for linear programs, however, not every SDP satisfies strong duality; in general, the value of the dual SDP may lie strictly below the value of the primal.(i) Suppose the primal problem (P-SDP) is bounded below and strictly feasible (i.e., there exists such that , ). Then there is an optimal solution to (D-SDP) and
Examples
Example 1
Consider three random variables , , and . By definition, their correlation coefficients are valid if and only if- minimize/maximize
- subject to
Solving this SDP gives the minimum and maximum values of as and respectively.
Example 2
Consider the problem- minimize
- subject to
Introducing an auxiliary variable the problem can be reformulated:
- minimize
- subject to
The first restriction can be written as
The second restriction can be written as
- det
The semidefinite program associated with this problem is
- minimize
- subject to
Example 3 (Goemans-Williamson MAX CUT approximation algorithm)
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 Goemans and 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 such that each .
- Relax the integer quadratic program into an SDP.
- Solve the SDP (to within an arbitrarily small additive error ).
- Round the SDP solution to obtain an approximate solution to the original integer quadratic program.
- such that , where the maximization is over vectors instead of integer scalars.
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.[1]
Algorithms
There are several types of algorithms for solving SDPs. These algorithms output the value of the SDP up to an additive error in time that is polynomial in the program description size and .Interior point methods
Most codes are based on interior point methods (CSDP, SeDuMi, SDPT3, DSDP, SDPA). Robust and efficient for general linear SDP problems. Restricted by the fact that the algorithms are second-order methods and need to store and factorize a large (and often dense) matrix.Bundle method
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.Other
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 (SPDLR).Software
The following codes are available for SDP:SDPA, CSDP, SDPT3, SeDuMi, DSDP, PENSDP, SDPLR, ConicBundle
SeDuMi runs on MATLAB and uses the Self-Dual method for solving general convex optimization problems.
No comments:
Post a Comment