Class EpsilonNSGAII

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

public class EpsilonNSGAII extends NSGAII implements Configurable
Implements the ε-NSGA-II algorithm. This algorithm extends NSGA-II with an ε-dominance archive and adaptive time continuation.

References:

  1. Kollat, J. B., and Reed, P. M. "Comparison of Multi-Objective Evolutionary Algorithms for Long-Term Monitoring Design." Advances in Water Resources, 29(6):792-807, 2006.
  • Constructor Details

    • EpsilonNSGAII

      public EpsilonNSGAII(Problem problem)
      Constructs a new ε-NSGA-II instance with default settings.
      Parameters:
      problem - the problem to solve
    • EpsilonNSGAII

      public EpsilonNSGAII(Problem problem, int initialPopulationSize, NondominatedSortingPopulation population, EpsilonBoxDominanceArchive archive, Selection selection, Variation variation, Initialization initialization, int windowSize, int maxWindowSize, double injectionRate, int minimumPopulationSize, int maximumPopulationSize)
      Constructs the ε-NSGA-II instance with the specified components.
      Parameters:
      problem - the problem being solved
      initialPopulationSize - the initial population size
      population - the population used to store solutions
      archive - the ε-dominance archive
      selection - the selection operator
      variation - the variation operator
      initialization - the initialization method
      windowSize - the number of iterations between invocations of check
      maxWindowSize - the maximum number of iterations allowed since the last restart before forcing a restart
      injectionRate - the injection rate
      minimumPopulationSize - the minimum size of the population
      maximumPopulationSize - the maximum size of the population
  • Method Details

    • applyConfiguration

      public void applyConfiguration(TypedProperties properties)
      Description copied from interface: Configurable
      Applies the properties to this instance. It is strongly recommended to apply a configuration immediately after creating the instance, as some properties can not be changed after the class is used. Exceptions may be thrown if attempting to set such properties. After calling this method, we encourage users to call TypedProperties.warnIfUnaccessedProperties() to verify all properties were processed. This can identify simple mistakes like typos. If overriding this method, properties should only be updated if a new value is provided. Additionally, if updating any Configurable objects inside this object, they should be updated before calling super.applyConfiguration(properties).
      Specified by:
      applyConfiguration in interface Configurable
      Overrides:
      applyConfiguration in class NSGAII
      Parameters:
      properties - the user-defined properties
    • getConfiguration

      public TypedProperties getConfiguration()
      Description copied from interface: Configurable
      Gets the current configuration of this instance. In theory, these properties should be able to create a duplicate instance. Note however, they are unlikely to behave identically due to random numbers and other transient fields.
      Specified by:
      getConfiguration in interface Configurable
      Overrides:
      getConfiguration in class NSGAII
      Returns:
      the properties defining this instance