Skip to content

chendiqian/IPM_MPNN

Repository files navigation

IPM-GNN: Exploring the Power of Graph Neural Networks in Solving Linear Optimization Problems

arXiv

drawing

An overview of our IPM-MPNN

Environment setup

Simply install from the existing file conda env create -f environment.yml or install the required envs manually:

conda create -y -n ipmgnn python=3.10
conda activate ipmgnn
conda install pytorch==2.0.0  pytorch-cuda=11.8 -c pytorch -c nvidia
conda install pyg -c pyg
pip install https://data.pyg.org/whl/torch-2.0.0%2Bcu118/torch_scatter-2.1.1%2Bpt20cu118-cp310-cp310-linux_x86_64.whl
pip install https://data.pyg.org/whl/torch-2.0.0%2Bcu118/torch_sparse-0.6.17%2Bpt20cu118-cp310-cp310-linux_x86_64.whl
pip install ml-collections
pip install wandb

Reproduction of the results

Main results

See run/main.sh for the commands and hyperparameters. Note that the small and large instances of the same type share the same configs, unless otherwise stated.

If your GPU run out of memory on large instances, use the --micro_batch trick, which accumulates a few batches before updating the model params. You can set e.g. --micro_batch 2 --batchsize 4 which is in theory equivalent to --batchsize 8

Bipartite ablation

We provide bipartite graphs as ablation to our tripartite approach. Which can also be considered as the implementation of the baseline from this paper. See run/bipartite.sh.

ODE baseline

We compare our MPNN approach with the neural-ODE-inspired method. See run/ode.sh.

About

Repo for paper: Exploring the Power of Graph Neural Networks in Solving Linear Optimization Problems, accepted at AISTATS 2024

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors