Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs
Lecture Notes in Computer Science
We report on experiments with turning the branch-priceand-cut framework SCIP into a generic branch-price-and-cut solver. That is, given a mixed integer program (MIP), our code performs a Dantzig-Wolfe decomposition according to the user's specification, and solves the resulting re-formulation via branch-and-price. We take care of the column generation subproblems which are solved as MIPs themselves, branch and cut on the original variables (when this is appropriate), aggregate identical
... ems, etc. The charm of building on a well-maintained framework lies in avoiding to re-implement state-of-the-art MIP solving features like pseudo-cost branching, preprocessing, domain propagation, primal heuristics, cutting plane separation etc. Mixed integer rounding cuts applied: 65 Dantzig-Wolfe decomposition performed (3 subproblems) While one may be sceptical about such a complete automatism (it requires at least detecting decomposable structures, and deciding how to best exploit them), a publicly available generic implementation which requires only a little user interaction is rather a matter of months than years from now. Our work is a contribution to this aim. Related Work. There are several frameworks which support the implementation of branch-and-price algorithms like ABACUS , BCP , and MINTO , to name only a few. We restrict attention to (non-commercial) codes which perform a Dantzig-Wolfe decomposition of a general (mixed) integer program, and handle the resulting column generation subproblems in a generic way. François Vanderbeck has been developing important features [16, 18, 19, 20] for his own implementation called BaPCod  which is a "prototype code that solves mixed integer programs (MIPs) by application of a Dantzig-Wolfe reformulation technique." Also the COIN-OR initiative (www.coin-or.org) hosts a generic decomposition code, called DIP  (formerly known as DECOMP), which is a "framework for implementing a variety of decomposition-based branch-and-bound algorithms for solving mixed integer linear programs" as described in  . The constraint programming G12 project develops "user-controlled mappings from a high-level model to different solving methods," one of which is branch-and-price . As of this writing, among these projects (including ours), only DIP is open to the public (as trunk development, there is no release yet).