A Rewriting System for Convex Optimization Problems

A. Agrawal, R. Verschueren, S. Diamond, and S. Boyd

To appear, Journal of Control and Decision, January 2018. Special issue for selected lectures from the 2017 Chinese Control and Decision Conference. First posted September 2017.

We describe a modular rewriting system for translating optimization problems written in a domain-specific language to forms compatible with low-level solver interfaces. Translation is facilitated by reductions, which accept a category of problems and transform instances of that category to equivalent instances of another category. Our system proceeds in two key phases: analysis, in which we attempt to find a suitable solver for a supplied problem, and canonicalization, in which we rewrite the problem in the selected solver’s standard form. We implement the described system in version 1.0 of CVXPY, a domain-specific language for mathematical and especially convex optimization. By treating reductions as first-class objects, our method makes it easy to match problems to solvers well-suited for them and to support solvers with a wide variety of standard forms.