Stanford AA222 I Engineering Design Optimization | Spring 2025 | Disciplined Convex Programming

In this lecture, Aric introduces disciplined convex programming (DCP), a framework that enables automatic verification and efficient solving of convex optimization problems by enforcing specific composition and sign rules to maintain convexity. He explains how DCP expressions are canonicalized into standard forms suitable for interior point methods, highlighting the practical benefits of reliable solution methods and systematic problem formulation within this framework.

In this lecture, Aric, a former PhD student now working in optimization for subterranean problems, introduces the concept of disciplined convex programming (DCP), a subclass of convex optimization problems that can be automatically verified and efficiently solved. He begins by reviewing convex programs, highlighting their importance due to properties like global optimality of local minima and strong duality, which enable reliable and efficient solutions for many practical problems in finance, control, and resource development. DCP extends this by providing a framework where convexity can be systematically checked and problems can be expressed in a canonical form suitable for solvers.

Aric explains the foundational concepts of convex sets and convex functions, illustrating how convexity is preserved under certain operations and compositions. He emphasizes that convex functions and sets have specific geometric properties, such as any line segment between points in a convex set lying entirely within the set, and function values lying below the line segment connecting two points on the function. Examples of convex and concave functions are given, along with common functions that fit these categories, setting the stage for understanding how to verify convexity in optimization problems.

The core of the lecture focuses on the two main DCP rules: sign rules for product-free expressions and composition rules. The sign rules restrict expressions to be free of products between functions to maintain convexity, while the composition rules govern how functions can be composed while preserving convexity or concavity. Through examples, Aric demonstrates how these rules can be applied to verify the convexity of complex expressions, noting that while DCP is a powerful tool, it is a sufficient but not necessary condition for convexity, meaning some convex functions may not be representable within the DCP framework.

Aric then delves into the mechanics behind DCP solvers, explaining how expressions are represented as trees of atomic functions with known curvature and monotonicity properties. Verification involves recursively checking these trees against DCP rules. He introduces the process of canonicalization, where complex expressions are transformed into a standard form with affine objectives and convex constraints by introducing new variables and constraints. This transformation enables the use of efficient solvers, often leveraging graph expansion techniques to convert nonlinear constraints into linear or simpler convex forms.

Finally, the lecture touches on solution methods for canonicalized problems, particularly interior point methods. These methods convert inequality constraints into barrier functions within the objective and use Newton’s method to efficiently find solutions by solving linear systems derived from second-order approximations. The sparsity and partitioned structure of canonical forms allow these computations to be performed efficiently, often scaling better than cubic time. Aric concludes by summarizing the benefits of DCP: automatic verification, canonicalization, and efficient solving, encouraging its use for problems that fit within its framework.