Conic models
Conic form
Any convex optimization problem may be represented as a conic problem that minimizes a linear function over the intersection of an affine subspace with a Cartesian product of primitive proper cones (i.e. irreducible, closed, convex, pointed, and full-dimensional conic sets). An advantage of using conic form is that a conic problem, if well-posed, has a very simple and easily checkable certificate of optimality, primal infeasibility, or dual infeasibility.
Hypatia's primal conic form over variable $x \in \mathbb{R}^n$ is:
\[\begin{aligned} \min \quad c'x &: \\ b - Ax &= 0 \\ h - Gx &\in \mathcal{K} \end{aligned}\]
where $\mathcal{K}$ is a proper cone.
The corresponding conic dual form over variables $y \in \mathbb{R}^p$ and $z \in \mathbb{R}^q$ is:
\[\begin{aligned} \max \quad -b'y - h'z &: \\ c + A'y + G'z &= 0 \\ z &\in \mathcal{K}^* \end{aligned}\]
where $\mathcal{K}^*$ is the dual cone of $\mathcal{K}$.
Model interface
Hypatia's Models
module specifies a Model
type corresponding to the primal conic form above:
- $\mathcal{K}$ is a vector of Hypatia cones,
- $c \in \mathbb{R}^n$, $b \in \mathbb{R}^p$, $h \in \mathbb{R}^q$ are vectors,
- $A \in \mathbb{R}^{p \times n}$ and $G \in \mathbb{R}^{q \times n}$ are linear operators.
An objective offset can be specified using the keyword arg obj_offset
(the default is 0). See Models module.
Polynomial utilities
The PolyUtils
module provides tools for setting up polynomial interpolations for sum-of-squares models; see PolyUtils module.