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 six 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^3-10^6$ 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, the learning-augmented SCIP is 2x to 10x better on all datasets except one on which it is $10^5$x better, at large time limits. 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.
翻译:混合 Interger 程序( MIP) 解析器依靠一系列精密的精密螺旋, 并经过数十年的研究, 解决在实际中遇到的大型 MIP 案例。 机器学习提供通过在数据中利用共享结构自动从数据中自动构建更好的螺旋体。 本文将学习应用到 MIP 解析器的两个关键子任务, 产生高质量的联合变量任务, 并缩小该任务和最佳任务之间在客观值上的差距。 我们的方法构建了两个对应的神经网络基于网络的组件, 神经分流和神经分流分流, 用来在像 SCIP 这样的基础 MIP 解算法中使用更大的 。 神经分流学会了两个相应的神经分流, 神经分流学可以模仿一个更强大的智能的元分流系统 。 神经分流学会了我们两个不同的变数, 包括GPODO 数据, 以一个大的比GOIF 数据 的大小的缩算法 。