COMBO
- Combinatorial Bayesian Optimizationusing the Graph Cartesian Product, Advances in neural information processing systems(NeurIPS), 2019
1. Set up
1. Set a conda virtual environment
conda create -n COMBO python=3.7 anaconda --yes
2. Clone the repository
git clone https://github.com/QUVA-Lab/COMBO.git
3. Install required packages
conda activate COMBO
conda install --file requirements.txt
2. Run
1. Consigure directories
All necessary directories can be configured in the file COMBO/config.py
2. Arguments
- --n_eval : The number of evaluations
- --objective : For reproducing, you can chooose one of ['branin', 'ising', 'contamination', 'pestcontrol', 'maxsat28', 'maxsat43', 'maxsat60', 'nasbinary']. For your own defined objectives, your objective function name should be given.
- --random_seed_config : Some objectives are generated by some random processes. In order to control it random seeds are given to determine random processes and initial input points for evaluations with which COMBO begin.
- --parallel : The acquisition function optimization in COMBO uses multiple initial points. This multiple optimization can be done in parallel using multiprocesses with this option.
- --device : Only valid for ['nasbinary'] which uses GPU for its evalutions.
- --lamda : The regularization coefficient only valid for ['ising', 'contamination']
- --path : A path to the directory of the experiment to be continued.(Only need when you want to resume an experiment)
. Examples
python COMBO/main.py --objective ising --n_eval 150 --random_seed_config 7 --lamda 0.01
To optimize 'ising' with 0.01 for the regularization coefficient with 150 evaluations
python COMBO/main.py --objective pestcontrol --n_eval 300 --random_seed_config 3
To optimize 'pestcontrol' with 300 evaluations