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:
@@ -10,6 +10,7 @@ pub mod grea;
|
||||
pub mod hill_climber;
|
||||
pub mod hype;
|
||||
pub mod ibea;
|
||||
pub mod ipop_cma_es;
|
||||
pub mod knea;
|
||||
pub mod moead;
|
||||
pub mod mopso;
|
||||
@@ -40,6 +41,7 @@ pub use grea::*;
|
||||
pub use hill_climber::*;
|
||||
pub use hype::*;
|
||||
pub use ibea::*;
|
||||
pub use ipop_cma_es::*;
|
||||
pub use knea::*;
|
||||
pub use moead::*;
|
||||
pub use mopso::*;
|
||||
|
||||
Reference in New Issue
Block a user