Second-Order Cone & Semidefinite Programs

Swap the componentwise ordering of a linear program for an ice-cream cone, or for the positive semidefinite matrices.

The idea

Second-order cone programs and semidefinite programs generalize linear programming by changing what an inequality means. A linear program's constraint $Ax \preceq b$ is checked coordinate by coordinate; replace that componentwise comparison by membership in another convex cone and a much larger family of problems appears, still convex and still solvable by the same machinery. Two cones cover almost every case met in practice.

The first is the second-order cone $K = \{(y,t) : \|y\|_{2} \le t\}$.

Definition (Second-order cone program).

A second-order cone program (SOCP) minimizes a linear objective subject to constraints $\|A_{i}x + b_{i}\|_{2} \le c_{i}^{T}x + d_{i}$, each stating that an affine function of $x$ lies in $K$.

The second is the cone of positive semidefinite matrices.

Definition (Semidefinite program).

A semidefinite program (SDP) minimizes a linear objective subject to a linear matrix inequality $x_{1}F_{1} + \cdots + x_{n}F_{n} + G \preceq 0$, where the $F_{i}$ and $G$ are fixed symmetric matrices.

The left-hand side of the matrix inequality is affine in $x$, and the single matrix inequality encodes infinitely many scalar ones, since $M \succeq 0$ says $z^{T}Mz \ge 0$ for every vector $z$.

Proposition.

The classes nest, each a special case of the next: $\text{LP} \subseteq \text{QP} \subseteq \text{SOCP} \subseteq \text{SDP}.$

Recognizing that a problem can be written in one of these forms is what makes it solvable.

Ways to work on it

Not sure where to start? Take the ten-question placement test.