Learning When to Use a Decomposition

Applying a Dantzig-Wolfe decomposition to a mixed-integer program (MIP) aims at exploiting an embedded model structure and can lead to significantly stronger reformulations of the MIP. Recently, automating the process and embedding it in standard MIP solvers have been proposed, with the detection of a decomposable model structure as key element. If the detected structure reflects the (usually unknown) actual structure of the MIP well, the solver may be much faster on the reformulated model than on the original. Otherwise, the solver may completely fail. We propose a supervised learning approach to decide whether or not a reformulation should be applied, and which decomposition to choose when several are possible. Preliminary experiments with a MIP solver equipped with this knowledge show a significant performance improvement on structured instances, with little deterioration on others.

[1]  Alberto Caprara,et al.  Uncommon Dantzig-Wolfe Reformulation for the Temporal Knapsack Problem , 2013, INFORMS J. Comput..

[2]  F. Hutter,et al.  Hydra-MIP : Automated Algorithm Configuration and Selection for Mixed Integer Programming , 2011 .

[3]  Alberto Ceselli,et al.  Automatic Dantzig–Wolfe reformulation of mixed integer programs , 2014, Mathematical Programming.

[4]  Yi Lin,et al.  Random Forests and Adaptive Nearest Neighbors , 2006 .

[5]  Louis Wehenkel,et al.  Machine Learning to Balance the Load in Parallel Branch-and-Bound , 2015 .

[6]  Marc G. Genton,et al.  Classes of Kernels for Machine Learning: A Statistics Perspective , 2002, J. Mach. Learn. Res..

[7]  Ted K. Ralphs,et al.  Computational Experience with Hypergraph-Based Methods for Automatic Decomposition in Discrete Optimization , 2013, CPAIOR.

[8]  Marco E. Lübbecke,et al.  Experiments with a Generic Dantzig-Wolfe Decomposition for Integer Programs , 2010, SEA.

[9]  Louis Wehenkel,et al.  A Machine Learning-Based Approximation of Strong Branching , 2017, INFORMS J. Comput..

[10]  Tobias Achterberg,et al.  SCIP: solving constraint integer programs , 2009, Math. Program. Comput..

[11]  Le Song,et al.  Learning to Branch in Mixed Integer Programming , 2016, AAAI.

[12]  Andrea Lodi,et al.  MIPLIB 2010 , 2011, Math. Program. Comput..

[13]  Gaël Varoquaux,et al.  Scikit-learn: Machine Learning in Python , 2011, J. Mach. Learn. Res..

[14]  Jean-Charles Régin,et al.  Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems , 2004, Lecture Notes in Computer Science.