Quadratic Programs

The following routines attempt to solve primal-dual pairs of (convex) quadratic programs in either “direct” conic form,

\[\begin{split}\min_x & \{\; \frac{1}{2} x^T Q x + c^T x \; | \; A x = b \;\wedge\; x \ge 0 \;\}, \\ \max_{y,z} & \{\; -\frac{1}{2} r^T Q^\dagger r - b^T y \; | \; r = A^T y - z + c \in \text{range}(Q) \;\wedge\; z \ge 0 \;\},\end{split}\]

or “affine” conic form

\[\begin{split}\min_{x,s} & \{\; \frac{1}{2} x^T Q x + c^T x \; | \; A x = b \;\wedge\; G x + s = h,\; s \ge 0 \;\}, \\ \max_{y,z} & \{\; -\frac{1}{2} r^T Q^\dagger r - b^T y - h^T z \; | \; r = A^T y + G^T z + c \in \text{range}(Q) \;\wedge\; z \ge 0 \;\}.\end{split}\]

By default a Mehrotra Predictor-Corrector primal-dual Interior Point Method is used.

Unpolished alternating direction methods for solving the box-constrained QP

\[\min_x \{\; \frac{1}{2} x^T Q x + c^T x \; | \; l_b \le x \le u_b \;\}\]

are also available.