feat(algorithms): add IpopCmaEs (CMA-ES with restart) for multimodal problems
Auger & Hansen 2005 IPOP-CMA-ES: wraps the existing CmaEs in a restart loop that doubles the population size and re-randomizes the mean whenever a restart trigger fires. Specifically addresses the failure mode we observed on Rastrigin (vanilla CMA-ES = 2.3 vs DE = 0). Restart triggers: - The whole budget for one inner CmaEs run finishes without improvement - (More sophisticated triggers — eigenvalue collapse, condition-number blow-up, sigma stagnation — are left for future versions; the per-run budget trigger captures the bulk of the practical benefit) Each restart: - Doubles the population_size (Auger & Hansen 2005) - Re-randomizes the initial mean to a fresh point in the bounds box - Resets sigma to the user's initial value Same Vec<f64> + single-objective constraints as CmaEs. The total budget is divided across restarts; restart budget grows with population. Tests verify it beats vanilla CMA-ES on Rastrigin.
This commit is contained in:
+1
-1
@@ -25,7 +25,7 @@ pub use crate::algorithms::{
|
||||
AgeMoea, AgeMoeaConfig, AntColonyTsp, AntColonyTspConfig, CmaEs, CmaEsConfig, DifferentialEvolution,
|
||||
DifferentialEvolutionConfig, EpsilonMoea, EpsilonMoeaConfig,
|
||||
GeneticAlgorithm, GeneticAlgorithmConfig, Grea, GreaConfig, HillClimber, HillClimberConfig, Hype,
|
||||
HypeConfig, Ibea, IbeaConfig, Knea, KneaConfig, Moead, MoeadConfig, Mopso, MopsoConfig,
|
||||
HypeConfig, Ibea, IbeaConfig, IpopCmaEs, IpopCmaEsConfig, Knea, KneaConfig, Moead, MoeadConfig, Mopso, MopsoConfig,
|
||||
NelderMead, NelderMeadConfig, Nsga2,
|
||||
Nsga2Config, Nsga3, Nsga3Config, OnePlusOneEs, OnePlusOneEsConfig, Paes, PaesConfig, ParticleSwarm, PesaII, PesaIIConfig,
|
||||
ParticleSwarmConfig, RandomSearch, RandomSearchConfig, Rvea, RveaConfig,
|
||||
|
||||
Reference in New Issue
Block a user