The CMA-ES Benchmark¶
This benchmark uses the ModCMA implementation to control the step size and algorithm components of the CMA-ES algorithm. 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 and extended afterwards to include the ModCMA implementation.
CMA ES Benchmark.
- class dacbench.benchmarks.cma_benchmark.CMAESBenchmark(config_path: str | None = None, config=None)[source]¶
Bases:
AbstractBenchmark
Benchmark for controlling the step size of CMA-ES on BBOB functions.
CMA ES Environment.
- class dacbench.envs.cma_es.CMAESEnv(config)[source]¶
Bases:
AbstractMADACEnv
The CMA ES environment controlles the step size on BBOB functions.
- get_default_reward(*_)[source]¶
The default reward function.
- Parameters:
_ (_type_) – Empty parameter, which can be used when overriding
- Returns:
The calculated reward
- Return type:
float
- get_default_state(*_)[source]¶
Default state function.
- Parameters:
_ (_type_) – Empty parameter, which can be used when overriding
- Returns:
The current state
- Return type:
dict
- class dacbench.envs.cma_es.CMAESInstance(target_function: AbstractFunction, dim: int, fid: int, iid: int, active: bool, elitist: bool, orthogonal: bool, sequential: bool, threshold_convergence: bool, step_size_adaptation: str, mirrored: str, base_sampler: str, weights_option: str, local_restart: str, bound_correction: str)[source]¶
Bases:
object
CMA-ES Instance.