matrixcovarianceevolutionary-algorithm

Is CMA-ES (mu, lambda) or (mu + lambda)?


I know the basic components required for a covariance matrix adaptation- evolutionary strategy, but I can't seem to find anywhere that explicitly states whether the selected children(lambda) replace the parent population(mu) or are added to it.

I know this distinction makes a huge difference in evolutionary computation on whether your population gets stuck on and converges at a local optimum, or whether it is able to break from local ones and finds global optimum. Any help on solving this quandary is much appreciated.


Solution

  • The population in CMA-ES is actually built using a (mu / mu_w, lambda). This notation is from the CMA-ES tutorial which covers the algorithm in great details :

    (mu / mu_w, lambda)-ES, Evolution Strategy with parents, with recombination of all parents, either Intermediate or Weighted, and offspring.

    In classic evolution strategies, the mu individuals are mutated to produce lambda new solutions. The algorithm then either add those lambda solutions to the first mu (mu+lambda) or keep only the lambda solutions (mu, lambda).

    CMA-ES first samples lambda solutions from a gaussian distribution. It then computes a new mean of the search distribution by computing the mean of the mu fittest sampled solutions. Finally, the algorithm updates the covariance matrix of the distribution using specialized mechanisms that will not be covered here but that also use the mu fittest sampled solutions.