class CmaesInitializer(*, bounds, initial_mean=None, initial_step_size=None, initial_covariance=None, rng_seed=None)

Configuration for the covariance matrix adaptation evolution strategy (CMA-ES) based optimizer. Note that this optimizer requires at least \(4 + \lfloor 3 \times \log N \rfloor\) results each step, where \(N\) is the number of optimizable parameters. Otherwise, it will throw an error. The 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. For more detail on CMA-ES see CMA-ES on Wikipedia.

  • bounds (List[qctrl.dynamic.types.closed_loop_optimization_step.BoxConstraint]) – The per-parameter bounds on the test points. The bounds are defined by imposing a box constraint on each individual parameter. That is, for each parameter \(x_j\), the optimizer is only allowed to search the next test point subject to the constraint such that \(x^{\rm lower}_j \leq x_j \leq x^{\rm upper}_j\). These constraints must be in the same order as parameters in CostFunctionResult.

  • initial_mean (List[float], optional) – The initial mean of the parameters for the multivariate normal distribution. Defaults to an array of ones.

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

  • initial_covariance (List[List[float]], optional) – The initial covariance between the different parameters for the multivariate normal distribution. Defaults to the identity matrix.

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