Share your thoughts, 1 month free Claude Pro on usSee more
WorkDL logo mark

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.

Prateek Gupta, Maxime Gasse, Elias B. Khalil, M. Pawan Kumar, Andrea Lodi, Yoshua Bengio• 2020

Related benchmarks

TaskDatasetResultRank
Mixed Integer Linear Programming SolvingSet Covering 1000x500 (Easy)
Search Nodes146.2
13
Integer Programming BranchingSetcover Medium
Time40.18
9
Integer Programming BranchingCauctions Medium
Time14.38
9
Integer Programming BranchingIndset (Easy)
Time12.6
9
Integer Programming BranchingSetcover Hard
Time1.04e+3
9
Integer Programming BranchingFacilities Medium
Time (s)123.5
9
Integer Programming BranchingFacilities (Hard)
Time602.8
9
Integer Programming BranchingIndset Medium
Time112.5
9
Integer Programming BranchingIndset (Hard)
Time2.66e+3
9
Integer Programming BranchingCauctions Easy
Time1.2
9
Showing 10 of 14 rows

Other info

Follow for update