Skip to main content

Module nsga3

Module nsga3 

Source
Expand description

NSGA-III: Non-dominated Sorting Genetic Algorithm III

Implements the many-objective evolutionary algorithm by Deb & Jain (2014). NSGA-III extends NSGA-II with structured reference points (Das-Dennis simplex lattice) instead of crowding distance for diversity preservation. It is particularly effective for problems with more than 3 objectives where NSGA-II’s crowding distance degrades.

§Algorithm outline

  1. Reference point generation: Construct a set of structured reference points on the unit hyperplane using the Das-Dennis method.
  2. Fast non-dominated sorting: Same as NSGA-II — assign each individual a Pareto-front rank.
  3. Reference-point-based niching: For the critical (last-included) front, use association + niche counting to maintain diversity with respect to structured reference points.
  4. Elitist survivor selection: Deterministically fill the next population by adding complete fronts, then applying niching to the final partial front.

§References

  • Deb, K., & Jain, H. (2014). An evolutionary many-objective optimization algorithm using reference-point-based nondominated sorting approach, Part I: Solving problems with box constraints. IEEE TEC, 18(4), 577–601.
  • Jain, H., & Deb, K. (2014). An evolutionary many-objective optimization algorithm using reference-point based nondominated sorting approach, Part II: Handling constraints and extending to an adaptive approach. IEEE TEC, 18(4), 602–622.

Structs§

Nsga3Config
Configuration for the NSGA-III algorithm.
Nsga3Result
Result returned by nsga3.

Functions§

adapt_reference_points
Adaptively update reference points based on the current Pareto front.
associate_to_reference_points
For each individual, find the nearest reference point and compute the distance to its reference line.
generate_reference_points
Generate structured reference points on the unit hyperplane using the Das-Dennis lattice (simplex lattice design).
generate_reference_points_inner
Generate inner reference points for the two-layer reference point approach.
nsga3
Run NSGA-III on a many-objective optimisation problem.
reference_line_distance
Compute the perpendicular distance from a normalized objective vector to a reference line (direction vector from origin through reference point).