# Evolution strategy

Evolution strategy (ES) from computer science is a subclass of evolutionary algorithms, which serves as an optimization technique. It uses the major genetic operators mutation, recombination and selection of parents.

## History

The 'evolution strategy' optimization technique was created in the early 1960s and developed further in the 1970s and later by Ingo Rechenberg, Hans-Paul Schwefel and their co-workers.
Timeline of ES - selected algorithms :
| Year | Description |
| 1973 | ES introduced with mutation and selection |
| 1994 | Derandomized self-adaptation ES - Derandomized scheme of mutative step size control is used |
| 1994 | CSA-ES - usage information from the old generations |
| 2001 | CMA-ES |
| 2006 | Weighted multi-recombination ES - usage of weighted recombination |
| 2007 | Meta-ES - incremental aggregation of partial semantic structures |
| 2008 | Natural ES - usage of natural gradient |
| 2010 | Exponential natural ES - a simpler version of natural ES |
| 2014 | Limited memory CMA-ES - time–memory complexity reduction by covariance matrix decomposition |
| 2016 | Fitness inheritance CMA-ES - fitness evaluation computational cost reduction using fitness inheritance |
| 2017 | RS-CMSA ES - usage of subpopulations |
| 2017 | MA-ES - COV update and COV matrix square root are not used |
| 2018 | Weighted ES - weighted recombination of general convex quadratic functions |

## Methods

Evolution strategies use natural problem-dependent representations, so problem space and search space are identical. In common with evolutionary algorithms, the operators are applied in a loop. An iteration of the loop is called a generation. The sequence of generations is continued until a termination criterion is met.
The special feature of the ES is the self-adaptation of mutation step sizes and the coevolution associated with it. The ES is briefly presented using the standard form, pointing out that there are many variants. The real-valued chromosome contains, in addition to the $n$ decision variables, $n'$ mutation step sizes ${\sigma }_{j}$, where: $1\leq j\leq n'\leq n$. Often one mutation step size is used for all decision variables or each has its own step size. Mate selection to produce $\lambda$ offspring is random, i.e. independent of fitness. First, new mutation step sizes are generated per mating by intermediate recombination of the parental ${\sigma }_{j}$ with subsequent mutation as follows:
    ${\sigma }'_{j}=\sigma _{j}\cdot e^{({\mathcal {N}}(0,1)-{\mathcal {N}}_{j}(0,1))}$
where ${\mathcal {N}}(0,1)$ is a normally distributed random variable with mean $0$ and standard deviation $1$. ${\mathcal {N}}(0,1)$ applies to all ${\sigma }'_{j}$, while ${\mathcal {N}}_{j}(0,1)$ is newly determined for each ${\sigma }'_{j}$. Next, discrete recombination of the decision variables is followed by a mutation using the new mutation step sizes as standard deviations of the normal distribution. The new decision variables $x_{j}'$ are calculated as follows:
    $x_{j}'=x_{j}+{\mathcal {N}}_{j}(0,{\sigma }_{j}')$
This results in an evolutionary search on two levels: First, at the problem level itself and second, at the mutation step size level. In this way, it can be ensured that the ES searches for its target in ever finer steps. However, there is also the danger of being able to skip larger invalid areas in the search space only with difficulty.

## Variants

The ES knows two variants of best selection for the generation of the next parent population ($\mu$ - number of parents, $\lambda$ - number of offspring):
* $(\mu ,\lambda )$: The $\mu$ best offspring are used for the next generation (usually $\mu ={\frac {\lambda }{2}}$).
* $(\mu +\lambda )$: The best are selected from a union of $\mu$ parents and $\lambda$ offspring.
Bäck and Schwefel recommend that the value of $\lambda$ should be approximately seven times the $\mu$, whereby $\mu$ must not be chosen too small because of the strong selection pressure. Suitable values for $\mu$ are application-dependent and must be determined experimentally. The selection of the next generation in evolution strategies is deterministic and only based on the fitness rankings, not on the actual fitness values. The resulting algorithm is therefore invariant with respect to monotonic transformations of the objective function.
The simplest and oldest evolution strategy ${\mathit {(1+1)}}$ operates on a population of size two: the current point (parent) and the result of its mutation. Only if the mutant's fitness is at least as good as the parent one, it becomes the parent of the next generation. Otherwise the mutant is disregarded. More generally, $\lambda$ mutants can be generated and compete with the parent, called $(1+\lambda )$. In $(1,\lambda )$ the best mutant becomes the parent of the next generation while the current parent is always disregarded. For some of these variants, proofs of linear convergence (in a stochastic sense) have been derived on unimodal objective functions.
Individual step sizes for each coordinate, or correlations between coordinates, which are essentially defined by an underlying covariance matrix, are controlled in practice either by self-adaptation or by covariance matrix adaptation (CMA-ES). When the mutation step is drawn from a multivariate normal distribution using an evolving covariance matrix, it has been hypothesized that this adapted matrix approximates the inverse Hessian of the search landscape. This hypothesis has been proven for a static model relying on a quadratic approximation.