Class PAES

All Implemented Interfaces:
Algorithm, Configurable, EvolutionaryAlgorithm, Stateful

public class PAES extends AbstractEvolutionaryAlgorithm
Implementation of the (1+1) Pareto Archived Evolution Strategy (PAES). PAES uses an adaptive grid archive to maintain a diverse set of solutions.

References:

  1. Knowles, J.D. and D. W. Corne (1999). The Pareto Archived Evolution Strategy: A New Baseline Algorithm for Pareto Multiobjective Optimisation. In Proceedings of the 1999 Congress on Evolutionary Computation (CEC'99), pp. 98-105.
  • Constructor Details

    • PAES

      public PAES(Problem problem)
      Constructs a new PAES instance with default settings.
      Parameters:
      problem - the problem
    • PAES

      public PAES(Problem problem, Mutation mutation, int bisections, int archiveSize)
      Constructs a new PAES instance.
      Parameters:
      problem - the problem
      mutation - the mutation operator
      bisections - the number of bisections in the adaptive grid archive
      archiveSize - the capacity of the adaptive grid archive
  • Method Details

    • setVariation

      public void setVariation(Mutation mutation)
      Replaces the mutation operator to be used by this algorithm.
      Parameters:
      mutation - the mutation operator
    • getVariation

      public Mutation getVariation()
      Description copied from class: AbstractEvolutionaryAlgorithm
      Returns the variation operator currently in use by this algorithm.
      Overrides:
      getVariation in class AbstractEvolutionaryAlgorithm
      Returns:
      the variation operator
    • getArchive

      public AdaptiveGridArchive getArchive()
      Description copied from interface: EvolutionaryAlgorithm
      Returns the current non-dominated archive of the best solutions generated by this evolutionary algorithm, or null if no archive is used.
      Specified by:
      getArchive in interface EvolutionaryAlgorithm
      Overrides:
      getArchive in class AbstractEvolutionaryAlgorithm
      Returns:
      the current non-dominated archive of the best solutions generated by this evolutionary algorithm, or null if no archive is used
    • test

      public Solution test(Solution parent, Solution offspring)
      The test procedure to determine which solution, the parent or offspring, moves on to the next generation. The solution in a lower density region in the archive is returned.
      Parameters:
      parent - the parent solution
      offspring - the offspring solution
      Returns:
      the solution moving on to the next genreation
    • iterate

      protected void iterate()
      Description copied from class: AbstractAlgorithm
      Performs one iteration of the algorithm. This method should be overridden by implementations to perform each logical iteration of the algorithm.
      Specified by:
      iterate in class AbstractAlgorithm
    • 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).
      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.
      Returns:
      the properties defining this instance