Branch-and-bound approaches in integer programming require ordering portions of the space to explore next, a problem known as node comparison. We propose a new siamese graph neural network model to tackle this problem, where the nodes are represented as bipartite graphs with attributes. Similar to prior work, we train our model to imitate a diving oracle that plunges towards the optimal solution. We evaluate our method by solving the instances in a plain framework where the nodes are explored according to their rank. On three NP-hard benchmarks chosen to be particularly primal-difficult, our approach leads to faster solving and smaller branch- and-bound trees than the default ranking function of the open-source solver SCIP, as well as competing machine learning methods. Moreover, these results generalize to instances larger than used for training. Code for reproducing the experiments can be found at https://github.com/ds4dm/learn2comparenodes.
翻译:在整数编程中,分支和受约束的方法要求命令部分空间来探索下一个问题,即节点比较问题。我们提议了一个新的硅图形神经网络模型来解决这个问题,节点作为带有属性的双面图。与先前的工作类似,我们训练我们的模型来模仿跳水或触角,跳向最佳解决办法。我们通过在一个简单的框架内解决对节点进行根据其级别进行探索的事例来评估我们的方法。在选择特别原始困难的三个硬的NP基准上,我们的方法导致较开放源码求解器SCIP的默认排序功能更快的解决和较小分支和带宽的树木,以及相互竞争的机器学习方法。此外,这些结果还概括了比培训所使用的大的例子。在https://github.com/ds4dm/learn2comparenodes上可以找到复制实验的代码。