DipPy

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.