feat: add CMA-ES sampler behind cma-es feature flag

Implement CMA-ES (Covariance Matrix Adaptation Evolution Strategy) as a
new sampler for continuous optimization. Uses nalgebra for matrix
operations and implements the full Hansen 2016 algorithm: mean update,
evolution paths, covariance matrix adaptation, and cumulative step-size
adaptation.

Key features:
- Builder API with configurable sigma0, population_size, and seed
- Three-phase state machine: discovery, active sampling, generation update
- Rejection sampling with bounds clipping fallback
- Log-scale and step parameter support via internal-space mapping
- Categorical parameters handled via random sampling fallback
- Numerical robustness: eigenvalue clamping, symmetry enforcement
This commit is contained in:
Manuel Raimann
2026-02-11 18:31:12 +01:00
parent a53ba4f472
commit a1dd6d393c
5 changed files with 1273 additions and 0 deletions
+2
View File
@@ -1,5 +1,7 @@
//! Sampler trait and implementations for parameter sampling.
#[cfg(feature = "cma-es")]
pub mod cma_es;
pub mod grid;
pub mod random;
#[cfg(feature = "sobol")]