Standard Forms of SDP

SDP > Conic problems | LMIs | Standard Forms | Applications

A semidefinite program (SDP) is a problem of minimizing a linear function over an LMI constraint.

  • Standard inequality form

  • Standard conic form

  • CVX syntax

Standard Inequality Form

In standard inequality form, an SDP is written as

 min_x : c^Tx ~:~ F(x) := F_0 + x_1 F_1 + ldots + x_m F_m succeq 0 ,

where F_0,ldots,F_m are given symmetric matrix, c in mathbf{R}^n, and x in mathbf{R}^n is a vector variable.

The above problem generalizes the LP in inequality form:

 min : c^Tx ~:~ a_i^Tx le b_i , ;; i= 1,ldots,m.
alt text 

An SDP in two variables: min_x : c^Tx subjec to: F(x) := x_1 F_1 + x_2 F_2 preceq I, where c=(), and F_1,F_2 are the two 5 times 5 symmetric matrices

 tiny begin{array}{c} F_1 = left(begin{array}{ccccc}-1.3 &    -4.2 &    -0.1 &     2.1 &    -1  -4.2 &    -0.1 &    -1.7 &    -4.5 &     0.9  -0.1 &    -1.7 &     2.3 &    -4.4 &    -0.4   2.1 &    -4.5 &    -4.4 &     3.3 &    -1.7  -1. & 0    0.9 &    -0.4 &    -1.7 &     4.7  end{array}right),  F_2 = left(begin{array}{ccccc}  1.6 &     3.9 &     1.6 &    -5.3 &    -4.   3.9 &    -1.8 &    -4.7 &     1. & 0    2.9    1.6 &    -4.7 &    -1.3 &     1.6 &    -2.6  -5.3 &     1. & 0    1.6 &     2.7 &     2.6  -4. & 0    2.9 &    -2.6 &     2.6 &    -3.4  end{array}right). end{array}

Standard Conic Form

Recall that we can define the scalar product between two matrices X,Y in mathbf{R}^{m times n} as

 langle X, Y rangle = mbox{bf Tr} (X^TY).

If X,Y are both square, and symmetric, then the scalar product is simply the trace of the product.

In standard conic form, an SDP is written as

 min_X : langle C, X rangle  ~:~ X succeq 0, ;; langle A_i, X rangle = b_i , ;; i=1,ldots,m,

where A_1,ldots,A_m and C are given symmetric n times n matrices, and X in mathbf{S}^n is the matrix variable.

The above generalizes the standard conic form for LP, which can be written as

 min_x : c^Tx ~:~ Ax = b, ;; x ge 0.

Just as in LP, the standard inequality and standard conic forms are equivalent, in the sense that we can always convert one into the other, possibly at the expense of introducing new variables and constraints.

CVX syntax

In CVX, a constraint X succeq 0, when X is a symmetric n times n matrix variable, is encoded with the semidefinite assignment. It is important to let CVX know X is symmetric, when declaring it as a variable.

CVX syntax
cvx_begin
	variables X(n,n) symmetric;
	minimize( trace(C*X) )
	subject to
		for i = 1:m,
			trace(A{i}*X == b(i);
		end
		X == semidefinite(n);
cvx_end