MetaBox is the first benchmark platform expressly tailored for developing and evaluating MetaBBO-RL methods. MetaBox offers a flexible algorithmic template that allows users to effortlessly implement their unique designs within the platform. Moreover, it provides a broad spectrum of over 300 problem instances, collected from synthetic to realistic scenarios, and an extensive library of 19 baseline methods, including both traditional black-box optimizers and recent MetaBBO-RL methods. Besides, MetaBox introduces three standardized performance metrics, enabling a more thorough assessment of the methods.
You can access all MetaBox files with the command:
git clone git@github.com:GMC-DRL/MetaBox.git
cd MetaBox
The PDF version of the paper is available here. If you find our MetaBox useful, please cite it in your publications or projects.
@inproceedings{metabox,
author={Ma, Zeyuan and Guo, Hongshu and Chen, Jiacheng and Li, Zhenrui and Peng, Guojun and Gong, Yue-Jiao and Ma, Yining and Cao, Zhiguang},
title={MetaBox: A Benchmark Platform for Meta-Black-Box Optimization with Reinforcement Learning},
booktitle = {Advances in Neural Information Processing Systems},
year={2023},
volume = {36}
}
Python
>=3.7.1 with the following packages installed:
numpy
==1.21.2torch
==1.9.0matplotlib
==3.4.3pandas
==1.3.3scipy
==1.7.1scikit_optimize
==0.9.0deap
==1.3.3tqdm
==4.62.3openpyxl
==3.1.2
-
To obtain the figures in our paper, run the following commands:
cd for_review python paper_experiment.py
then corresponding figures will be output to
for_revivew/pics
.
The quick usage of the four main running interfaces is listed as follows, in the following command, we specifically take
RLEPSO
as an example.Firstly, get into the main code folder, src:
cd ../src
-
To trigger the entire workflow, including train, rollout and test, run the following command:
python main.py --run_experiment --problem bbob --difficulty easy --train_agent RLEPSO_Agent --train_optimizer RLEPSO_Optimizer
-
To trigger the standalone process of training:
python main.py --train --problem bbob --difficulty easy --train_agent RLEPSO_Agent --train_optimizer RLEPSO_Optimizer
-
To trigger the standalone process of testing:
python main.py --test --problem bbob --difficulty easy --agent_load_dir agent_model/test/bbob_easy/ --agent_for_cp RLEPSO_Agent --l_optimizer_for_cp RLEPSO_Optimizer --t_optimizer_for_cp DEAP_CMAES Random_search
For more details about the usage of MetaBox
, please refer to MetaBox User's Guide.
At present, three benchmark suites are integrated in MetaBox
:
Synthetic
contains 24 noiseless functions, borrowed from coco:bbob with original paper.Noisy-Synthetic
contains 30 noisy functions, borrowed from coco:bbob-noisy with original paper.Protein-Docking
contains 280 problem instances, which simulate the application of protein docking as a 12-dimensional optimization problem, borrowed from LOIS with original paper.
7 MetaBBO-RL optimizers, 1 MetaBBO-SL optimizer and 11 classic optimizers have been integrated into MetaBox
. They are listed below.
Supported MetaBBO-RL optimizers:
Supported MetaBBO-SL optimizer:
Name | Year | Related paper |
---|---|---|
RNN-OI | 2017 | Learning to learn without gradient descent by gradient descent |
Supported MetaBBO-NE optimizer:
Name | Year | Related paper |
---|---|---|
LES | 2023 | Discovering evolution strategies via meta-black-box optimization |
Supported classic optimizers:
Note that Random Search
is to randomly sample candidate solutions from the searching space.
In a bid to illustrate the utility of MetaBox for facilitating rigorous evaluation and in-depth analysis, as mentioned in our paper, we carry out a wide-ranging benchmarking study on existing MetaBBO-RL methods. The post-processed data is available in content.md.
The code and the framework are based on the repos DEAP, coco and Protein-protein docking V4.0.