The Boulder Opal Toolkits are currently in beta phase of development. Breaking changes may be introduced.

class Cmaes(initial_mean=None, initial_step_size=None, initial_covariance=None, seed=None)

The covariance matrix adaptation evolution strategy (CMA-ES) optimizer.

  • initial_mean (np.ndarray, optional) – The array of the initial means of the parameters for the multivariate normal distribution. Defaults to an array of ones.

  • initial_step_size (float, optional) – The initial step size for the multivariate normal distribution from which new test points are sampled. Defaults to one.

  • initial_covariance (np.ndarray, optional) – The initial covariance matrix between the different parameters for the multivariate normal distribution, as a 2D square array. Defaults to the identity matrix.

  • seed (int, optional) – Seed for the random number generator. Use this option to generate deterministic results from the optimizer.


The CMA-ES optimizer uses a multivariate normal distribution to generate new test points. The mean, step size, and covariance of this distribution are determined from their previous values and the current set of results.

Note that this optimizer requires at least \(4 + \lfloor 3 \times \log N \rfloor\) initial test parameters, where \(N\) is the number of optimizable parameters. Otherwise, it will throw an error.

For more detail on CMA-ES see CMA-ES on Wikipedia.



Return the initialized optimizer.