This repository contains the configurable CMA-ES experiments code that uses the Modular EA framework. The framework is available separately as ModEA.
Most experiments are programmed in the main.py
file, while the configurable CMA-ES setup is defined in EvolvingES.py
.
This file is setup mostly to run either an optimizer (currently a MIES, but still labeled as 'GA') or a brute-force enumeration run over all available structure configurations.
The current behavior of executing the file depends on the number of arguments given:
- 0: executes the 'default' option, currently set to a 5D brute-force enumeration over the Sphere function F1.
- 2 (
ndim fid
): executes the 'optimization' option (currently MIES) on the given BBOB functionfid
inndim
dimensions - 3 (
ndim fid run
): executes the 'optimization' option (currently MIES) on the given BBOB functionfid
inndim
dimensions, but with an addedrun
parameter that is used to log multiple runs without overwriting. - 4 (
ndim fid parallel part
): executes the 'brute-force enumeration' option on the given BBOB functionfid
inndim
dimensions, while explicitly runningparallel
configurations in parallel. Also, to prevent some memory issues,part
specifies which part out of 4 of the entire list of possible configurations should executed. An external script (e.g. the includedBF_experiment.sh
file) should be used to iterate over parts 1...4.
The most important function in EvolvingES.py
isrunCustomizedES(representation, iid, rep, ndim, fid, budget)
. This function takes a representation
from {0,1}^9 X {0,1,2}^2 (optionally extended with a set of parameter values), combined with some BBOB parameters: instance ID iid
, repetition number rep
, dimensionality ndim
, function ID fid
, and the total available budget in evaluations budget
. This function takes the representation, splits it into , lambda, mu, and passes them on accordingly to the customizedES in ModEA.
To simplify large runs of experiments, the evaluateCustomizedESs(...):
function also exists, which tries to automatically parallelize the running of multiple representations over multiple instance ID's of a fixed fid
and ndim
.
To cite this work, please use the following reference:
@INPROCEEDINGS{vanrijn2016,
author={S. {van Rijn} and H. {Wang} and M. {van Leeuwen} and T. {Bäck}},
booktitle={2016 IEEE Symposium Series on Computational Intelligence (SSCI)},
title={Evolving the structure of Evolution Strategies},
year={2016},
doi={10.1109/SSCI.2016.7850138},
}
- Evolving the Structure of Evolution Strategies. Sander van Rijn, Hao Wang, Matthijs van Leeuwen, Thomas Bäck. IEEE SSCI December 6-9 2016, Athens, Greece.
- Algorithm Configuration Data Mining for CMA Evolution Strategies. Sander van Rijn, Hao Wang, Bas van Stein, Thomas Bäck. GECCO July 15-19 2017, Berlin, Germany.
- Analysis code available in separate repository.
- Towards an Adaptive CMA-ES Configurator. Sander van Rijn, Carola Doerr, Thomas Bäck. PPSN XV September 8-12 2018, Coimbra, Portugal.