The PyCMA CMA-ES Benchmark
This benchmark uses the PyCMA implementation to control the step size of the CMA-ES algorithm on the BBOB function set. The goal in the optimization is to find the global function minimum before the cutoff, so the cost is defined as the current negativ objective value.
The BBOB functions provide a varied instance space that is well suited for testing generalization capabilites of DAC methods. Due to this large instance space and very different scales of objective values (and thus cost), the CMA-ES benchmark is one of the more difficult to solve ones in DACBench.
The CMA-ES benchmark was constructed by Shala et al. for the paper `”Learning Step-size Adaptation in CMA-ES” <https://ml.informatik.uni-freiburg.de/wp-content/uploads/papers/20-PPSN-LTO-CMA.pdf>`_ at PPSN 2020
- class dacbench.benchmarks.cma_benchmark.CMAESBenchmark(config_path=None, config=None)
Bases:
AbstractBenchmark
Benchmark with default configuration & relevant functions for CMA-ES
- get_benchmark(seed=0)
Get benchmark from the LTO paper
- Parameters
seed (int) – Environment seed
- Returns
env – CMAES environment
- Return type
- get_environment()
Return CMAESEnv env with current configuration
- Returns
CMAES environment
- Return type
- read_instance_set(test=False)
Read path of instances from config into list
CMA-ES environment adapted from CMAWorld in “Learning Step-size Adaptation in CMA-ES” by G.Shala and A. Biedenkapp and N.Awad and S. Adriaensen and M.Lindauer and F. Hutter. Original author: Gresa Shala
- class dacbench.envs.cma_es.CMAESEnv(config)
Bases:
AbstractEnv
Environment to control the step size of CMA-ES
- close()
No additional cleanup necessary
- Returns
Cleanup flag
- Return type
bool
- get_default_reward(_)
Compute reward
- Returns
Reward
- Return type
float
- get_default_state(_)
Gather state description
- Returns
Environment state
- Return type
dict
- render(mode: str = 'human')
Render env in human mode
- Parameters
mode (str) – Execution mode
- reset()
Reset environment
- Returns
Environment state
- Return type
np.array
- step(action)
Execute environment step
- Parameters
action (list) – action to execute
- Returns
state, reward, done, info
- Return type
np.array, float, bool, dict