ribs.emitters.opt.PyCMAEvolutionStrategy¶
- class ribs.emitters.opt.PyCMAEvolutionStrategy(sigma0, solution_dim, batch_size=None, seed=None, dtype=<class 'numpy.float64'>, lower_bounds=None, upper_bounds=None, opts=None)[source]¶
Wrapper around the pycma
CMAEvolutionStrategy
.- Parameters
sigma0 (float) – Initial step size.
batch_size (int or str) – Number of solutions to evaluate at a time. This is passed directly as
popsize
inopts
.solution_dim (int) – Size of the solution space.
seed (int) – Seed for the random number generator.
dtype (str or data-type) – Data type of solutions.
lower_bounds (float or np.ndarray) – scalar or (solution_dim,) array indicating lower bounds of the solution space. Scalars specify the same bound for the entire space, while arrays specify a bound for each dimension. Pass -np.inf in the array or scalar to indicated unbounded space.
upper_bounds (float or np.ndarray) – Same as above, but for upper bounds (and pass np.inf instead of -np.inf).
opts (dict) – Additional options for pycma. Note that
popsize
,bounds
,randn
, andseed
are overwritten by us and thus should not be provided in this dict. We also makeverbose
default to -9, but you can also pass in a custom value here.
Methods
ask
([batch_size])Samples new solutions from the Gaussian distribution.
check_stop
(ranking_values)Checks if the optimization should stop and be reset.
reset
(x0)Resets the optimizer to start at x0.
tell
(ranking_indices, ranking_values, ...)Passes the solutions back to the ES.
Attributes
Number of solutions per iteration.
- ask(batch_size=None)[source]¶
Samples new solutions from the Gaussian distribution.
- Parameters
batch_size (int) – batch size of the sample. Defaults to
self.batch_size
.
- check_stop(ranking_values)[source]¶
Checks if the optimization should stop and be reset.
- Parameters
ranking_values (np.ndarray) – Not used.
- Returns
Output of cma.CMAEvolutionStrategy.stop
- tell(ranking_indices, ranking_values, num_parents)[source]¶
Passes the solutions back to the ES.
- Parameters
ranking_indices (numpy.ndarray) – Integer indices that are used to rank the solutions returned in
ask()
. Note that these are NOT the ranks of the solutions. Rather, they are indices such thatsolutions[ranking_indices]
will correctly rank the solutions (think of an argsort).ranking_values (numpy.ndarray) – Array of values that were used to rank the solutions. Shape can be either
(batch_size,)
or (batch_size, n_values)``, wherebatch_size
is the number of solutions andn_values
is the number of values that the ranker used. Note that we assume a descending sort, i.e., higher values should come first.num_parents (int) – Number of top solutions to select from the ranked solutions.