Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs [chapter]

Gerald Gamrath, Marco E. Lübbecke
2010 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
more » ... 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 [7], BCP [13], and MINTO [9], 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 [17] 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 [12] (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 [11] . 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 [10]. As of this writing, among these projects (including ours), only DIP is open to the public (as trunk development, there is no release yet).
doi:10.1007/978-3-642-13193-6_21 fatcat:cfe5e2d4enar3brmryxqbnoaam