Class EvolutionStrategy

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

public class EvolutionStrategy extends SingleObjectiveEvolutionaryAlgorithm
Single-objective (mu + lambda) evolution strategy (ES) algorithm. In this implementation, mu and lambda are both equal to the initial population size. For example, with an initial population of size 1, this mimics the classic (1 + 1)-ES algorithm. Can only be used with mutation operators with a single parent.

References:

  1. Ingo Rechenberg. "Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution." Ph.D. thesis, Fromman-Holzboog, 1971.
  • Constructor Details

    • EvolutionStrategy

      public EvolutionStrategy(Problem problem)
      Constructs a new instance of the evolution strategy (ES) algorithm with default settings.
      Parameters:
      problem - the problem to solve
    • EvolutionStrategy

      public EvolutionStrategy(Problem problem, int initialPopulationSize, AggregateObjectiveComparator comparator, Initialization initialization, SelfAdaptiveNormalVariation variation)
      Constructs a new instance of the evolution strategy (ES) algorithm.
      Parameters:
      problem - the problem to solve
      initialPopulationSize - the initial population size
      comparator - the aggregate objective comparator
      initialization - the initialization method
      variation - the variation operator
  • 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.
      Returns:
      the name of this algorithm
    • iterate

      public 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
    • getVariation

      public SelfAdaptiveNormalVariation 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
    • setVariation

      public void setVariation(SelfAdaptiveNormalVariation variation)
      Replaces the variation operator to be used by this algorithm.
      Parameters:
      variation - the variation operator