Disciplined Convex Programming

Specify objective as:

  • minimize scalar convex expression
  • maximize scalar concave expression

and constraints:

  • convex expr <= concave expr
  • concave expr >= convex expr
  • affine expr = affine expr

curvatures of all expressions are DCP certified. We do this because then you can just subtract the expressions and you’ll have a good time.

you certify DCP based on general composition rule that preserve convexity

DCP is sufficient, not necessary

Consider:

\begin{equation} f\qty(x) = \sqrt{1+x^{2}} \end{equation}

f1 = cp.sqrt(1 + cp.square(x)) is not DCP (because we put convex into concave)

f1 = cp.norm2([1,x]) is DCP.

These are identical.