Multi-Objective Flow
Non-Dominated Sorting
A candidate A dominates candidate B if A is better than or equal to B on all objectives, and strictly better on at least one. The non-dominated sorting algorithm partitions the population into fronts:- Front 1: candidates dominated by no one
- Front 2: candidates dominated only by Front 1
- Front 3: candidates dominated by Front 1 or 2
- And so on
Crowding Distance
Within each front, candidates are ranked by crowding distance. This measures the density of solutions around a candidate in objective space. Candidates with larger crowding distance are preferred.Selection in Multi-Objective Mode
Parents are selected by iterating through fronts in order. Within a front, selection uses crowding distance as a tiebreaker. The binary tournament compares:- Front rank (lower is better)
- Crowding distance (higher is better)
Population Truncation
After offspring generation, parent and offspring populations are merged. The combined set is re-sorted by non-dominated rank. The new population is filled front by front. If the last front that fits exceeds the remaining slots, candidates from that front are selected by highest crowding distance.Pareto Front Output
Upon termination, the EvolutionEngine returns:- All Front 1 candidates from the final generation
- Their full fitness vectors
- Their genomes
- Their evaluation metrics from all splits (Optimization, Validation, Hidden Test)
Supported Objectives
Common objective combinations in EMEP:NSGA-III Extension
NSGA-III (Deb & Jain 2014) is planned as a future alternative for problems with more than three objectives. NSGA-III replaces crowding distance with reference point-based selection. The EvolutionEngine architecture supports pluggable selectors, so NSGA-III can be added without structural changes.Multi-objective mode is selected at experiment initialization. Switching between single and multi-objective mid-experiment is not supported. The choice affects fitness computation, selection, and output format.