Some useful (and maintained) libraries for doing Operations Research in Python.
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
Z3 is an efficient SMT solver with specialized algorithms for solving background theories.
Pure Python implementation of bayesian global optimization with gaussian processes.
DEAP is a novel evolutionary computation framework for rapid prototyping and testing of ideas.
CVXPY is a Python-embedded modeling language for convex optimization problems.
Simple and efficient library to minimize (very) expensive and noisy black-box functions. It implements several methods for sequential model-based optimization.
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.
Pyomo is a Python-based, open-source optimization modeling language.
PySwarms is an extensible research toolkit for particle swarm optimization (PSO) in Python.
- pandas, numpy: data processing
- SciPy: includes modules for statistics, optimization and more.
- networkx: graph and network algorithms
- osmnx: spatial data