CVXR: An R Package for Disciplined Convex Optimization

@article{Fu2017CVXRAR,
  title={CVXR: An R Package for Disciplined Convex Optimization},
  author={Anqi Fu and Balasubramanian Narasimhan and Stephen P. Boyd},
  journal={arXiv: Computation},
  year={2017}
}
CVXR is an R package that provides an object-oriented modeling language for convex optimization, similar to CVX, CVXPY, YALMIP, and Convex.jl. It allows the user to formulate convex optimization problems in a natural mathematical syntax rather than the restrictive form required by most solvers. The user specifies an objective and set of constraints by combining constants, variables, and parameters using a library of functions with known mathematical properties. CVXR then applies signed… 

Figures and Tables from this paper

Disciplined geometric programming
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
Differentiating through Log-Log Convex Programs
TLDR
This work shows how to efficiently compute the derivative (when it exists) of the solution map of log-log convex programs (LLCPs) and uses the adjoint of the derivative to implement differentiable log- log convex optimization layers in PyTorch and TensorFlow.
Semidefinite Quadratic Linear Programming in R
TLDR
The package sdpt3r is presented, an R implementation of the Matlab package SDPT3, which encompasses problems such as D-optimal experimental design, the nearest correlation matrix problem, and distance weighted discrimination, as well as problems in graph theory such as finding the maximum cut or Lovasz number of a graph.
ROI: An Extensible R Optimization Infrastructure
TLDR
The R Optimization Infrastructure is introduced, which provides an extensible infrastructure to model linear, quadratic, conic and general nonlinear optimization problems in a consistent way and administers many different solvers, reformulations, problem collections and functions to read and write optimization Problems in various formats.
Embedded Code Generation With CVXPY
TLDR
This work introduces CVXPYgen, a tool for generating custom C code, suitable for embedded applications, that solves a parameterized class of convex optimization problems that outperforms a state-of-the-art code generation tool in terms of problem size it can handle, binary code size, and solve times.
Differentiating Through a Conic Program
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
Differentiable Convex Optimization Layers
TLDR
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.
Regularized Transformation Models: The tramnet Package
TLDR
The tramnet package implements regularized linear transformation models by combining the flexible class of transformation models from tram with constrained convex optimization implemented in CVXR and several functionalities for optimizing the hyperparameters, including model-based optimization based on the mlrMBO package.
Disciplined quasiconvex programming
TLDR
This work presents a composition rule involving quasiconvex functions that generalizes the classical composition rule for convex functions, and describes an implementation of disciplined quasiconsvex programming that makes it possible to specify and solve quasIconvex programs in CVXPY 1.0.
Differentiating through a cone program
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
...
...

References

SHOWING 1-10 OF 75 REFERENCES
CVXPY: A Python-Embedded Modeling Language for Convex Optimization
TLDR
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.
Convex Optimization in Julia
TLDR
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.
Unifying Optimization Algorithms to Aid Software System Users: optimx for R
TLDR
This work attempts to provide some diagnostic information about the function, its scaling and parameter bounds, and the solution characteristics of optimx, a wrapper to consolidate many of these choices for the optimization of functions that are mostly smooth with parameters at most bounds-constrained.
Convex Optimization in R
TLDR
This work focuses throughout primarily on implementations in the R environment that rely on solution methods linked to R, like MOSEK by the package Rmosek, dealing with empirical Bayes estimation of nonparametric mixture models.
ROI: The R Optimization Infrastructure Package
TLDR
The R Optimization Infrastructure is introduced, which provides an extensible infrastructure to model linear, quadratic, conic and general nonlinear optimization problems in a consistent way and administers many different solvers, reformulations, problem collections and functions to read and write optimization Problems in various formats.
Interior-point methods for large-scale cone programming
TLDR
In this chapter, an overview of ad hoc techniques that can be used to exploit non-sparse structure in specific classes of applications are given.
ECOS: An SOCP solver for embedded systems
In this paper, we describe the embedded conic solver (ECOS), an interior-point solver for second-order cone programming (SOCP) designed specifically for embedded applications. ECOS is written in low
Nearly-Isotonic Regression
TLDR
A simple algorithm is devised to solve for the path of solutions, which can be viewed as a modified version of the well-known pool adjacent violators algorithm, and computes the entire path in O(n) operations (n being the number of data points).
The Mosek Interior Point Optimizer for Linear Programming: An Implementation of the Homogeneous Algorithm
TLDR
The MOSEK optimizer is based on the homogeneous interior-point algorithm which in contrast to the primal-dual algorithm detects a possible primal or dual infeasibility reliably reliably.
Two Examples of Convex-Programming-Based High-Dimensional Econometric Estimators
TLDR
This work duplicates the simulation exercises in Su, Shi, and Phillips ( 2016) and Shi (2016) to show the robust performance of convex optimization cross platforms and combines R and the convex solver MOSEK to achieve faster speed and equivalent accuracy.
...
...