Class UNSGAIII

All Implemented Interfaces:
Algorithm, EpsilonBoxEvolutionaryAlgorithm, EvolutionaryAlgorithm, Extensible, Configurable, Named, 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

    • getName

      public String getName()
      Description copied from interface: Algorithm
      Returns the name of this algorithm. Whenever possible, this name should match the name recognized by AlgorithmFactory.
      Specified by:
      getName in interface Algorithm
      Specified by:
      getName in interface Named
      Overrides:
      getName in class NSGAIII
      Returns:
      the name of this algorithm
    • 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