feat(algorithms): add HillClimber single-objective greedy local search

The simplest possible local search: start from one initializer-sampled
decision, repeatedly mutate it via the variation operator, and keep the
child only when it is strictly better than the current incumbent (with
the standard feasible-beats-infeasible / lower-violation tiebreaks
when relevant).

Single-objective only — panics with a clear message if the problem
exposes more than one objective. Deterministic under a seed. Returns
a population/front of size one (the current incumbent) so it slots
into the comparison harness like any other optimizer.
This commit is contained in:
2026-05-05 09:51:10 -06:00
parent cf3b6acd10
commit a93d0df858
3 changed files with 156 additions and 3 deletions
+2
View File
@@ -1,6 +1,7 @@
//! Built-in reference optimizers.
pub mod differential_evolution;
pub mod hill_climber;
pub mod moead;
pub mod nsga2;
pub mod nsga3;
@@ -10,6 +11,7 @@ pub mod random_search;
pub mod spea2;
pub use differential_evolution::*;
pub use hill_climber::*;
pub use moead::*;
pub use nsga2::*;
pub use nsga3::*;