Skip to content

hzwer/NeurIPS2021-ML4CO-KIDA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

KIDA: Knowledge Inheritance in Dataset Aggregation

Zixuan Cao, Yang Xu, Zhewei Huang, Shuchang Zhou

This project releases our 1st place solution on NeurIPS2021 ML4CO Dual Task. The official competition report (including ours) is now on arXiv.

For this work, arXiv, Slide are available.

Environment Setup

Follow the tutorials of ml4co-competition to download ML4CO instance dataset and set up your Python dependencies. Suppose the directory of instance dataset is /YOUR_PATH/ml4co-competition/instances. The dependencies of KIDA can be found in ./Nuri/conda.yaml . Anaconda environment of ml4co can be created by source init.sh

Testing

Download model weights and put them in /YOUR_PATH/NeurIPS2021-ML4CO-KIDA/Nuri/ .

Copy the submission files to ml4co-competition directory.

cp -r /YOUR_PATH/NeurIPS2021-ML4CO-KIDA/Nuri/ /YOUR_PATH/ml4co-competition/submissions/

Evaluate models in dual task by running the following commands.

cd /YOUR_PATH/ml4co-competition/submissions/Nuri
conda activate ml4co
python ../../common/evaluate.py dual item_placement
python ../../common/evaluate.py dual load_balancing
python ../../common/evaluate.py dual anonymous

Training

Modify the configuration file in ./train_files/configs to meet the needs of the local environment.

./train_files/configs/dataset.ini is the configuration file for data generation process. DATASET_DIR decides the directory where the instance dataset is stored. STORE_DIR decides the directory where generated data is stored. NODE_RECORD_PROB decides the probability of using Strong Branching when collecting data. TIME_LIMIT decides the time limit for SCIP solver. POLICY_TYPE decides the model we use (0 for Item Placement Benchmark, 1 for Workload Apportionment Benchmark and 2 for Anonymous Benchmark).

./train_files/configs/train.ini is the configuration file for training process. STORE_DIR decides the directory where training files are stored (It must keep the same as STORE_DIR in dataset.ini). TRAIN_NUM and VALID_NUM decide the number of data used in training process for each epoch.

Then, run the following commands to train the model.

cd /YOUR_PATH/NeurIPS2021-ML4CO-KIDA/train_files
# Train Item Placement Benchmark
source item.sh
# Train Workload Apportionment Benchmark 
source load.sh
# Train Anonymous Benchmark
source ano.sh

Citation

@article{cao2022ml4co,
  title={ML4CO-KIDA: Knowledge Inheritance in Dataset Aggregation},
  author={Cao, Zixuan and Xu, Yang and Huang, Zhewei and Zhou, Shuchang},
  journal={arXiv preprint arXiv:2201.10328},
  year={2022}
}

@inproceedings{gasse2022machine,
  title={The Machine Learning for Combinatorial Optimization Competition (ML4CO): Results and Insights},
  author={Gasse, Maxime and Bowly, Simon and Cappart, Quentin and Charfreitag, Jonas and Charlin, Laurent and Ch{\'e}telat, Didier and Chmiela, Antonia and Dumouchelle, Justin and Gleixner, Ambros and Kazachkov, Aleksandr M and others},
  booktitle={NeurIPS 2021 Competitions and Demonstrations Track},
  pages={220--231},
  year={2022},
  organization={PMLR}
}

Resouces

About

1st Solution For NeurIPS 2021 Competition on ML4CO Dual Task

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published