= Evolution Strategy = At about the same time genetic algorithms were developed, evolution strategies (ES) appeared in first publications. Originally, they differed from the genetic algorithm such that the main operator responsible for the creation of solutions is the mutation operator. ''Ingo Rechenberg'' and ''Hans-Paul Schwefel'' introduced several basic variants of ES before adopting more complex solution manipulation concepts, such as recombination, to broaden the applicability of the evolution strategy (Rechenberg 1973). '''Variants:''' The first variant is the simple (1+1)-ES where a mutant was created from a given parent which replaced the parent only if it was better. It was shown that such a simple strategy coupled with a more intelligent adaption of the mutation strength allowed the ES to converge quickly to a good solution. Further evolved variants make use of a population, by extending the (1+1)-ES to a generic (μ+λ)-ES and also include generational replacement, called “comma replacement”. Additionally, recombination was introduced into the algorithm, as well as a way to self-adapt the mutation strength during the progress of the search. '''Algorithm Parameters:''' ||= Parameter =||= Description =|| || Analyzer || The operator used to analyze each generation. || || Children || λ (lambda) - the size of the offspring population. || || !MaximumGenerations || The maximum number of generations which should be processed. || || Mutator || The operator used to mutate solutions. || || !ParentsPerChild || rho - how many parents should be recombined. || || !PlusSelection || True for plus selection (elitist population), false for comma selection (non-elitist population). || || Population Size || μ (mu) - the size of the population. || || Recombinator || The operator used to cross solutions. || || Seed || The random seed used to initialize the new pseudo random number generator. || || !SetSeedRandomly || True if the random seed should be set to a random value, otherwise false. || || !StrategyParameterCreator || The operator that creates the strategy parameters. || || !StrategyParameterCrossover || The operator that recombines the strategy parameters. || || !StrategyParameterManipulator || The operator that manipulates the strategy parameters. || '''Remarks:''' * The `Analyzer` parameter is of type [[Analyzer#MultiAnalyzer| MultiAnalyzer]], which initially contains a [[Analyzer#BestAverageWorstQualityAnalyzer| BestAverageWorstQualityAnalyzer]] * Switch between plus and comma selection by setting the boolean parameter {{{PlusSelection}}} accordingly '''Is there a sample/tutorial?''' Sure. HeuristicLab comes with a pre-configured ES to solve the 10-dimensional Griewank test function. Have a look at the description [[UsersTSPSample#ESGriewank| here]]. '''References:''' * Rechenberg, I. 1973. Evolutionsstrategie - Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Frommann-Holzboog.