Solving Mixed Integer Programs Using Neural Networks

Mixed Integer Programming (MIP) solvers rely on an array of sophisticated heuristics developed with decades of research to solve large-scale MIP instances encountered in practice. Machine learning offers to automatically construct better heuristics from data by exploiting shared structure among instances in the data. This paper applies learning to the two key sub-tasks of a MIP solver, generating a high-quality joint variable assignment, and bounding the gap in objective value between that assignment and an optimal one. Our approach constructs two corresponding neural network-based components, Neural Diving and Neural Branching, to use in a base MIP solver such as SCIP. Neural Diving learns a deep neural network to generate multiple partial assignments for its integer variables, and the resulting smaller MIPs for un-assigned variables are solved with SCIP to construct high quality joint assignments. Neural Branching learns a deep neural network to make variable selection decisions in branch-and-bound to bound the objective value gap with a small tree. This is done by imitating a new variant of Full Strong Branching we propose that scales to large instances using GPUs. We evaluate our approach on diverse real-world datasets, including two Google production datasets and MIPLIB, by training separate neural networks on each. Most instances in all the datasets combined have 10− 10 variables and constraints after presolve, which is significantly larger than previous learning approaches. Comparing solvers with respect to primal-dual gap averaged over a held-out set of instances at large time limits, the learning-augmented SCIP achieves 1.5×, 2×, and 10× better gap on three out of the five datasets with the largest MIPs, achieves a 10% gap 5× faster on a fourth one, and matches SCIP on the fifth. To the best of our knowledge, ours is the first learning approach to demonstrate such large improvements over SCIP on both large-scale real-world application datasets and MIPLIB.

[1]  Jian Sun,et al.  Deep Residual Learning for Image Recognition , 2015, 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

[2]  Max Welling,et al.  Auto-Encoding Variational Bayes , 2013, ICLR.

[3]  Feng Qiu,et al.  Learning to Solve Large-Scale Security-Constrained Unit Commitment Problems , 2019, INFORMS J. Comput..

[4]  Stephen P. Boyd,et al.  Conic Optimization via Operator Splitting and Homogeneous Self-Dual Embedding , 2013, Journal of Optimization Theory and Applications.

[5]  Nesa L'abbe Wu,et al.  Linear programming and extensions , 1981 .

[6]  P. Lions,et al.  Splitting Algorithms for the Sum of Two Nonlinear Operators , 1979 .

[7]  Yuri Malitsky,et al.  Model-Based Genetic Algorithms for Algorithm Configuration , 2015, IJCAI.

[8]  Kevin Leyton-Brown,et al.  Algorithm runtime prediction: Methods & evaluation , 2012, Artif. Intell..

[9]  Timo Berthold,et al.  RENS - Relaxation Enforced Neighborhood Search , 2007 .

[10]  Robert Schwarz,et al.  PySCIPOpt: Mathematical Programming in Python with the SCIP Optimization Suite , 2016, ICMS.

[11]  Lawrence V. Snyder,et al.  Reinforcement Learning for Solving the Vehicle Routing Problem , 2018, NeurIPS.

[12]  Richard M. Karp,et al.  Reducibility Among Combinatorial Problems , 1972, 50 Years of Integer Programming.

[13]  He He,et al.  Learning to Search in Branch and Bound Algorithms , 2014, NIPS.

[14]  Ravichandra Addanki Neural Large Neighborhood Search , 2020 .

[15]  Jimmy Ba,et al.  Adam: A Method for Stochastic Optimization , 2014, ICLR.

[16]  Ailsa H. Land,et al.  An Automatic Method of Solving Discrete Programming Problems , 1960 .

[17]  Thorsten Koch,et al.  Konrad-zuse-zentrum F ¨ Ur Informationstechnik Berlin Miplib 2003 , 2022 .

[18]  Christoph Schubert,et al.  Multi-Level Lookahead Branching , 2017 .

[19]  Russ Tedrake,et al.  Evaluating Robustness of Neural Networks with Mixed Integer Programming , 2017, ICLR.

[20]  Max Welling,et al.  Attention, Learn to Solve Routing Problems! , 2018, ICLR.

[21]  E. L. Lawler,et al.  Branch-and-Bound Methods: A Survey , 1966, Oper. Res..

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

[23]  Guigang Zhang,et al.  Deep Learning , 2016, Int. J. Semantic Comput..

[24]  Chih-Hong Cheng,et al.  Maximum Resilience of Artificial Neural Networks , 2017, ATVA.

[25]  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.

[26]  Geoffrey J. Gordon,et al.  A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning , 2010, AISTATS.

[27]  Timo Berthold Primal Heuristics for Mixed Integer Programs , 2006 .

[28]  Timo Berthold,et al.  Measuring the impact of primal heuristics , 2013, Oper. Res. Lett..

[29]  Pierre Hansen,et al.  Variable Neighborhood Search , 2018, Handbook of Heuristics.

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

[31]  Jean-Paul Watson,et al.  On Mixed-Integer Programming Formulations for the Unit Commitment Problem , 2020, INFORMS J. Comput..

[32]  Stephen P. Boyd,et al.  CVXPY: A Python-Embedded Modeling Language for Convex Optimization , 2016, J. Mach. Learn. Res..

[33]  Samy Bengio,et al.  Modeling High-Dimensional Discrete Data with Multi-Layer Neural Networks , 1999, NIPS.

[34]  Yoshua Bengio,et al.  Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon , 2018, Eur. J. Oper. Res..

[35]  Zhuwen Li,et al.  Combinatorial Optimization with Graph Convolutional Networks and Guided Tree Search , 2018, NeurIPS.

[36]  Dimitri P. Bertsekas,et al.  On the Douglas—Rachford splitting method and the proximal point algorithm for maximal monotone operators , 1992, Math. Program..

[37]  Dean Pomerleau,et al.  ALVINN, an autonomous land vehicle in a neural network , 2015 .

[38]  Carlos Ansótegui,et al.  A Gender-Based Genetic Algorithm for the Automatic Configuration of Algorithms , 2009, CP.

[39]  Paul Shaw,et al.  Using Constraint Programming and Local Search Methods to Solve Vehicle Routing Problems , 1998, CP.

[40]  Ran El-Yaniv,et al.  SelectiveNet: A Deep Neural Network with an Integrated Reject Option , 2019, ICML.

[41]  Jonathan Eckstein,et al.  Pivot, Cut, and Dive: a heuristic for 0-1 mixed integer programming , 2007, J. Heuristics.

[42]  Paritosh K. Pandya,et al.  Automated Technology for Verification and Analysis , 2012, Lecture Notes in Computer Science.

[43]  Yori Zwols,et al.  Linear and integer optimization: Theory and practice , 2015 .

[44]  Maria-Florina Balcan,et al.  Learning to Branch , 2018, ICML.

[45]  Natashia Boland,et al.  Learning generalized strong branching for set covering, set packing, and 0-1 knapsack problems , 2022, Eur. J. Oper. Res..

[46]  Ah Chung Tsoi,et al.  The Graph Neural Network Model , 2009, IEEE Transactions on Neural Networks.

[47]  G. Nemhauser,et al.  Integer Programming , 2020 .

[48]  Ashish Sabharwal,et al.  Connections in Networks: Hardness of Feasibility Versus Optimality , 2007, CPAIOR.

[49]  George L. Nemhauser,et al.  Learning to Run Heuristics in Tree Search , 2017, IJCAI.

[50]  Yisong Yue,et al.  A General Large Neighborhood Search Framework for Solving Integer Programs , 2020, ArXiv.

[51]  Andrea Lodi,et al.  Performance Variability in Mixed-Integer Programming , 2013 .

[52]  Le Song,et al.  Accelerating Primal Solution Findings for Mixed Integer Programs Based on Solution Prediction , 2019, AAAI.

[53]  Kevin Tierney,et al.  Neural Large Neighborhood Search for the Capacitated Vehicle Routing Problem , 2020, ECAI.

[54]  Pierre Hansen,et al.  Variable neighbourhood search: methods and applications , 2010, Ann. Oper. Res..

[55]  Andrea Lodi,et al.  Exact Combinatorial Optimization with Graph Convolutional Neural Networks , 2019, NeurIPS.

[56]  Thorsten Koch,et al.  Branching rules revisited , 2005, Oper. Res. Lett..

[57]  David L. Dill,et al.  Learning a SAT Solver from Single-Bit Supervision , 2018, ICLR.

[58]  Yoshua Bengio,et al.  Hybrid Models for Learning to Branch , 2020, NeurIPS.

[59]  Yunhao Tang,et al.  Reinforcement Learning for Integer Programming: Learning to Cut , 2019, ICML.

[60]  Yoshua Bengio,et al.  Parameterizing Branch-and-Bound Search Trees to Learn Branching Policies , 2020, AAAI.

[61]  Max Welling,et al.  Semi-Supervised Classification with Graph Convolutional Networks , 2016, ICLR.

[62]  Jeff T. Linderoth,et al.  Lookahead Branching for Mixed Integer Programming , 2011, ICS 2011.

[63]  Ken-ichi Kawarabayashi,et al.  Representation Learning on Graphs with Jumping Knowledge Networks , 2018, ICML.

[64]  Le Song,et al.  2 Common Formulation for Greedy Algorithms on Graphs , 2018 .

[65]  Timo Berthold,et al.  MIPLIB 2017: data-driven compilation of the 6th mixed-integer programming library , 2021, Mathematical Programming Computation.

[66]  M. Jünger,et al.  50 Years of Integer Programming 1958-2008 - From the Early Years to the State-of-the-Art , 2010 .

[67]  Lars Kotthoff,et al.  Algorithm Selection for Combinatorial Search Problems: A Survey , 2012, AI Mag..

[68]  Brendan O'Donoghue,et al.  Operator splitting for a homogeneous embedding of the monotone linear complementarity problem , 2020 .

[69]  Stephen P. Boyd,et al.  Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers , 2011, Found. Trends Mach. Learn..

[70]  Kevin Leyton-Brown,et al.  Sequential Model-Based Optimization for General Algorithm Configuration , 2011, LION.

[71]  Richard S. Sutton,et al.  Learning Instance-Independent Value Functions to Enhance Local Search , 1998, NIPS.

[72]  Jürgen Schmidhuber,et al.  Long Short-Term Memory , 1997, Neural Computation.

[73]  Andrew W. Moore,et al.  Using Prediction to Improve Combinatorial Optimization Search , 2007 .

[74]  Wei Zhang,et al.  A Reinforcement Learning Approach to job-shop Scheduling , 1995, IJCAI.

[75]  Thorsten Koch,et al.  ParaSCIP: A Parallel Extension of SCIP , 2010, CHPC.

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

[77]  Hamdy A. Taha,et al.  Integer Programming: Theory, Applications, and Computations , 1975 .

[78]  Ashish Sabharwal,et al.  Connections in Networks: A Hybrid Approach , 2008, CPAIOR.

[79]  Razvan Pascanu,et al.  Relational inductive biases, deep learning, and graph networks , 2018, ArXiv.

[80]  Claude Sammut,et al.  A Framework for Behavioural Cloning , 1995, Machine Intelligence 15.

[81]  Christopher M. Bishop,et al.  Pattern Recognition and Machine Learning, 2006 , 2012 .

[82]  Stephen P. Boyd,et al.  ECOS: An SOCP solver for embedded systems , 2013, 2013 European Control Conference (ECC).