CVXGEN: a code generator for embedded convex optimization

CVXGEN is a software tool that takes a high level description of a convex optimization problem family, and automatically generates custom C code that compiles into a reliable, high speed solver for the problem family. The current implementation targets problem families that can be transformed, using disciplined convex programming techniques, to convex quadratic programs of modest size. CVXGEN generates simple, flat, library-free code suitable for embedding in real-time applications. The generated code is almost branch free, and so has highly predictable run-time behavior. The combination of regularization (both static and dynamic) and iterative refinement in the search direction computation yields reliable performance, even with poor quality data. In this paper we describe how CVXGEN is implemented, and give some results on the speed and reliability of the automatically generated solvers.

[1]  C. H. Ray,et al.  The Design of Optimal Convolutional Filters via Linear Programming , 1969 .

[2]  Dimitri P. Bertsekas,et al.  Necessary and sufficient conditions for a penalty method to be exact , 1975, Math. Program..

[3]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[4]  I. Duff,et al.  Direct Methods for Sparse Matrices , 1987 .

[5]  Stephen P. Boyd,et al.  Linear controller design: limits of performance , 1991 .

[6]  Sanjay Mehrotra,et al.  On the Implementation of a Primal-Dual Interior Point Method , 1992, SIAM J. Optim..

[7]  Robert J. Vanderbei,et al.  Symmetric indefinite systems for interior point methods , 1993, Math. Program..

[8]  Elaine Kant,et al.  Synthesis of mathematical-modeling software , 1993, IEEE Software.

[9]  Stephen P. Boyd,et al.  Linear Matrix Inequalities in Systems and Control Theory , 1994 .

[10]  Yurii Nesterov,et al.  Interior-point polynomial algorithms in convex programming , 1994, Siam studies in applied mathematics.

[11]  M. Saunders Solution of sparse rectangular systems using LSQR and CRAIG , 1995 .

[12]  M. Dahleh,et al.  Control of Uncertain Systems: A Linear Programming Approach , 1995 .

[13]  Robert J. Vanderbei,et al.  Symmetric Quasidefinite Matrices , 1995, SIAM J. Optim..

[14]  Vladimir A. Yakubovich,et al.  Linear Matrix Inequalities in System and Control Theory (S. Boyd, L. E. Ghaoui, E. Feron, and V. Balakrishnan) , 1995, SIAM Rev..

[15]  R. Graham,et al.  Handbook of Combinatorics , 1995 .

[16]  Joseph R. Shinnerl,et al.  On the Stability of Cholesky Factorization for Symmetric Quasidefinite Systems , 1996, SIAM J. Matrix Anal. Appl..

[17]  Kim-Chuan Toh,et al.  SDPT3 -- A Matlab Software Package for Semidefinite Programming , 1996 .

[18]  J. L. Nazareth,et al.  Cholesky-based Methods for Sparse Least Squares : The Benefits of Regularization ∗ , 1996 .

[19]  Rainer Bacher,et al.  Automatic generation of optimization code based on symbolic non-linear domain formulation , 1996, ISSAC '96.

[20]  J. L. Nazareth,et al.  Linear and nonlinear conjugate gradient-related methods , 1996 .

[21]  Martin Grötschel,et al.  Handbook of combinatorics (vol. 1) , 1996 .

[22]  Stephen J. Wright Primal-Dual Interior-Point Methods , 1997, Other Titles in Applied Mathematics.

[23]  Vladimir Cherkassky,et al.  The Nature Of Statistical Learning Theory , 1997, IEEE Trans. Neural Networks.

[24]  Frank Kelly,et al.  Rate control for communication networks: shadow prices, proportional fairness and stability , 1998, J. Oper. Res. Soc..

[25]  E. Yaz Linear Matrix Inequalities In System And Control Theory , 1998, Proceedings of the IEEE.

[26]  Yinyu Ye,et al.  Interior point algorithms: theory and analysis , 1997 .

[27]  Stephen P. Boyd,et al.  Optimization of inductor circuits via geometric programming , 1999, DAC '99.

[28]  Stephen J. Wright,et al.  Numerical Optimization , 2018, Fundamental Statistical Inference.

[29]  Jos F. Sturm,et al.  A Matlab toolbox for optimization over symmetric cones , 1999 .

[30]  Nello Cristianini,et al.  An Introduction to Support Vector Machines and Other Kernel-based Learning Methods , 2000 .

[31]  Vladimir N. Vapnik,et al.  The Nature of Statistical Learning Theory , 2000, Statistics for Engineering and Information Science.

[32]  Stephen P. Boyd,et al.  Optimal design of a CMOS op-amp via geometric programming , 2001, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[33]  Jos F. Sturm,et al.  Implementation of interior point methods for mixed semidefinite and second order cone optimization problems , 2002, Optim. Methods Softw..

[34]  Miroslav Tuma,et al.  A Note on the LDLT Decomposition of Matrices from Saddle-Point Problems , 2001, SIAM J. Matrix Anal. Appl..

[35]  Yonina C. Eldar,et al.  Designing optimal quantum detectors via semidefinite programming , 2003, IEEE Trans. Inf. Theory.

[36]  Cheng Jin,et al.  FAST TCP: Motivation, Architecture, Algorithms, Performance , 2006, IEEE/ACM Transactions on Networking.

[37]  Robert W. Brodersen,et al.  Automated fixed-point data-type optimization tool for signal processing and communication systems , 2004, Proceedings. 41st Design Automation Conference, 2004..

[38]  Johan Löfberg,et al.  YALMIP : a toolbox for modeling and optimization in MATLAB , 2004 .

[39]  Stephen P. Boyd,et al.  Digital Circuit Optimization via Geometric Programming , 2005, Oper. Res..

[40]  Stephen P. Boyd,et al.  Convex Optimization , 2004, Algorithms and Theory of Computation Handbook.

[41]  R. Vanderbei Symmetric Quasi-Definite Matrices , 2006 .

[42]  C. Schlegel,et al.  On coverage and routing in wireless ad hoc networks , 2006, IEEE Signal Processing Magazine.

[43]  Stephen P. Boyd,et al.  Disciplined Convex Programming , 2006 .

[44]  Stephen P. Boyd,et al.  Graph Implementations for Nonsmooth Convex Programs , 2008, Recent Advances in Learning and Control.

[45]  Yonina C. Eldar,et al.  Convex Optimization in Signal Processing and Communications , 2009 .

[46]  Stephen P. Boyd,et al.  Real-Time Convex Optimization in Signal Processing , 2010, IEEE Signal Processing Magazine.

[47]  Yang Wang,et al.  Code generation for receding horizon control , 2010, 2010 IEEE International Symposium on Computer-Aided Control System Design.

[48]  Stephen P. Boyd,et al.  Automatic code generation for real-time convex optimization , 2010, Convex Optimization in Signal Processing and Communications.

[49]  Stephen P. Boyd,et al.  Fast Model Predictive Control Using Online Optimization , 2010, IEEE Transactions on Control Systems Technology.