In computer science, evolution strategy (ES, from German Evolutionsstrategie) is an optimization technique based on ideas of adaptation and evolution. It belongs to a more general class of evolutionary computation.

Evolution strategies primarily use real-vector coding, and mutation, recombination, and environmental selection as its search operators. As common with evolutionary algorithms, the operators are applied in order: Mating selection, recombination, mutation, fitness function evaluation, and environmental selection. Performing the loop one time is called a generation, and this is continued until a termination criterion is met.

The first ES variants were not population based, but memorized only one search point (the parent) and one ((1+1)-ES) or more offspring (1+,lambda)-ES) at a time. Contemporary versions usually employ a population ((mu+,lambda)-ES) and are thus believed to be less prone to get stuck in local optima.

Mutation is performed by adding a gaussian distributed random value simultaneously to each vector element. The step size or mutation strength (ie. the standard deviation of this distribution) is usually learned during the optimization. This process is called self-adaptation, and it should keep the evolutionary process within the evolution window.

Evolutionary Algorithms Demos - There are some applets with Evolution Strategies and Genetic Algorithms that the user can manipulate to solve problems. Very interesting for a comparison between the two Evolutionary Algorithms.