feat(algorithms): add Grea (Grid-based Evolutionary Algorithm)
Yang, Li, Liu & Zheng 2013 GrEA: many-objective MOEA whose secondary
ranking is a grid-based diversity score instead of crowding distance
or reference vectors.
Each generation:
- NSGA-II-like loop with offspring + non_dominated_sort
- For the splitting front:
- Translate by ideal/nadir; partition objective space into a
(`grid_divisions` per axis) grid
- For every member compute three grid scores:
- GR (grid rank) = sum of grid coordinates (closer to ideal = lower)
- GCD (grid crowding distance) = #neighbors within 1 grid unit (in any axis)
- GCPD (grid coordinate point distance) = max coord - min coord
- Sort F_l ascending by GR, then by GCD, then by GCPD
- Take the top `n - already_selected` survivors
GrEA's grid-based niching is a different lens from NSGA-III's reference
points and RVEA's reference vectors — particularly effective on
non-convex fronts where reference-vector approaches struggle.
This commit is contained in:
@@ -6,6 +6,7 @@ pub mod cma_es;
|
||||
pub mod differential_evolution;
|
||||
pub mod epsilon_moea;
|
||||
pub mod genetic_algorithm;
|
||||
pub mod grea;
|
||||
pub mod hill_climber;
|
||||
pub mod hype;
|
||||
pub mod ibea;
|
||||
@@ -32,6 +33,7 @@ pub use cma_es::*;
|
||||
pub use differential_evolution::*;
|
||||
pub use epsilon_moea::*;
|
||||
pub use genetic_algorithm::*;
|
||||
pub use grea::*;
|
||||
pub use hill_climber::*;
|
||||
pub use hype::*;
|
||||
pub use ibea::*;
|
||||
|
||||
Reference in New Issue
Block a user