OR Libraries for Python
Some useful (and maintained) libraries for doing Operations Research in Python.
Google OR-Tools
OR-Tools is an open source software suite for optimization, tuned for tackling the world’s toughest problems in vehicle routing, flows, integer and linear programming, and constraint programming.
- Routing library on top of CP.
- CP-SAT Solver (Lazy Clause Generation combining SAT, CP, MIP and LNS)
- GLOP (simplex solver)
- BOP (boolean linear solver)
- Interface for third party solvers: CoinOR, SCIP, CPLEX, Gurobi, XPress
CVXPY
CVXPY is a Python-embedded modeling language for convex optimization problems.
Pyomo
Pyomo is a Python-based, open-source optimization modeling language.
PuLP
PuLP is an LP modeler written in Python. PuLP can generate MPS or LP files and call GLPK, COIN-OR CLP/CBC, CPLEX, GUROBI, MOSEK, XPRESS, CHOCO, MIPCL, SCIP to solve linear problems.
DEAP
DEAP is a novel evolutionary computation framework for rapid prototyping and testing of ideas.
PySwarms
PySwarms is an extensible research toolkit for particle swarm optimization (PSO) in Python.
skopt
Simple and efficient library to minimize (very) expensive and noisy black-box functions. It implements several methods for sequential model-based optimization.
BayesianOptimization
Pure Python implementation of bayesian global optimization with gaussian processes.
Hyperparameter optimization
Simulation
Other
- pandas, numpy: data processing
- SciPy: includes modules for statistics, optimization and more.
- networkx: graph and network algorithms
- osmnx: spatial data
Related Links
- https://or.stackexchange.com/questions/3952/are-python-and-julia-used-for-optimization-in-industry/
- https://or.stackexchange.com/questions/5485/python-for-or-which-non-solver-libraries-do-you-use
- https://or.stackexchange.com/questions/1504/what-is-the-purpose-of-libraries-like-pyomo-and-google-or-tools
- https://www.reddit.com/r/datascience/comments/cpyer5/bayesian_optimization_libraries_python/
Comments