The CMA-ES algorithm as described in Hansen, N. (2006). The CMA Evolution Strategy: A Comparing Rewiew.
The provided population should be a list of one or more individuals. The other keyworded arguments are passed to the class CMAStrategy.
Additional configuration may be passed throught the params argument as a dictionary,
Parameter | Default | Details |
---|---|---|
lambda_ | floor(4 + 3 * log(N)) | Number of children to produce at each generation, N is the individual’s size. |
mu | floor(lambda_ / 2) | The number of parents to keep from the lambda children. |
weights | "superlinear" | Decrease speed, can be "superlinear", "linear" or "equal". |
cs | (mueff + 2) / (N + mueff + 3) | Cumulation constant for step-size. |
damps | 1 + 2 * max(0, sqrt(( mueff - 1) / (N + 1)) - 1) + cs | Damping for step-size. |
ccum | 4 / (N + 4) | Cumulation constant for covariance matrix. |
ccov1 | 2 / ((N + 1.3)^2 + mueff) | Learning rate for rank-one update. |
ccovmu | 2 * (mueff - 2 + 1 / mueff) / ((N + 2)^2 + mueff) | Learning rate for rank-mu update. |
Those parameters depends on lambda and need to computed again if it changes during evolution.
Generate lambda offsprings from the current strategy using the centroid individual as parent.
Update the current covariance matrix strategy.