feat(algorithms): add NelderMead simplex direct-search optimizer
Nelder & Mead 1965: gradient-free local optimizer that maintains a
simplex of n+1 points in n-D and at each iteration replaces the worst
vertex by one of {reflect, expand, outside-contract, inside-contract,
shrink} relative to the centroid of the rest. The five standard
coefficients (reflection α=1, expansion γ=2, contraction ρ=0.5,
shrinkage σ=0.5) are exposed in the config but default to canonical
values so users can leave them alone.
Single-objective only, Vec<f64> only, bounds enforced by clamping
each new vertex. Termination is purely iteration-count for v0.2;
"vertices have collapsed" stopping is a future enhancement.
Filling a real gap: heuropt had population-based local search
(SimulatedAnnealing, HillClimber) but no classical direct-search
algorithm. Excellent for low-dim smooth-ish problems where a
population is overkill.
This commit is contained in:
@@ -13,6 +13,7 @@ pub mod ibea;
|
||||
pub mod knea;
|
||||
pub mod moead;
|
||||
pub mod mopso;
|
||||
pub mod nelder_mead;
|
||||
pub mod nsga2;
|
||||
pub mod nsga3;
|
||||
pub mod one_plus_one_es;
|
||||
@@ -42,6 +43,7 @@ pub use ibea::*;
|
||||
pub use knea::*;
|
||||
pub use moead::*;
|
||||
pub use mopso::*;
|
||||
pub use nelder_mead::*;
|
||||
pub use nsga2::*;
|
||||
pub use nsga3::*;
|
||||
pub use one_plus_one_es::*;
|
||||
|
||||
Reference in New Issue
Block a user