Skip to content
Stefan Vigerske edited this page Feb 27, 2019 · 2 revisions

DipPy is a Python-based modeling language that provides a simple interface to DIP, a framework for implementing a variety of decomposition-based branch-and-bound algorithms for solving mixed integer linear programs). DipPy is an extension of PuLP (Python library for modeling linear and integer programs) that allows users to specify decompositions and customize the branching, cut generation, and column generation of DIP, from within a PuLP model. This interface greatly simplifies both the problem definition and the customization of the framework using that problem definition.

License: EPL

Authors: Michael O'Sullivan


WARNING Dippy documentation is currently under revision due to Dippy being moved into DIP. These links will most likely provide out-of-date documentation until "sometime soon."

  • An online version of the compiled HTML documentation from the Dippy repository is available here.
  • Dippy -- a simplified interface for advanced mixed-integer programming, Michael O'Sullivan, Qi-Shan Lim, Cameron Walker, Iain Dunning, Stuart Mitchell. Report 685, University of Auckland Faculty of Engineering, Auckland, New Zealand, February 2011. Available on Optimization Online.

Getting DipPy

The source for DipPy comes with DIP itself now and can be found in the Dip/src/dippy directory. DipPy has only been built and tested with Python 2.7. It may be possible to make it work with Python 3, but this would undoubtedly require some work.

On Python 2.7, to obtain/install binaries:

  • Windows, coinor.dippy only: Install using easy_install -U coinor.dippy. You will need Python to be installed and to have ez_setup installed, see [].

  • Windows, coinor.dippy, coinor.gimpy, and xdot visualisation tool (instructions @ 2017/10/24): It is easiest to gather the necessary files and then use an install script. You need to have administrator privileges.

    • Create an installation folder

    • Download the Windows x86 MSI installer (32-bit) Python 2.7.11 installer from [] and save it to the installation folder.

    • Download the GraphViz 2.38 installer from [] and save it to the installation folder.

    • Download [] and extract it to your installation folder.

    • After downloading and extracting files the contents of your installation folder should be as follows:

      ![](install-folder-contents.png, 250px)

    • Follow the instructions in README.txt.

      • You can use other versions of Python 2.7, but you will need to edit install.cmd (from accordingly. Also, Gimpy only works with 32-bit Python 2.7.
  • OS X and Linux: It is easiest to build DipPy yourself.

  • Download, build, and install DIP, as described on the DIP wiki.

  • Set the environment variable COIN_INSTALL_DIR to point to the installation directory for DIP (in bash export COIN_INSTALL_DIR=/path/to/install).

  • Execute python install in the subdirectory Dip/ of the DIP source tree.

  • You may need to set your library path to point to the installation directory of libDecomp

    • In Linux with bash: export LD_LIBRARY_PATH=/path/to/install/lib.
    • In OS X with bash: export DYLD_LIBRARY_PATH=/path/to/install/lib.
  • This last step can usually be avoided by building DIP statically (configure with --enable-static --disable-shared).


Clone this wiki locally