# A Rewriting System for Convex Optimization Problems

@article{Agrawal2017ARS, title={A Rewriting System for Convex Optimization Problems}, author={Akshay Agrawal and Robin Verschueren and Steven Diamond and Stephen P. Boyd}, journal={ArXiv}, year={2017}, volume={abs/1709.04494} }

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… Expand

#### 204 Citations

Minimizing Oracle-Structured Composite Functions

- Mathematics
- 2021

We consider the problem of minimizing a composite convex function with two different access methods: an oracle, for which we can evaluate the value and gradient, and a structured function, which we… Expand

GENO - GENeric Optimization for Classical Machine Learning

- Computer Science, Mathematics
- NeurIPS
- 2019

The optimization framework GENO (GENeric Optimization) is designed and implemented that combines a modeling language with a generic solver that is as efficient as well-engineered specialized solvers and orders of magnitude more efficient than classical modeling language plus solver approaches. Expand

A General Modeling Framework for Robust Optimization

- Computer Science
- ACIIDS
- 2021

This paper introduces pyropt, a Python programming language package for robust optimization. The package provides a convenient way for expressing robust optimization problems using simple and concise… Expand

OSQP: An Operator Splitting Solver for Quadratic Programs

- Computer Science, Mathematics
- 2018 UKACC 12th International Conference on Control (CONTROL)
- 2018

This technique is the first operator splitting method for quadratic programs able to reliably detect primal and dual infeasible problems from the algorithm iterates, making it particularly efficient when solving parametrized problems arising in finance, control, and machine learning. Expand

OSQP: an operator splitting solver for quadratic programs

- Computer Science, Mathematics
- Math. Program. Comput.
- 2020

We present a general-purpose solver for convex quadratic programs based on the alternating direction method of multipliers, employing a novel operator splitting technique that requires the solution… Expand

Differentiating Through a Conic Program

- Mathematics
- 2019

We consider the problem of efficiently computing the derivative of the solution map of a convex cone program, when it exists. We do this by implicitly differentiating the residual map for its… Expand

Differentiable Convex Optimization Layers

- Computer Science, Mathematics
- NeurIPS
- 2019

This paper introduces disciplined parametrized programming, a subset of disciplined convex programming, and demonstrates how to efficiently differentiate through each of these components, allowing for end-to-end analytical differentiation through the entire convex program. Expand

Differentiating Through a Cone Program

- Mathematics
- 2019

We consider the problem of efficiently computing the derivative of the solution map of a convex cone program, when it exists. We do this by implicitly differentiating the residual map for its… Expand

A Steepest Descent Method for Set Optimization Problems with Set-Valued Mappings of Finite Cardinality

- Mathematics
- 2021

In this paper, we study a first order solution method for a particular class of set optimization problems where the solution concept is given by the set approach. We consider the case in which the… Expand

Disciplined geometric programming

- Computer Science, Mathematics
- Optim. Lett.
- 2019

We introduce log-log convex programs, which are optimization problems with positive variables that become convex when the variables, objective functions, and constraint functions are replaced with… Expand

#### References

SHOWING 1-10 OF 83 REFERENCES

Convex Optimization in Julia

- Computer Science, Mathematics
- 2014 First Workshop for High Performance Technical Computing in Dynamic Languages
- 2014

Convex translates problems from a user-friendly functional language into an abstract syntax tree describing the problem, which allows Convex to infer whether the problem complies with the rules of disciplined convex programming (DCP), and to pass the problem to a suitable solver. Expand

CVXPY: A Python-Embedded Modeling Language for Convex Optimization

- Computer Science, Mathematics
- J. Mach. Learn. Res.
- 2016

CVXPY allows the user to express convex optimization problems in a natural syntax that follows the math, rather than in the restrictive standard form required by solvers. Expand

JuMP: A Modeling Language for Mathematical Optimization

- Mathematics, Computer Science
- SIAM Rev.
- 2017

JuMP is an open-source modeling language that allows users to express a wide range of optimization problems (linear, mixed-integer, quadratic, conic-quadratic, semidefinite, and nonlinear) in a… Expand

Code generation for embedded second-order cone programming

- Computer Science
- 2013 European Control Conference (ECC)
- 2013

A code generation system that takes high-level descriptions of convex optimization problems and generates code that maps the parameters in the original problem to data in an equivalent second-order cone program, which is then solved by a single, external solver that can be verified once and for all. Expand

AMPL: A Modeling Language for Mathematical Programming

- Computer Science
- 1993

An efficient translator is implemented that takes as input a linear AMPL model and associated data, and produces output suitable for standard linear programming optimizers. Expand

Parameter Selection and Preconditioning for a Graph Form Solver

- Computer Science, Mathematics
- 2018

This chapter addresses the critical practical issues of how to select the proximal parameter in each iteration, and how to scale the original problem variables, so as to achieve reliable practical performance. Expand

Block splitting for distributed optimization

- Computer Science, Mathematics
- Math. Program. Comput.
- 2014

A general purpose method for solving convex optimization problems in a distributed computing environment that allows for handling each sub-block of $$A$$A on a separate machine if the problem data includes a large linear operator or matrix, and is the only general Purpose method with this property. Expand

Matrix-Free Convex Optimization Modeling

- Mathematics
- 2016

We introduce a convex optimization modeling framework that transforms a convex optimization problem expressed in a form natural and convenient for the user into an equivalent cone program in a way… Expand

A tutorial on geometric programming

- Mathematics
- 2007

Abstract
A geometric program (GP) is a type of mathematical optimization problem characterized by objective and constraint functions that have a special form. Recently developed solution methods can… Expand

Presolving in linear programming

- Mathematics, Computer Science
- Math. Program.
- 1995

This paper presents a comprehensive survey of presolve methods and discusses the restoration procedure in detail, i.e., the procedure that undoes the presolve. Expand