[ CONE World Home | Board | Solvers | CONELib | Links | Gams World Forum | Search | Contact ] |
---|

There are several cone programming solvers available, both free codes from research institutions and commercial codes from various vendors. The solvers differ in the methods they use, in the size of models they can handle, and in the format of models they accept.

CONOPT | Nonlinear optimization solver from ARKI Consulting and Development, Copenhagen, Denmark |

CPLEX | High-performance linear, mixed-integer linear, and quadratic programming solver from IBM |

CVXOPT | 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. |

LOQO | General purpose solver for smooth nonlinear programs from Princeton University. |

MOSEK | Software package for the solution of linear, mixed-integer linear, and convex nonlinear mathematical optimization problems (including SOCP). From MOSEK ApS, Copenhagen, Denmark |

SeDuMi | MATLAB toolbox for solving optimization problems over symmetric cones. From Tilburg University, Netherlands. |

SDPT3 | MATLAB software for semidefinite-quadratic-linear programming from the National University of Singapore. |

This sections lists interfaces to conic programming solvers.

CVX | CVX is a Matlab-based modeling system for convex optimization. CVX turns Matlab into a modeling language, allowing constraints and objectives to be specified using standard Matlab expression syntax. (Developed by Michael Grant and Stephen Boyd, with input from Yinyu Ye) |

CVXMOD | Python-based tool for expressing and solving convex optimization problems using CVXOPT as it's solver. (Developed by Jacob Mattingley and Stephen Boyd) |

PICOS | PICOS (A Python Interface for Conic Optimization Solvers) currently handles (MI)LP, (MI)QCQP, (MI)SOCP, SDP and GP, and interfaces the solvers mosek, cplex, cvxopt, and zibopt (aka scip). PICOS was developed by Guillaume Sagnol and is available at the PICOS website of the Zuse Institute Berlin (ZIB). |

YALMIP | YALMIP is an interface to a number of semi-definite and conic programming solvers and is developed by Johan Lofberg, ETH Zurich, Switzerland |

CONOPT is a large-scale nonlinear programming solver utilizing various methods (Steepest-Descent, Quasi-newton, SLP, SQP) and uses exact second derivatives. SOCP models are solved via NLP formulation without smoothing.

- Language/Input Format: AIMMS, AMPL, FORTRAN, GAMS, LINGO, MATLAB/TOMLAB, MPL
- Capabilities: CNS, DNLP, NLP, SOCP

For more information see here.

CPLEX is a powerful Linear Programming (LP), Mixed-Integer Programming (MIP), Quadratically Constraint Programming (QCP) and second order cone programs, and Mixed-Integer Quadratically Constraint Programming (MIQCP) solver based on the Cplex Callable Library from IBM.

LPs are solved via the following algorithms: Primal Simplex, Dual Simplex, Network, Barrier, and Sifting. MIPs are solved using an implementation of a branch-and-bound search with modern algorithmic features such as cuts and heuristics.

CPLEX transforms QCPs into SOCPs (Second Order Cone Programs) for the barrier solver. CPLEX also supports SOCPs inputted directly.

- Language/Input Format: AIMMS, AMPL, C/C++, FORTRAN, GAMS, MATLAB/TOMLAB, MPL,
- Capabilities: LP, MIP, QCP, MIQCP, SOCP

For more information see here.

CVX is a Matlab-based modeling system for convex optimization. CVX turns Matlab into a modeling language, allowing constraints and objectives to be specified using standard Matlab expression syntax.

In its default mode, CVX supports a particular approach to convex optimization that we call disciplined convex programming. Under this approach, convex functions and sets are built up from a small set of rules from convex analysis, starting from a base library of convex functions and sets. Constraints and objectives that are expressed using these rules are automatically transformed to a canonical form and solved.

CVX also supports geometric programming (GP) through the use of a special GP mode. Geometric programs are not convex, but can be made so by applying a certain transformation. In this mode, CVX allows GPs to be constructed in their native, nonconvex form, transforms them automatically to a solvable convex form, and translates the numerical results back to the original problem.

More information about CVX can be found in the CVX Users', included with the CVX package and available separately on the CVX web site. The CVX package includes a growing library of examples to help get you started, including examples from the book Convex Optimization and from a variety of applications. You can browse through this library directly from the CVX web site without having to download and install CVX.

CVX was designed designed by Michael Grant and Stephen Boyd, with input from Yinyu Ye.

- Language/Input Format: Matlab
- Capabilities: Convex Optimization Problems

For more information see http://www.stanford.edu/~boyd/cvx/.

CVXMOD is a Python-based tool for expressing and solving convex optimization problems. It uses CVXOPT as its solver. CVXMOD is primarily a modeling layer for CVXOPT. While it is possible to use CVXOPT directly, CVXMOD makes it faster and easier to build and solve problems. Advanced users who want to see or manipulate how their problems are being solved should consider using CVXOPT directly. Additional features are being added to CVXMOD beyond just modeling. These are currently experimental.

- Language/Input Format: Python
- Capabilities: LP, QP, SDP, SOCP, NLP (convex)

For more information, see http://cvxmod.net/

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

- Language/Input Format: Python
- Capabilities: LP, QP, SDP, SOCP, NLP (convex)

For more information, see http://abel.ee.ucla.edu/cvxopt/

LOQO is a software package for the solution of large scale smooth nonlinear programming problems. It can also handle SOCP and semi-definite programming (SDP) problems and utilizes an efficient interior point method. SOCP are solved via reformulation as smooth nonlinear programs.

- Language/Input Format: AMPL, C, MATLAB, SDPA
- Capabilities: NLP, SDP, SOCP €

For more information, see http://www.orfe.princeton.edu/~loqo/.

MOSEK is a software package for the solution of linear,mixed-integer linear, and convex nonlinear mathematical optimization problems. MOSEK is particularly well suited for solving large-scale linear programs using an extremely efficient interior point algorithm. The interior point algorithm has many extensive standard library and on the strengths of Python as a high-level programming language.complex solver options which the user can specify to fine-tune the optimizer for a particular model.

- Language/Input Format: C, Python
- Capabilities: LP, MIP, NLP (convex), SOCP

Also see here.

Also see http://picos.zib.de.

Complex valued entries are allowed. Both symbolic and numerical reordering schemes, Cholesky and pre-conditioned conjugate gradient techniques that balance speed/accuracy performance. Sophisticated dense column handling, using Goldfarb-Scheinberg product form idea. Proven polynomial worst case operation bound.

- Language/Input Format: MATLAB, MATLAB+C,SDPA,SDPpack
- Capabilities: LP, SDP, SOCP

Also see http://sedumi.ie.lehigh.edu/.

MATLAB-based software that can incorporate FORTRAN or C subroutines via MEX files for faster execution. It implements an infeasible path-following algorithm for solving conic optimization problems involving semidefinite, second-order and linear cone constraints. Sparsity in the data is exploited whenever possible.

- Language/Input Format: MATLAB+C or FORTRAN, SDPA
- Capabilities: SDP, SOCP

Also see http://www.math.nus.edu.sg/~mattohkc/sdpt3.html.

YALMIP is a free MATLAB toolbox for rapid prototyping of optimization problems. The package initially aimed at the control community and focused on semidefinite programming, but the latest release extends this scope significantly.

The main features of YALMIP are:

- Easy to install since it is entirely based on MATLAB code.
- Easy to learn : 3 new commands is all the user needs to get started.
- Easy to use : you define your constraints and objective functions using intuitive and standard MATLAB code.
- Automatic categorization of problems, and automatic solver selection
- Supports numerous external solvers, both free and commercial.

- Language/Input Format: MATLAB
- Capabilities: LP, QCP, MIP, SOCP, SDP, Multi-Parametric Programming, Geometric Programming

Also see http://control.ee.ethz.ch/~joloef/yalmip.msql.