List of optimization packages in Python: Update 2023

- Introduction
- Guide
- MINLP+MIQP+MILP+NLP+IP+LP Packages
- MIQP+MILP+IP+LP Packages
- MILP+IP+LP Packages
- NLP+LP Packages
- CP Packages
- GPP Packages
- MOP Packages
- Notes
qpsolvers
) Introduction
This article can be a comprehensive reference for academics and experts in industrial engineering (IE), supply chain management (SCM), operations research (OR), computer science (CS), machine learning (ML), simulation (SM), data science (DS), and others to get familiar with what is available for optimization in Python.
Guide
Package capability | Description |
---|---|
MINLP |
Mixed integer nonlinear programming |
MIQP |
Mixed integer quadratic programming |
MILP |
Mixed integer linear programming |
NLP |
Nonlinear programming |
IP |
Integer programming |
LP |
Linear programming |
CP |
Constraint programming |
GPP |
General purpose programming |
MOP |
Multi-criteria/objective programming |
MINLP+MIQP+MILP+NLP+IP+LP Packages
Package | Link |
---|---|
casadi |
Official |
feloopy |
Official |
gekko |
Official |
knitro |
Official |
lindo |
Official |
midaco |
Official |
naginterfaces |
Official |
octeract |
Official |
optalg |
Official |
optmod |
Official |
pydrake |
Official |
pyomo |
Official |
pyscipopt |
Official |
xpress |
Official |
MIQP+MILP+IP+LP Packages
Package | Link |
---|---|
copt |
Official |
cplex |
Official |
docplex |
Official |
gurobipy |
Official |
highs |
Official |
localsolver |
Official |
mosek |
Official |
optlang |
Official |
rsome |
Official |
sasoptpy |
Official |
qpsolvers |
Official |
MILP+IP+LP Packages
Package | Link |
---|---|
cvxopt |
Official |
cvxpy |
Official |
cylp |
Official |
flowty |
Official |
linopy |
Official |
lpsolve55 |
Official |
mindoptpy |
Official |
mip |
Official |
ortools |
Official |
picos |
Official |
pulp |
Official |
pymprog |
Official |
swiglpk |
Official |
NLP+LP Packages
Package | Link |
---|---|
acadopy |
Official |
acados |
Official |
cyipopt |
Official |
dymos |
Official |
gpkit |
Official |
iminuit |
Official |
nlopt |
Official |
nlpy |
Official |
openmdao |
Official |
openopt |
Official |
polyopt |
Official |
pyipopt |
Official |
pyopt |
Official |
scipy |
Official |
trustregion |
Official |
worhp |
Official |
CP Packages
Package | Link |
---|---|
cplex |
Official |
cpmpy |
Official |
gecode-python |
Official |
kalis |
Official |
minizinc |
Official |
optapy |
Official |
ortools |
Official |
python-constraint |
Official |
z3-solver |
Official |
GPP Packages
Package | Link |
---|---|
arm-mango |
Official |
ax |
Official |
bayesian-optimization |
Official |
bayesianevolution |
Official |
bayeso |
Official |
bayesopt |
Official |
black-box |
Official |
bolib |
Official |
cma |
Official |
cmaes |
Official |
cobyqa |
Github |
cuopt |
Official |
deap |
Official |
dfoalgos |
Official |
dfogn |
Official |
dlib |
Official |
evolopy |
Official |
evoopt |
Official |
evostra |
Official |
feloopy |
Official |
freelunch |
Official |
gaft |
Official |
geneticalgorithm |
Official |
goptpy |
Github |
gradient-free-optimizers |
Github |
gyopt |
Official |
hebo |
Official |
heuristic_optimization |
Official |
hpbandster |
Official |
hyperopt |
Official |
inspyred |
Official |
mealpy |
Official |
mipego |
Official |
moptipy |
Official |
mystic |
Official |
nevergrad |
Official |
niapy |
Official |
oasis |
Official |
optuna |
Official |
optuner |
Official |
opytimizer |
Official |
pagmo |
Official |
pdfo |
Official |
platypus |
Official |
prodyn |
Official |
proxmin |
Official |
psopt |
Official |
psopy |
Official |
py-bobyqa |
Official |
pydogs |
Official |
pygmo |
Official |
pygpgo |
Official |
pymoo |
Official |
pyopus |
Official |
pypesto |
Official |
pyriad |
Official |
pysmac |
Official |
pysot |
Official |
pyswarms |
Official |
pymetaheuristic |
Official |
qiskit-optimization |
Official |
rapids-NeurIPS |
Official |
ray |
Official |
rbfopt |
Official |
scikit-opt |
Official |
scikit-optimize |
Official |
simanneal |
Official |
simple |
Official |
solidpy |
Official |
spearmint |
Official |
spotpy |
Official |
ssb-optimize |
Official |
swarm-cg |
Github |
swarmlib |
Official |
swarmpackagepy |
Official |
tgo |
Official |
turbo-NeurIPS |
Official |
turbo |
Official |
ultraopt |
GitHub |
yabox |
GitHub |
zoofs |
GitHub |
zoopt |
GitHub |
MOP Packages
Package | Link |
---|---|
pymultiobjective |
Official |
pydecision |
Official |
Notes
1- If you are having trouble while installing via !pip install <PACKAGE>
(in-line code) or pip install <PACKAGE>
(terminal code), you may use the following piece of code. Also, please be aware that some of the introduced packages require installing software or downloading and compiling a copy of their binary files to be imported into Python. Therefore, some of them are not easily pip
installable.
import pip
#Function:
def install(package):
if hasattr(pip, 'main'):
pip.main(['install', package])
else:
pip._internal.main(['install', package])
#Example:
install('pyomo')
2- There are some benchmarkig tools
and websites, which are introduced as follows:
Benchmark | Link |
---|---|
humpday |
Official |
pycutest |
Official |
Mittelmann | Official |
Related Posts: