Interfaced solvers


YALMIP supports a large number of solvers and these are briefly introduced here. To understand the tables below, here are some explanations.

Description of solver interface tables

Version Solver version which has been successfully tested together with YALMIP. Other versions might work.
Specialized for
This essentially states the problem classes that can be solved without YALMIP performing any internal conversions of the problem.
EQ Linear equality constraints.
LP Linear element-wise inequality constraints.
QP Convex quadratic objective function.
SOCP Second order cone constraint.
SDP Linear semidefinite constraints.
BMI Bilinear and quadratic semidefinite constraints.
GP Geometric programming (with posynomials)
PP Polynomial programming
NP General nonlinear programming
MAXDET logdet objective and linear semidefinite constraints.
I Integer (and/or binary) variables.
M Multi-parametric
 
Also handles
Problem classes that can be solved after internal problem conversions by YALMIP. Most importantly, equality constraints are written as double-sided inequalities (or a reduced basis is derived), convex quadratic performance objectives are rewritten using second order cones, and second order cones are rewritten to semidefinite constraints.
Tag
This is the tag used in sdpsettings to select solver.

The solvers

BINTPROG

Version  
Specialized for
EQ, I, LP
Also handles
 
Homepage
http://www.mathworks.com/products/optimization/
Tag
'bintprog'
Comments
Available in MATLAB 7. BINTPROG only support binary decision variables. If integer variables are used, YALMIP will try to model these using binary variables (requires explicit lower and upper bounds the variables)

 

BPMPD

Version 2.21.1
Specialized for
EQ, LP, QP
Also handles
 
Homepage
http://www.pserc.cornell.edu/bpmpd/
Tag
'bpmpd'
Comments
 

 

CDD

Version 0.93
Specialized for
EQ, LP
Also handles
 
Homepage
http://www.cs.mcgill.ca/~fukuda/soft/cdd_home/cdd.html
Tag
'cdd'
Comments
Interfaced through the MATLAB interface CDDMEX

 

CLP

Versions  
Specialized for
EQ, LP, QP
Also handles
 
Homepage
http://www.coin-or.org
Tag
'clp'
Comments
Interfaced through the MATLAB interface mexclp

 

CPLEX

Version 8.1, 9.0
Specialized for
EQ, LP, QP, I
Also handles
 
Homepage
www.ilog.com
Tag
'cplex'
Comments
Interfaced through the MATLAB interfaces CPLEXINT or CPLEXMEX.

 

CSDP

Version 4.9
Specialized for
LP, SDP
Also handles
EQ, SOCP, QC, QP
Homepage
http://www.nmt.edu/~borchers/csdp.html
Tag
'csdp'
Comments
You must be in the CSDP directory in MATLAB when using CSDP, or have CSDP in your system path (having CSDP in the MATLAB path is not sufficient).

 

DSDP

Version 5.5
Specialized for
LP, SDP
Also handles
EQ,  QC, SOCP, QP
Homepage
http://www-unix.mcs.anl.gov/~benson/
Tag
'dsdp'
Comments
Specialized for sparse and low-rank SDPs

 

FMINCON

Version  
Specialized for
NP
Also handles
 
Homepage
http://www.mathworks.com/products/optimization/
Tag
'fmincon'
Comments
 

 

FMINSEARCH

Version  
Specialized for
NP
Also handles
 
Homepage
http://www.mathworks.com/products/optimization/
Tag
'fminsearch'
Comments
Can only deal with unconstrained problems.

 

GLPK

Version 4.5
Specialized for
EQ, LP, I
Also handles
 
Homepage
http://www.gnu.org/software/glpk/glpk.html
Tag
'glpk'
Comments
Interfaced through the MATLAB interface GLPKMEX

 

GPPOSY

Version 0.8
Specialized for
GP
Also handles
 
Homepage
http://www.stanford.edu/~boyd/ggplab/
Tag
'gpposy'
Comments
 

 

KYPD

Version  
Specialized for
KYP
Also handles
EQ, LP, QP, SDP
Homepage
http://www.control.isy.liu.se/publications/doc?id=1470
Tag
'kypd'
Comments
 

 

LINPROG

Version  
Specialized for
EQ, LP
Also handles
 
Homepage
http://www.mathworks.com/products/optimization/
Tag
'linprog'
Comments
Commercial.

 

LMILAB

Version  
Specialized for
SDP,
Also handles
EQ, LP, SOCP, QP
Homepage
http://www.mathworks.com/products/robust/
Tag
'lmilab'
Comments
Commercial. Please note that LMILAB often is terribly slow on general problems. LMILAB is efficient when control specific structure is explicitly stated, but YALMIP cannot exploit this feature and LMILAB will thus run much slower compared to when the problem is modeled directly in LMILAB. Hence, if you insist on using LMILAB, YALMIP will cause efficiency problems. Of-course, a simple solution is to switch solver and use any of the other SDP solvers supported by YALMIP. To summarize, do not use LMILAB together with YALMIP except if you really have to.

 

LMIRANK

Version  
Specialized for
SDP with rank constraints
Also handles
EQ, LP, SOCP, QP
Homepage
http://users.rsise.anu.edu.au/~robert/lmirank/
Tag
'lmirank'
Comments
 

 

LP_SOLVE

Version 5.1, 5.5
Specialized for
EQ, LP, I
Also handles
 
Homepage
http://groups.yahoo.com/group/lp_solve/
Tag
'lpsolve'
Comments
 

 

MAXDET

Version  
Specialized for
LP, SDP, MAXDET
Also handles
EQ, QP,  QC, SOCP
Homepage
http://www.stanford.edu/~boyd/MAXDET.html
Tag
'maxdet'
Comments
Updated source-code and binaries for MATLAB 6 and 7 can be found at http://control.ee.ethz.ch/~joloef/maxdet.zip. Note that pure determinant maximization problems now can be solved using any SDP solver in YALMIP, hence MAXDET is no longer necessary.

 

Multi-parametric Toolbox

Version  
Specialized for
MLP, MQP
Also handles
 
Homepage
http://control.ee.ethz.ch/~mpt
Tag
'mpt'
Comments
 

 

MOSEK

Version 3
Specialized for
EQ, LP, QP, SOCP, GP, I
Also handles
 
Homepage
http://www.mosek.com
Tag
'mosek'
Comments
Commercial solver (limited trial version available). This solver has only been minimally tested. If you want to purchase MOSEK for usage with YALMIP, then you always need product PTS. You may also need one of the extensions
 PTOC - If you solve problems with cones.
 PTOM - If you solve problems with general nonlinear constraints such as GPs.
 PTOC - If you solve problems with integer variables.

 

NAG

Version  
Specialized for
EQ, LP, QP
Also handles
 
Homepage
http://www.nag.co.uk
Tag
'nag'
Comments
Commercial.

 

OOQP

Version 0.99
Specialized for
EQ, LP, QP
Also handles
 
Homepage
http://www.cs.wisc.edu/~swright/ooqp/
Tag
'ooqp'
Comments
This solver has only been minimally tested.

 

PENBMI

Version 1.1
Specialized for
LP, SDP, BMI
Also handles
EQ, SOCP, QC, QP
Homepage
http://www.penopt.com
Tag
'penbmi'
Comments
Commercial solver with free developer licenses for academics. YALMIP also interfaces the TOMLAB version of the solver.

 

PENSDP

Version 1.1
Specialized for
LP, SDP
Also handles
EQ, SOCP, QC, QP
Homepage
http://www.penopt.com
Tag
'pensdp'
Comments
Commercial solver with free developer licenses for academics. YALMIP also interfaces the TOMLAB version of the solver.

 

QUADPROG

Version  
Specialized for
EQ, LP, QP
Also handles
 
Homepage
http://www.mathworks.com/products/optimization/
Tag
'quadprog'
Comments
Commercial.

 

SDPA

Version 5, 6
Specialized for
LP, SDP
Also handles
EQ, SOCP,  QC, QP
Homepage
http://grid.r.dendai.ac.jp/sdpa/
Tag
'sdpa'
Comments
Interfaced through SDPA-M

 

SDPLR

Version  
Specialized for
SDP
Also handles
EQ, LP, SOCP,  QC, QP
Homepage
http://dollar.biz.uiowa.edu/~burer/software/SDPLR/
Tag
'sdplr'
Comments
SDPLR is specialized for problems with a low rank dual solution (dual in YALMIPs notation). The solver can additionally also exploit low rank data matrices. For information on how this can be done using YALMIP, see the command lowrank.

 

SDPT3

Version 3.02, 3.1
Specialized for
EQ, LP, SOCP, SDP
Also handles
SOCP, QC, QP
Homepage
http://www.math.nus.edu.sg/~mattohkc/sdpt3.html
Tag
'sdpt3'
Comments
Make sure not to have both SeDuMi and SDPT3 3.02 in the MATLAB path.

 

SeDuMi

Versions 1.03, 1.05R5, 1.1
Specialized for
EQ, LP, SOCP, SDP
Also handles
QP, QC
Homepage
http://sedumi.mcmaster.ca/
Tag
'sedumi'
Comments
Make sure not to have both SeDuMi and SDPT3 in the MATLAB path.

 

QSopt

Versions  
Specialized for
EQ, LP
Also handles
 
Homepage
http://www.isye.gatech.edu/~wcook/qsopt/
Tag
'qsopt'
Comments
May only be used for research or eduction purposes. Interfaced through the MATLAB interface mexqsopt

 

XPRESS

Version  
Specialized for
EQ, LP, QP, I
Also handles
 
Homepage
www.dashoptimization.com
Tag
'xpress'
Comments
Interfaced through the MATLAB interface MEXPRESS