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 branchand-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.
IntroductionMixed-integer linear programming is an optimization paradigm with applications as varied as airline scheduling [4], CPU management [26], auction design [1] and industrial process scheduling [14]. Modern solvers rely on the branch-and-bound (B&B) algorithm, which recursively divides the search space into a tree, solving relaxations of the problem until an integral solution is found and proven optimal [25]. Throughout this procedure, numerous decisions must be repeatedly made, such as the choice of the variable on which to branch or the choice of primal heuristics to run at every node. These decisions often dramatically impact final performance yet are still poorly understood [3]. Traditionally, these would be made according to hard-coded expert heuristics implemented in solvers. Recently, however, there has been a surge of interest in using machine learning methods to learn such heuristics [5], in particular for variable selection [17,19,36,27,13].Despite this success, other critical branch-and-bound decision tasks remain poorly studied. One of the most important is the node comparison problem. Throughout solving, the algorithm must repeatedly select the next node to subdivide, a task known as node selection. It maintains a priority list of the open nodes, ordered according to a node comparison function. This list is then used to select the next node to subdivide, either by simply choosing the highest-ranked node or through some more complex paradigm. Interestingly, a few works have proposed to use machine learning methods to derive node comparison functions [22,33,35]. This is particularly promising since the problem is naturally amenable to statistical learning methods. However, despite promising results, challenges hinder progress in this area. Most prominently, it is unclear how to represent nodes, which can vary in the number of variables and constraints. Existing approaches have so far relied on fixed-dimensional representations that necessarily lose information.In this paper, inspired by work on the related problem of variable selection in branch and bound [...