サブロウ丸

主にプログラミングと数学

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


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 Constrainted 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
[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


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
[S] CVXOPT ok ok ok
[M] PICOS ok ok ok
[M] OpenOpt
[S] Optuna
[S] HyperOpt
[M] flopt

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