ribs.emitters.opt.OpenAIEvolutionStrategy

class ribs.emitters.opt.OpenAIEvolutionStrategy(sigma0, solution_dim, batch_size=None, seed=None, dtype=<class 'numpy.float64'>, mirror_sampling=True, **adam_kwargs)[source]

OpenAI-ES optimizer for use with emitters.

Refer to EvolutionStrategyBase for usage instruction.

Parameters
  • sigma0 (float) – Initial step size.

  • batch_size (int) – Number of solutions to evaluate at a time. If None, we calculate a default batch size based on solution_dim.

  • 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.

  • mirror_sampling (bool) – Whether to use mirror sampling when gathering solutions. Defaults to True.

  • adam_kwargs (dict) – Keyword arguments passed to AdamOpt.

Methods

ask(lower_bounds, upper_bounds[, 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, num_parents)

Passes the solutions back to the optimizer.

ask(lower_bounds, upper_bounds, batch_size=None)[source]

Samples new solutions from the Gaussian distribution.

Note: Bounds are currently not enforced.

Parameters
  • 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).

  • 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) – Array of objective values of the solutions, sorted in the same order that the solutions were sorted when passed to tell().

Returns

True if any of the stopping conditions are satisfied.

reset(x0)[source]

Resets the optimizer to start at x0.

Parameters

x0 (np.ndarray) – Initial mean.

tell(ranking_indices, num_parents)[source]

Passes the solutions back to the optimizer.

Parameters
  • ranking_indices (array-like of int) – Indices that indicate the ranking of the original solutions returned in ask().

  • num_parents (int) – Number of top solutions to select from the ranked solutions.