feat(algorithms): add AgeMoea (Adaptive Geometry Estimation MOEA)

Panichella 2019 AGE-MOEA: a many-objective MOEA that *infers* the
front's geometry (its L_p shape, where p = 1 is linear, p = 2 is
spherical, p < 1 is convex etc.) from the current non-dominated set
and uses that estimate to drive both proximity and diversity in
survival selection.

Each generation:
- NSGA-II-like loop: random parent selection + variation + evaluation
- Combine + non_dominated_sort
- Fill front-by-front; for the splitting front:
  - Translate by ideal point z*
  - Find extreme points by ASF (same as NSGA-III) and intercepts
  - Estimate the geometry parameter p by minimizing
    \|f − ideal\|_p constancy on the extreme points
  - Score every member by survival_score = (proximity_to_ideal) +
    (1 / nearest-neighbor distance in the same L_p frame)
  - Keep the top scorers

The geometry estimation is the novel contribution; with 3+ objectives
it produces fronts whose spread better matches the true shape than
NSGA-III's reference points (which assume a known geometry).
This commit is contained in:
2026-05-05 09:51:12 -06:00
parent 9a336da43e
commit 6bfa52c149
3 changed files with 344 additions and 1 deletions
+2
View File
@@ -1,5 +1,6 @@
//! Built-in reference optimizers.
pub mod age_moea;
pub mod ant_colony_tsp;
pub mod cma_es;
pub mod differential_evolution;
@@ -25,6 +26,7 @@ pub mod tabu_search;
pub mod tlbo;
pub mod umda;
pub use age_moea::*;
pub use ant_colony_tsp::*;
pub use cma_es::*;
pub use differential_evolution::*;