English

A Rewriting System for Convex Optimization Problems

Optimization and Control 2019-02-28 v2 Mathematical Software

Abstract

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.

Keywords

Cite

@article{arxiv.1709.04494,
  title  = {A Rewriting System for Convex Optimization Problems},
  author = {Akshay Agrawal and Robin Verschueren and Steven Diamond and Stephen Boyd},
  journal= {arXiv preprint arXiv:1709.04494},
  year   = {2019}
}

Comments

Updated Jan. 22, 2019 to fix typos. Page 1: "is the one composed of" changed to "contains"; page 2: added a missing parenthesis to the code example, changed `max` to `maximum`