Evolution Strategies


Implementation of Evolution Strategy: (μ/ρ(+/,)λ)-ES

The constructor takes following keyword arguments:

  • initStrategy: an initial strategy description, (default: empty)
  • recombination: ES recombination function for population (default: first), see Crossover
  • srecombination: ES recombination function for strategies (default: first), see Crossover
  • mutation: Mutation function for population (default: nop)
  • smutation: Mutation function for strategies (default: nop)
  • μ/mu: the number of parents
  • ρ/rho: the mixing number, ρ ≤ μ, (i.e., the number of parents involved in the procreation of an offspring)
  • λ/lambda: the number of offspring
  • selection: the selection strategy :plus or :comma (default: :plus)
  • metrics is a collection of convergence metrics.


The Evolution Strategy is is an optimization technique based on ideas of evolution.

Evolution strategies use natural problem-dependent representations, and primarily Mutation and Selection, as search operators.

The canonical versions of the ES are denoted by $(\sigma/\rho,\lambda)-ES$ and (μ/ρ+λ)-ES, respectively. Here $\mu$ denotes the number of parents, $\rho \leq \mu$ the mixing number (i.e., the number of parents involved in the procreation of an offspring), and $\lambda$ the number of offspring. The parents are deterministically selected (i.e., deterministic survivor selection) from the (multi-)set of either the offspring, referred to as comma-selection ($\mu < \lambda$ must hold), or both the parents and offspring, referred to as plus-selection [1].


The evolution strategy algorithm provides, for every the optimized object parameter vector $x$, a set of strategy parameters $s$. The strategy is used to create an offspring $x^\prime$ is generated from the population individual $x$ on every iteration of the algorithm by applying a mutation operation:

\[x^\prime = mutation(x, s)\]

A strategy s usually has a parameter, e.g. $\sigma$, that controls the strength of the object parameter mutation. For example, if the mutation operation is gaussian then the $\sigma$ is simply the standard deviation of the normally distributed random component.

List of ES strategies:


Returns an isotropic strategy object, which has an one mutation parameter for all object parameter components, with $\sigma = 1.0$, $\tau_0 = \sqrt{2N}^{-1}$, $\tau = \sqrt{2\sqrt{N}}^{-1}$


Returns an anisotropic strategy object, which has an one mutation parameter for each object parameter component, with $\sigma = [1, \ldots, 1]^N$, $\tau_0 = \sqrt{2N}^{-1}$, $\tau = \sqrt{2\sqrt{N}}^{-1}$

See Mutation section for strategy mutation operations.