Home

Awesome

Learning Cut Selection for Mixed-Integer Linear Programming via Hierarchical Sequence Model

This is the code of Learning Cut Selection for Mixed-Integer Linear Programming via Hierarchical Sequence Model. Zhihai Wang, Xijun Li, Jie Wang, Yufei Kuang, Mingxuan Yuan, Jia Zeng, Yongdong Zhang, Feng Wu. ICLR 2023. [link]

Environmental requirements

Quick Start

After the environment and dataset are ready, execute the following code to begin training and periodically test the training model performance

python parallel_reinforce_algorithm.py --config_file configs/easy_setcover_config.json --sel_cuts_percent 0.2 --reward_type solving_time --instance_type easy_setcover --time_limit 300 --train_type train --use_cutsel_percent_policy True --policy_type no_token --scip_seed 1

Script description

Random fact Sheet

There are two sources of code randomness. One is the randomness of the algorithm inside the solver, which can be fixed by setting the scip_seed parameter. The second is the random module in Python and the random module in Pytorch, which can be uniformly set by setting the seed parameter.

Datasets

We have released our datasets in https://drive.google.com/drive/folders/1LXLZ8vq3L7v00XH-Tx3U6hiTJ79sCzxY?usp=sharing

Citation

If you find this code useful, please consider citing the following paper.

@inproceedings{
wang2023learning,
title={Learning Cut Selection for Mixed-Integer Linear Programming via Hierarchical Sequence Model},
author={Zhihai Wang and Xijun Li and Jie Wang and Yufei Kuang and Mingxuan Yuan and Jia Zeng and Yongdong Zhang and Feng Wu},
booktitle={International Conference on Learning Representations},
year={2023},
url={https://openreview.net/forum?id=Zob4P9bRNcK}
}

Remarks

We will release our data reported in our paper soon.