feat(algorithms): add Tlbo (Teaching-Learning-Based Optimization)

Rao 2011 TLBO: parameter-free single-objective optimizer for Vec<f64>.
The selling point — uniquely among the metaheuristics we ship — is that
it has NO algorithm-specific hyperparameters: no F, CR, w, c1, c2, σ,
mutation rate, etc. Just population_size and generations.

Each generation has two phases:
- **Teacher phase**: identify the best individual (the 'teacher'). For
  every learner, compute a 'mean' learner and try replacing it with a
  candidate moved toward the teacher by a random fraction, scaled by
  the gap between teacher and (TF · mean), where TF ∈ {1, 2}.
- **Learner phase**: each learner picks a random partner and tries
  moving toward the better one of the pair. Only successful moves are
  kept.

Single-objective only, Vec<f64> only, bounds enforced via clamping.
Tests cover Sphere1D convergence, deterministic reruns, and panic on
multi-objective.
This commit is contained in:
2026-05-05 09:51:11 -06:00
parent 1b8070476b
commit 9a336da43e
3 changed files with 231 additions and 1 deletions
+2
View File
@@ -22,6 +22,7 @@ pub mod simulated_annealing;
pub mod sms_emoa;
pub mod spea2;
pub mod tabu_search;
pub mod tlbo;
pub mod umda;
pub use ant_colony_tsp::*;
@@ -45,4 +46,5 @@ pub use simulated_annealing::*;
pub use sms_emoa::*;
pub use spea2::*;
pub use tabu_search::*;
pub use tlbo::*;
pub use umda::*;