CVXOPT: A Python Package for Convex Optimization
CVXOPT is a free software package for convex optimization based on the Python programming language. It can be used with the interactive Python interpreter, on the command line by executing Python scripts, or integrated in other software via Python extension modules. Its main purpose is to make the development of software for convex optimization applications straightforward by building on Python's extensive standard library and on the strengths of Python as a high-level programming language.
Current release (1.0)
Version 1.0 includes:
- efficient Python classes for dense and sparse matrices (real and complex), with Python indexing and slicing and overloaded operations for matrix arithmetic
- an interface to most of the double-precision real and complex BLAS
- an interface to LAPACK routines for solving linear equations and least-squares problems, matrix factorizations (LU, Cholesky, LDL and QR), eigenvalue and singular value decomposition
- an interface to the fast Fourier transform routines from FFTW
- interfaces to the sparse LU and Cholesky solvers from UMFPACK and CHOLMOD
- routines for linear, second-order cone and semidefinite programming problems
- routines for nonlinear convex optimization
- interfaces to the linear programming solver in GLPK, the semidefinite programming solver in DSDP5, and the linear, quadratic and second-order cone programming solvers in MOSEK
- a modeling tool for specifying convex piecewise-linear optimization problems. This will eventually be superseded by the CVXMOD package (currently in alpha release).
Availability
A platform-independent source package and a binary Windows installer are available from the Download section. CVXOPT is also included in Debian and Ubuntu (thanks to Soeren Sonnenburg).
Discussions and support
There is a discussion forum for CVXOPT.
Authors
Joachim Dahl (joachim@es.aau.dk)
Lieven Vandenberghe (vandenbe@ee.ucla.edu)