Python-MIP is a collection of Python tools for the modeling and solution of Mixed-Integer Linear
programs (MIPs). Its syntax was inspired by Pulp, but our package also provides access to advanced
solver features like cut generation, lazy constraints,
MIP starts and solution pools.
Porting Pulp and Gurobi models should be quite easy.
Python-MIP calls directly the native dynamic loadable library of the installed solver using cffi. Models are efficiently stored and optimized by the solver and all communication with your Python code is handled transparently.
Currently integrated with the C libraries of COIN-OR CBC solver and the commercial solver Gurobi. Other solvers will be supported soon.
The Python-MIP package comes pre-installed with CBC binaries for most used operational systems (Windows, MacOS and Linux). Super easy to run!
Creation of large MIPs is up to 25 times faster than the official Gurobi python interface (which only runs on CPython).
Ease of use
Python-MIP is an intuitive high level modeling tool. Operator overloading makes it straightforward to write linear expressions.Read the documentation
Yes, high performance with Python! Integration with C code and compatibility with PyPy compiler results in very fast model generation.Read the documentation
Australian Red Cross Lifeblood
Thanks for building such a great package – we’re using it to optimise how we collect 1.5M annual blood donations across Australia. Your toolkit is helping save lives on the other side of the planet!
Contact our Team
Python-MIP is a project developed and maintained mainly by two Brazilian professors working at the Department of Computing of the Federal University of Ouro Preto (UFOP). In 2019 the project became part of COIN-OR.
Public discussion forum: Python-MIP google group