Home

Awesome

Predict and search framework

Repository for A GNN-Guided Predict-and-Search Framework for Mixed-Integer Linear Programming.

Requirements

Linux

–python 3.8.13

–pytorch 1.10.2

–cudatoolkit 11.3

–pyscipopt 4.2

–gurobipy 9.5.2

–pyg 2.0.4

Installation

Create a new environment with Conda

conda env create -f py38.yaml

conda activate pytest

Repository structure


dataset                 //training data, generated by gurobi.py(data generate scripts)

instance

​	–train                 //training and evaluation instances 

​	–test                  //test instances

logs                    //all test logs

models                 //trained model,  used to test model performance

pretrain                // training model folder will be saved here

Data generation

the Independent Set (IS) instance and the Combinatorial Auction (CA) instance use Ecole library to generate.

the Balanced Item Placement (denoted by IP) instance and the Workload Appointment (denoted by WA) instance come from the ML4CO 2021 competition generator.

Place the generated instances in the instance folder

python gurobi.py

The corresponding bipartite graph(BG) and solution will be automatically generated in the dataset folder.

Train

Select the parameter TaskName in trainPredictModel.py, and then

python trainPredictModel.py

Test

Put the trained model into the models folder, then

python PredictAndSearch_SCIP.py

python PredictAndSearch_GRB.py

python FixingStrategy_SCIP.py

all solver logs will be saved in logs folder.