Class UNSGAIII

All Implemented Interfaces:
Extensible, Algorithm, Configurable, EpsilonBoxEvolutionaryAlgorithm, EvolutionaryAlgorithm, Stateful

public class UNSGAIII extends NSGAIII
Implementation of the "unified" NSGA-III, or U-NSGA-III, which improves selection pressure by replacing the random selection of NSGA-III with tournament selection. References:
  1. H. Seada and K. Deb. "A Unified Evolutionary Optimization Procedure for Single, Multiple, and Many Objectives." IEEE Transactions on Evolutionary Computation, 20(3):358–369, June 2016.
  2. H. Saeda and K. Deb. "U-NSGA-III: A Univied Evolutionary Algorithm for Single, Multiple, and Many-Objective Optimization." COIN Report Number 2014022.
  • Constructor Details

    • UNSGAIII

      public UNSGAIII(Problem problem)
      Creates a new U-NSGA-III instance with default settings.
      Parameters:
      problem - the problem to solve
    • UNSGAIII

      public UNSGAIII(Problem problem, NormalBoundaryDivisions divisions)
      Creates a new U-NSGA-III instance with the given number of reference point divisions.
      Parameters:
      problem - the problem to solve
      divisions - the number of divisions for generating reference points
    • UNSGAIII

      public UNSGAIII(Problem problem, int initialPopulationSize, ReferencePointNondominatedSortingPopulation population, Selection selection, Variation variation, Initialization initialization)
      Constructs a new U-NSGA-III instance with the specified components.
      Parameters:
      problem - the problem being solved
      initialPopulationSize - the initial population size
      population - the reference point population used to store solutions
      selection - the selection operator
      variation - the variation operator
      initialization - the initialization method
  • Method Details

    • initialize

      public void initialize()
      Description copied from interface: Algorithm
      Performs any initialization that is required by this algorithm. This method should only be called once, though the specific implementation may choose to no-op or throw AlgorithmInitializationException if called multiple times.

      Implementations should always call super.initialize() to ensure the algorithm is initialized correctly.

      Specified by:
      initialize in interface Algorithm
      Overrides:
      initialize in class AbstractEvolutionaryAlgorithm