Hybrid Models for Learning to Branch
About
A recent Graph Neural Network (GNN) approach for learning to branch has been shown to successfully reduce the running time of branch-and-bound algorithms for Mixed Integer Linear Programming (MILP). While the GNN relies on a GPU for inference, MILP solvers are purely CPU-based. This severely limits its application as many practitioners may not have access to high-end GPUs. In this work, we ask two key questions. First, in a more realistic setting where only a CPU is available, is the GNN model still competitive? Second, can we devise an alternate computationally inexpensive model that retains the predictive power of the GNN architecture? We answer the first question in the negative, and address the second question by proposing a new hybrid architecture for efficient branching on CPU machines. The proposed architecture combines the expressive power of GNNs with computationally inexpensive multi-layer perceptrons (MLP) for branching. We evaluate our methods on four classes of MILP problems, and show that they lead to up to 26% reduction in solver running time compared to state-of-the-art methods without a GPU, while extrapolating to harder problems than it was trained on. The code for this project is publicly available at https://github.com/pg2455/Hybrid-learn2branch.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Mixed Integer Linear Programming Solving | Set Covering 1000x500 (Easy) | Search Nodes146.2 | 13 | |
| Integer Programming Branching | Setcover Medium | Time40.18 | 9 | |
| Integer Programming Branching | Cauctions Medium | Time14.38 | 9 | |
| Integer Programming Branching | Indset (Easy) | Time12.6 | 9 | |
| Integer Programming Branching | Setcover Hard | Time1.04e+3 | 9 | |
| Integer Programming Branching | Facilities Medium | Time (s)123.5 | 9 | |
| Integer Programming Branching | Facilities (Hard) | Time602.8 | 9 | |
| Integer Programming Branching | Indset Medium | Time112.5 | 9 | |
| Integer Programming Branching | Indset (Hard) | Time2.66e+3 | 9 | |
| Integer Programming Branching | Cauctions Easy | Time1.2 | 9 |