FelooPy

January 15, 2024
17 min read
optimizationpackagescomparison

List of Optimization Packages in Python

A detailed overview of various optimization packages available for Python categorized by their capabilities.

By Keivan Tafakkori

Introduction

This article serves as a comprehensive reference for academics and experts in the following fields to get familiar with what is available for optimization in Python:

  • Industrial engineering (IE)
  • Supply chain management (SCM)
  • Operations research (OR)
  • Computer science (CS)
  • Machine learning (ML)
  • Simulation (SM)
  • Decision science (DS)
  • Data science (DS)

Guide

Package capabilityDescription
DWPDecision-centric workflow programming (DecisionOps)
GPPGeneral purpose programming
IPInteger programming
LPLinear programming
MILPMixed integer linear programming
MINLPMixed integer nonlinear programming
MIQPMixed integer quadratic programming
MOPMulti-criteria/objective programming
NLPNonlinear programming
PSPProblem-specific programming
QPPQuantum-powered programming
UPUncertainty programming

MINLP+MIQP+MILP+NLP+IP+LP Packages

Note: Some packages might not accept a mixed group of discrete and continuous variables.

PackageLinkVersionLicenseLast commit
amplpyOfficial
v0.15.2
BSD-3
july
casadiOfficial
v3.7.2
OSI Approved
november
feloopyOfficial
v0.3.9
MIT
November 27
gamspyOfficial
v1.17.2
MIT
November 29
gekkoOfficial
v1.3.0
MIT
november
gurobipyOfficial
v13.0.0
Proprietary
-
hexalyOfficial---
insideopt-seekerOfficial
v0.1.24
-
-
knitroOfficial---
lindoOfficial
v16.0.68
-
march
midacoOfficial--
naginterfacesOfficial---
octeractOfficial--
omltOfficial
v1.2.2
-
april
optalgOfficial
v1.1.8rc1
BSD 2-Clause License
november 2019
optmodOfficial
v0.0.1rc1
BSD 2-Clause License
january 2020
pydrakeOfficial
v1.47.0
-
December 1
pyepoOfficial
v1.0.2
-
august
pyomoOfficial
v6.9.5
-
November 30
pyscipoptOfficial
v6.0.0
MIT
December 1
science-optimizationOfficial
v9.0.3
-
-
xpressOfficial
v9.8.0
Other/Proprietary
-

MIQP+MILP+IP+LP Packages

Note: Some packages might not accept a mixed group of discrete and continuous variables.

PackageLinkVersionLicenseLast commit
coptpyOfficial
v8.0.2
-
-
cplexOfficial
v22.1.2.0
Proprietary
-
docplexOfficial
v2.30.251
Apache 2.0
july
dooplOfficial
v12.10.0.26
v12.10.0.26
june 2022
highspyOfficial
v1.12.0
MIT
october
miosqpOfficial--
january 2020
mosekOfficial
v11.0.30
-
-
optlangOfficial
v1.8.3
Apache-2.0
january
pyoframeOfficial
v1.0.1
MIT
november
pyoptinterfaceOfficial
v0.5.1
MPL 2.0
november
qiskit-optimizationOfficial
v0.7.0
Apache-2.0
november
qpsolversOfficial
v4.8.2
LGPLV3
November 25
rsomeOfficial
v1.3.1
GPL-3.0
november 2024
sasoptpyOfficial
v1.0.5
Apache v2.0
october

MILP+IP+LP Packages

Note: Some packages might not accept a mixed group of discrete and continuous variables.

PackageLinkVersionLicenseLast commit
cuoptOfficial
November 25
cupdlpxOfficial
november
cvxoptOfficial
v1.3.2
GNU GPL version 3
october
cvxpyOfficial
v1.7.4
Apache License, Version 2.0
November 30
cylpOfficial
v0.93.1
EPL-2.0
july
flowtyOfficial
-
-
-
linopyOfficial
v0.5.8
MIT
november
lpsolve55Official
february 2019
mathoptOfficial
November 25
mindoptpyOfficial
v2.2.0
-
-
mipOfficial
v1.15.0
EPL-2.0
august
ortoolsOfficial
v9.14.6206
Apache 2.0
November 25
picosOfficial
v2.6.2
GPLV3
october
pulpOfficial
v3.3.0
MIT
november
pymprogOfficial
v1.1.2
GPL
november 2023
swiglpkOfficial
v5.0.12
GPL v3
november

NLP+LP Packages

PackageLinkVersionLicenseLast commit
acadopyOfficial--
june 2019
acadosOfficial--
December 1
bioptimOfficial--
November 25
cyipoptOfficial
v1.0.3
EPL-1.0
november
dymosOfficial
v1.15.0
Apache-2.0
september
gpkitOfficial
v1.1.1
The MIT License (MIT)
january 2024
iminuitOfficial
v2.32.0
MIT+LGPL
november
lpsolversOfficial
v2.1.0
LGPLV3
april
nloptOfficial
v2.9.1
MIT
september
nlpyOfficial-
LGPL
-
openmdaoOfficial
v3.41.0
Apache-2.0
november
openoptOfficial
v0.5629
BSD
may 2018
optimagicOfficial-
MIT
November 27
optimistixOfficial
v0.0.11
Apache-2.0
November 29
polyoptOfficial--
january 2018
pyipmOfficial--
november 2021
pyipoptOfficial
v0.7
New BSD License
april 2018
pyoptOfficial
v0.84
-
january
scipyOfficial
v1.16.3
BSD
December 1
theseusOfficial
v0.2.3
-
january
trustregionOfficial--
November 30
worhpOfficial---

CP Packages

PackageLinkVersionLicenseLast commit
chocoOfficial
v0.2.4
BSD-4
september
cplexOfficial
v22.1.2.0
Proprietary
cpmpyOfficial
v0.9.28
Apache 2.0
December 1
feloopyOfficial
v0.3.9
MIT
November 27
gecode-pythonOfficial
v0.27
-
hexalyOfficial
kalisOfficial
minizincOfficial
v0.10.0
MPL-2.0
october
optapyOfficial
v9.37.0b0
Apache License Version 2.0
july 2023
ortoolsOfficial
v9.14.6206
Apache 2.0
November 25
picatOfficial---
pycsp3Official
v2.5.1
MIT
november
python-constraintOfficial
v1.4.0
BSD
july
z3-solverOfficial
v4.15.4.0
MIT License
November 30

GPP Packages

PackageLinkVersionLicenseLast commit
arm-mangoOfficial
v1.5.1
Apache-2.0
february
axOfficial
v0.52.0
COMMERCIAL
November 27
balansOfficial
v2.1.3
Apache-2.0
november
bayesian-optimizationOfficial
v3.1.0
MIT
september
bayesianevolutionOfficial--
december 2020
bayesoOfficial
v0.6.0
MIT
march 2024
bayesoptOfficial
v0.3
AGPL>=3.0
march 2023
black-boxOfficial
v1.0.2
MIT
october
bolibOfficial
september 2021
botorchOfficial
v0.16.1
MIT
November 29
cbxOfficial
v1.0.1
MIT
october
cmaOfficial
v4.4.1
-
september
cmaesOfficial
v0.12.0
MIT
November 27
cobyqaOfficial
v1.1.3
BSD
December 1
deapOfficial
v1.4.3
LGPL
april
dfoalgosOfficial
v0.6
BSD
dfognOfficial
v1.0.2
GNU GPL
didppyOfficial
v0.10.0
-
august
dlibOfficial
v20.0.0
Boost Software License
November 28
egoboxOfficial
v0.34.0
Apache-2.0
november
evolopyOfficial
v4.0.6
MIT
april
evooptOfficial
v0.14
BSD 2-Clause
june 2022
evostraOfficial
v2.5.2
MIT
may 2018
feloopyOfficial
v0.3.9
MIT
November 27
freelunchOfficial
v0.0.15
MIT
gaftOfficial
v0.5.7
LICENSE
december 2018
gemseoOfficial
v6.3.1
LGPL-3.0
November 28
geneticalgorithmOfficial
v1.0.2
MIT
december 2020
goptpyOfficial--
november 2018
gradient-free-optimizersOfficial
v1.7.2
MIT
september
gyoptOfficial
v1.2.6
-
january 2023
heboOfficial
v0.3.6
MIT
November 27
heuristic_optimizationOfficial
v0.4.3
MIT
september 2017
hexalyOfficial
hpbandsterOfficial
v0.7.4
BSD 3-Clause License
april 2022
hyperopt-sklearnOfficial
v1.1.1
BSD
march
hyperoptOfficial
v0.2.7
BSD
september 2024
inspyredOfficial
v1.0.3
MIT
october 2024
jmetalpyOfficial
v1.9.0
MIT
november
mealpyOfficial
v3.0.3
MIT
september
mipegoOfficial
v2.0.0
MIT
november 2021
moptipyOfficial
v0.9.155
GPL 3.0
November 28
mysticOfficial
v0.4.4
BSD-3-Clause
november
nevergradOfficial
v1.0.12
MIT
april
niapyOfficial
v2.6.1
MIT
november
oasisOfficial
v0.1.3
MIT
december 2024
oproOfficial
v0.2.15
MIT
december 2024
optimusOfficial
v2.1.0
MIT
november
optunaOfficial
v4.6.0
MIT
November 28
optunerOfficial
v0.8.8
MIT
opytimizerOfficial
v3.1.4
Apache 2.0
august 2024
orionOfficial
v0.2.7
BSD-3-Clause
november
orlmOfficial--
september
pagmoOfficial
v2.19.5
MPL-2.0
october
pdfoOfficial
v2.2.0
BSD
february
platypusOfficial
v1.4.1
-
august
poppyOfficial
v0.2.1
BSD-3-Clause
february 2024
prodynOfficial--
march 2018
proxminOfficial
v0.6.12
MIT
june 2022
psoptOfficial
v0.1.2
MIT
psopyOfficial
v0.2.4
BSD
april 2020
py-bobyqaOfficial
v1.5.0
GPL-3.0-or-later
November 30
pydogsOfficial
v0.1.5
-
pygadOfficial
v3.5.0
BSD
july
pygmoOfficial
v2.19.5
MPL-2.0
august 2024
pygpgoOfficial
v0.5.1
MIT
march 2022
pymetaheuristicOfficial
v1.9.5
GNU
april 2024
pymooOfficial
v0.6.1.6
Apache-2.0
November 26
pyopusOfficial
v0.9
GPL V3
pypestoOfficial
v0.5.7
BSD-3-Clause
november
pyriadOfficial
v0.1.2
MIT
pysmacOfficial
v0.8
-
march 2018
pysotOfficial
v0.3.3
LICENSE.rst
september 2021
pyswarmsOfficial
v1.3.0
MIT license
june 2023
qiskit-optimizationOfficial
v0.7.0
Apache-2.0
november
rapids-NeurIPSOfficial
december 2020
rayOfficial
v2.52.1
Apache 2.0
December 1
rbfoptOfficial
v4.3.0
BSD
march
rl4coOfficial
v0.6.0
MIT
November 28
roboOfficial
v0.5.6
BSD
april 2019
safeoptOfficial
v0.16
MIT
april 2020
sb-arch-optOfficial
v1.5.5
MIT
December 1
scikit-optOfficial
v0.6.6
MIT
august
scikit-optimizeOfficial
v0.10.2
BSD 3-clause
october 2021
simannealOfficial
v0.5.0
BSD
november 2020
simpleOfficial
v0.1.1
GPL
january 2018
smtOfficial
v2.10.0
BSD-3
November 27
solidpyOfficial
v0.1
-
september 2017
spearmintOfficial
v0.0.2
-
april 2019
spotpyOfficial
v1.6.6
MIT
may
ssb-optimizeOfficial
v0.1.3
BSD
october 2019
swarm-cgOfficial
v1.2.5
MIT
february 2021
swarmlibOfficial
v0.14.1
BSD 3-Clause License
swarmpackagepyOfficial
v1.0.0a5
none
tgoOfficial
v0.1
MIT
november 2017
timefoldOfficial
v1.24.0b0
Apache License Version 2.0
December 1
turbo-NeurIPSOfficial
january 2021
turboOfficial
v0.5.1
Apache-2.0
february 2020
ultraoptOfficial
v0.1.1
BSD
january 2021
yaboxOfficial
v1.1.0
Apache License 2.0
december 2022
zoofsOfficial
v0.1.26
Apache License 2.0
february 2023
zooptOfficial
v0.4.2
MIT License
june 2022

MOP Packages

PackageLinkVersionLicenseLast commit
feloopyOfficial
v0.3.9
MIT
November 27
hexalyOfficial
moocoreOfficial
v0.1.10
LGPL-2.1-or-later
December 1
optunaOfficial
v4.6.0
MIT
November 28
parmooOfficial
v0.4.1
BSD 3-clause
august 2024
pyaugmeconOfficial
v1.0.8
MIT
february 2024
pydecisionOfficial
v4.8.7
GNU
november
pymooOfficial
v0.6.1.6
Apache-2.0
November 26
pymultiobjectiveOfficial
v1.5.7
GNU
may
timefoldOfficial
v1.24.0b0
Apache License Version 2.0
December 1

QPP Packages

PackageLinkVersionLicenseLast commit
dwave-optimizationOfficial
v0.6.9
Apache-2.0
November 28
qiskit-optimizationOfficial
v0.0.1
-
september 2024
qiskit-optimizationOfficial
v0.7.0
Apache-2.0
november

PSP Packages

PackageLinkVersionLicenseLast commit
feloopyOfficial
v0.3.9
MIT
November 27
gurobi-optimodsOfficial
v3.0.0
Apache-2.0
November 25
idinnOfficial
v0.2.0.post1
MIT
september
optimization-algorithmsOfficial
july 2021
pyvroomOfficial
v1.14.0
BSD 2-Clause License
march
pyvrpOfficial
November 28
qubotsOfficial
august
routeoptOfficial--
october
spoptOfficial
v0.7.0
BSD 3-Clause
November 28

DWP Packages

BenchmarkLinkVersionLicenseLast commit
feloopyOfficial
v0.3.9
MIT
November 27
nextmv-pyOfficial
-
-
November 26
nextpipeOfficial
v0.4.0
-
november

UP Packages

BenchmarkLinkVersionLicenseLast commit
feloopyOfficial
v0.3.9
MIT
November 27
insideopt-seekerOfficial
v0.1.24
-
-
ropyOfficial--
march 2022
rsomeOfficial
v1.3.1
GPL-3.0
november 2024

Benchmarking Packages

BenchmarkLinkVersionLicenseLast commit
benchoptOfficial
v1.7.0
BSD (3-clause)
november
feloopyOfficial
v0.3.9
MIT
November 27
humpdayOfficial
v0.7.1
MIT
february
pycutestOfficial
v1.7.2
GPL-3.0-or-later
july
qubotsOfficial
v1.1.6
Apache-2.0
august
MittelmannOfficial

Short replies get read more often.
© 2022–2025 FelooPy | All Rights Reserved.