Skip to content

Latest commit

 

History

History
57 lines (46 loc) · 3.38 KB

intro.rst

File metadata and controls

57 lines (46 loc) · 3.38 KB

Introduction

The Python-MIP package provides tools for modeling and solving Mixed-Integer Linear Programming Problems (MIPs) [Wols98]_ in Python. The default installation includes the COIN-OR Linear Programming Solver - CLP, which is currently the fastest open source linear programming solver and the COIN-OR Branch-and-Cut solver - CBC, a highly configurable MIP solver. It also works with the state-of-the-art Gurobi MIP solver. Python-MIP was written in modern, typed Python and works with the fast just-in-time Python compiler Pypy.

In the modeling layer, models can be written very concisely, as in high-level mathematical programming languages such as MathProg. Modeling examples for some applications can be viewed in :ref:`Chapter 4 <chapExamples>`.

Python-MIP eases the development of high-performance MIP based solvers for custom applications by providing a tight integration with the branch-and-cut algorithms of the supported solvers. Strong formulations with an exponential number of constraints can be handled by the inclusion of :ref:`Cut Generators <cut-generation-label>` and :ref:`Lazy Constraints <lazy-constraints-label>`. Heuristics can be integrated for :ref:`providing initial feasible solutions <mipstart-label>` to the MIP solver. These features can be used in both solver engines, CBC and GUROBI, without changing a single line of code.

This document is organized as follows: in the :ref:`next Chapter <chapInstall>` installation and configuration instructions for different platforms are presented. In :ref:`Chapter 3 <chapQuick>` an overview of some common model creation and optimization code included. Commented examples are included in :ref:`Chapter 4 <chapExamples>`. :ref:`Chapter 5 <chapCustom>` includes some common solver customizations that can be done to improve the performance of application specific solvers. Finally, the detailed reference information for the main classes is included in :ref:`Chapter 6 <chapClasses>`.

Releases and Source Code

Python-MIP's source code is available at GitHub on (github.com/coin-or/python-mip). Releases may be downloaded/installed via PIP (see :ref:`next Chapter <chapInstall>`) or from our GitHub Releases page.

Getting help

Questions, suggestions and feature request can be posted in our GitHub Discussions page.

Acknowledgments

We would like to thank for the support of the Combinatorial Optimization and Decision Support (CODeS) research group in KU Leuven through the senior research fellowship of Prof. Haroldo in 2018-2019, CNPq "Produtividade em Pesquisa" grant, FAPEMIG and the GOAL research group in the Computing Department of UFOP.