Skip to content

Classpi/BIPNN-Learning-to-Solve-Binary-Integer-Programming-via-Hypergraph-Neural-Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BIPNN: Learning to Solve Binary Integer Programming via Hypergraph Neural Networks

This repository is the official implementation of BIPNN: Learning to Solve Binary Integer Programming via Hypergraph Neural Networks

alt text

Requirements

To install requirements, you need anaconda or miniconda and run:

conda env create -f environment.yaml

Run code

We provide a beautiful notebook file example/desc.ipynb that combines code to restate our work in the paper and reproduces some experimental results for your reference, You can either just browse it using jupyter or try to re-run it even if it already contains all the results.

In addition, we have provided some experiments in the test/ folder

Project directory structure

📦src
 ┣ 📂maxcut
 ┃ ┣ 📜__init__.py
 ┃ ┣ 📜loss.py
 ┃ ┗ 📜utils.py
 ┣ 📜__init__.py
 ┣ 📜constraints.py
 ┣ 📜core.py
 ┣ 📜loss.py
 ┣ 📜models.py
 ┣ 📜train.py
 ┗ 📜utils.py

Results

The Effectiveness of BIPNN’s Hypergraph Generation Mechanism:

alt text

Comparison with Linearization-based BIP Solvers for Hypergraph maxcut problems:

alt text

Conversion algorithm

alt text

Annealing Strategy

alt text

About

Code repository for the paper "BIPNN: Learning to Solve Binary Integer Programming via Hypergraph Neural Networks"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published