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:
@@ -25,6 +25,7 @@ serde = { version = "1", features = ["derive"], optional = true }
|
||||
serde_json = { version = "1", optional = true }
|
||||
tracing = { version = "0.1", optional = true }
|
||||
sobol_burley = { version = "0.5", optional = true }
|
||||
nalgebra = { version = "0.33", optional = true }
|
||||
|
||||
[features]
|
||||
default = []
|
||||
@@ -33,6 +34,7 @@ derive = ["dep:optimizer-derive"]
|
||||
serde = ["dep:serde", "dep:serde_json"]
|
||||
tracing = ["dep:tracing"]
|
||||
sobol = ["dep:sobol_burley"]
|
||||
cma-es = ["dep:nalgebra"]
|
||||
|
||||
[dev-dependencies]
|
||||
tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] }
|
||||
|
||||
Reference in New Issue
Block a user