Abstract

Implementations of the Simplex method dier only in very specic aspects such as the pivot rule. Similarly, most relaxation methods for mixed-integer programming dier only in the type of cuts and the exploration of the search tree. Implementing instances of those frame- works would therefore be more ecient if linear and mixed-integer pro- gramming solvers let users customize such aspects easily. We provide a scripting mechanism to easily implement and experiment with pivot rules for the Simplex method by building upon COIN-OR's open-source linear programming package CLP. Our mechanism enables users to implement pivot rules in the Python scripting language without explicitly interact- ing with the underlying C++ layers of CLP. In the same manner, it allows users to customize the solution process while solving mixed-integer linear programs using the CBC and CGL COIN-OR packages. The Cython pro- gramming language ensures communication between Python and COIN- OR libraries and activates user-dened customizations as callbacks. For illustration, we provide an implementation of a well-known pivot rule as well as the positive edge rule|a new rule that is particularly ecient on degenerate problems, and demonstrate how to customize branch-and-cut node selection in the solution of a mixed-integer program.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call