Python モデラーとソルバーまとめ (解ける問題の比較)
Solver (May 22, 2020)
- [S] Solver (問題を解くアルゴリズムを内包し, それを実行して解を探索するアプリケーション)
- [M] Modeler (解く問題をプログラムで作成するためのアプリケーション)
Nonlinear or Linear Programming
- NLP (Nonlinear Programming)
- MINLP (Mixed Integer Nonlinear Programming)
- LP (Linear Programming)
- MIP (Mixed Integer Linear Programming)
| Solver / Problem | NLP | MINLP | LP | MIP |
|---|---|---|---|---|
| [M] PuLP | ok | ok | ||
| [S] CPLEX | ok | ok | ||
| [S] ECOS | ok | ok | ||
| [S] GLPK | ok | ok | ||
| [S] Gurobi | ok | ok | ||
| [S] MOSEK | ok | ok | ||
| [S] SCIP | ok | ok | ||
| [S] Scipy | ok | ok | ok | |
| [S] CVXOPT | ok | |||
| [M] PICOS | ok | ok | ||
| [M] Pyomo | ok | ok | ok | ok |
| [M] OpenOpt (未確認) | ok | |||
| [S] Optuna | ||||
| [S] HyperOpt | ||||
| [M] flopt | ok | ok | ok | ok |
Cone Programming
- LCP (Linear Cone Programming)
- QP (Quadratic Programming)
- MIQP (Mixed Integer Quadratic Programming)
- QCP (Quadratic Cone Programming)
- SOCP (Second-Order Cone Programming)
- QCQP (Quadratic Constrained Quadratic Programming)
- SDP (Semidefinite Programming)
| Solver / Problem | LCP | QP | MIQP | QCP | SOCP | QCQP | SDP |
|---|---|---|---|---|---|---|---|
| [M] PuLP | |||||||
| [S] CPLEX | ok | ok | |||||
| [S] ECOS | |||||||
| [S] GLPK | |||||||
| [S] Gurobi | ok | ok | ok | ok | ok | ok | |
| [S] MOSEK | |||||||
| [S] SCIP | |||||||
| [S] Scipy | |||||||
| [S] CVXOPT | ok | ok | ok | ok | ok | ||
| [M] PICOS | ok | ok | ok | ok | ok | ||
| [M] OpenOpt | |||||||
| [M] Pyomo | ok | ok | |||||
| [S] Optuna | |||||||
| [S] HyperOpt | |||||||
| [M] flopt | ok | ok | ok | ok | ok |
Nonlinear Convex Optimization
- NO (Problems with Nonlinear Objective)
- LO (Problems with Linear Objective)
- GP (Geometric Programming)
| Solver / Problem | NO | LO | GP |
|---|---|---|---|
| [M] PuLP | |||
| [S] CPLEX | |||
| [S] ECOS | |||
| [S] GLPK | |||
| [S] Gurobi | |||
| [S] MOSEK | |||
| [S] SCIP | |||
| [S] Scipy | ok | ok | |
| [S] CVXOPT | ok | ok | ok |
| [M] PICOS | ok | ok | ok |
| [M] OpenOpt | |||
| [S] Optuna | |||
| [S] HyperOpt | |||
| [M] flopt | ok | ok | ok |
Other Optimization
- SP (Stochastic Programming)
- BO (BlackBox Optimization)
- PO (Permutation Optimization)
| Solver / Problem | SP | BO | PO |
|---|---|---|---|
| [M] PuLP | |||
| [S] CPLEX | |||
| [S] ECOS | |||
| [S] GLPK | |||
| [S] Gurobi | |||
| [S] MOSEK | |||
| [S] SCIP | |||
| [S] Scipy | ok | ||
| [S] CVXOPT | |||
| [M] PICOS | |||
| [M] OpenOpt | |||
| [M] Pyomo | ok | ||
| [S] Optuna | ok | ok | |
| [S] HyperOpt | ok | ok | |
| [M] flopt | ok | ok |