Skip to main content

Module cma_es

Module cma_es 

Source
Expand description

Covariance Matrix Adaptation Evolution Strategy (CMA-ES).

CMA-ES (Hansen & Ostermeier, 2001; Hansen, 2016) samples each generation from a multivariate normal N(m, σ²C) and adapts the mean m, the global step size σ, and the covariance matrix C from the ranked offspring. Two evolution paths drive the adaptation:

  • the conjugate path p_σ feeds Cumulative Step-size Adaptation (CSA), which lengthens or shrinks σ depending on whether consecutive steps are correlated or anti-correlated;
  • the anisotropic path p_c feeds the rank-1 update of C.

A rank-μ update mixes in the empirical covariance of the selected steps. The conjugate path requires C^{-1/2}, obtained from a symmetric eigendecomposition of C (see crate::ops::linalg::jacobi_eigen).

§Relationship to the EDA / ProbabilityModel family

A full-covariance multivariate-Gaussian EDA (EMNA) is CMA-ES minus the evolution paths and step-size decoupling: it re-estimates m/C by maximum likelihood each generation. CMA-ES keeps the path-based momentum and CSA, so it does not fit the ProbabilityModel fit → sample seam — the CSA and path updates live in Strategy::tell, not in a model fit. Per ADR 0021 this strategy is a self-contained Strategy; ProbabilityModel<B> is available but deliberately unused (research note eda-vs-cma-es-boundary). For the path-free sibling that self-adapts σ per individual, see crate::algorithms::cmsa_es.

§References

  • Hansen, N. (2016), The CMA Evolution Strategy: A Tutorial, arXiv:1604.00772 (default parameters: Table 1).
  • Hansen, N. & Ostermeier, A. (2001), Completely Derandomized Self-Adaptation in Evolution Strategies, Evolutionary Computation 9(2).

Structs§

CmaEs
Covariance Matrix Adaptation Evolution Strategy.
CmaEsConfig
Static configuration for a CMA-ES run.
CmaEsState
Generation state for CmaEs.