Solvers#
AMPL connects with most commercial and open-source solvers and provides an easy way to switch between them.
Linear-Quadratic Solvers#
Traditional Linear-Quadratic solvers are advancing into the nonlinear domain (MINLP, Mixed Integer NonLinear Programming).
LP |
MILP |
QP |
MIQP |
Convex |
Non-convex |
Conic |
(MI)NLP |
||
|---|---|---|---|---|---|---|---|---|---|
✅[1] |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
✅[1] |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
✅ |
≈[3] |
✅ |
|
✅[1] |
✅ |
✅ |
✅ |
✅ |
✅ |
✅[2] |
✅ |
||
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
✅[2] |
≈[3] |
✅ |
|
✅[1] |
✅[1] |
❌ |
❌ |
❌ |
❌ |
❌ |
≈[3] |
✅ |
|
✅[1] |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
≈[3] |
✅ |
|
✅ |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
≈[3] |
✅ |
|
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
|
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
✅ |
Footnotes
Nonlinear Solvers#
Nonlinear solvers traditionally target smooth problems with continuous variables. However, some solvers accept integer variables (MINLP), and some target global optimality (vs returning only locally optimal solutions for non-convex problems.)
NLP |
MINLP |
Global [5] |
||
|---|---|---|---|---|
✅ |
✅ |
❌ |
✅[6] |
|
✅ |
✅ |
✅ |
✅ |
|
✅ |
✅ |
✅ |
✅[6] |
|
✅ |
✅ |
✅ |
✅[6] |
|
✅ |
❌ |
✅ |
✅[6] |
|
✅ |
❌ |
❌ |
✅[6] |
|
✅ |
❌ |
❌ |
✅[6] |
|
✅ |
❌ |
❌ |
✅[6] |
|
✅ |
❌ |
❌ |
✅[6] |
|
✅ |
❌ |
❌ |
✅[6] |
|
✅ |
✅ |
❌ |
✅[6] |
|
✅ |
✅ |
✅ |
✅[6] |
Footnotes
Global optimality: while Knitro and Bonmin accept integer variables, they only guarantee local optimum for non-convex models.
With the MP2NL meta-driver.
Constraint Programming Solvers#
NEOS Server#
Try NEOS directly from Google Colab here: Open in Google Colab.