Skip to content
Collection of Python tools for the modeling and solution of Mixed-Integer Linear programs
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.coin-or
.idea
docs
examples
mip
scripts
.gitignore
.project
.pydevproject
LICENSE
README.md
TODO
setup.py

README.md

Python MIP (Mixed-Integer Linear Programming) Tools

Python MIP is a collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs). MIP syntax was inspired by Pulp. Just like CyLP it also provides access to advanced solver features like cut generation, MIPstarts and solution Pools. Porting Pulp and Gurobi models should be quite easy.

Some of the main features of MIP are:

  • high level modeling: write your MIP models in Python as easily as in high level languages such as MathProg: operator overloading makes it easy to write linear expressions in Python;

  • full featured:

    • cut generation: write your cut generator in Python and integrate it into the Branch-and-Cut search;
    • solution pool: query the elite set of solutions found during the search;
    • mipstart: use a problem dependent heuristic to generate initial feasible solutions for the MIP search;
  • fast: the Python MIP package calls directly the native dynamic loadable library of the installed solver using the modern python ctypes module; models are efficiently stored and optimized by the solver and MIP transparently handles all communication with your Python code; it is also compatible with the Pypy just in time compiler, meaning that you can have a much better performance than the official Gurobi python interface (which is incompatible with Pypy);

  • multi solver: Python MIP was written to be deeply integrated with the C libraries of the open-source COIN-OR Branch-&-Cut CBC solver and the commercial solver Gurobi; the design is solver independent and more solvers may be supported in the future but right now the priority is to support as much as possible all features of these solvers;

  • completely written in modern statically typed Python 3 (requires Python 3.5 or newer).

Documentation

The Documentation for Python-MIP is available at: https://python-mip.readthedocs.io/en/latest/

A PDF version is also available: https://media.readthedocs.org/pdf/python-mip/latest/python-mip.pdf

You can’t perform that action at this time.