ribs.emitters.opt.EvolutionStrategyBase

class ribs.emitters.opt.EvolutionStrategyBase(sigma0, solution_dim, batch_size=None, seed=None, dtype=<class 'numpy.float64'>)[source]

Base class for evolution strategy optimizers for use with emitters.

The basic usage is:

  • Initialize the optimizer and reset it.

  • Repeatedly:

    • Request new solutions with ask()

    • Rank the solutions in the emitter (better solutions come first) and pass the indices back with tell().

    • Use check_stop() to see if the optimizer has reached a stopping condition, and if so, call reset().

Parameters
  • sigma0 (float) – Initial step size.

  • solution_dim (int) – Size of the solution space.

  • batch_size (int) – Number of solutions to evaluate at a time.

  • seed (int) – Seed for the random number generator.

  • dtype (str or data-type) – Data type of solutions.

Methods

ask(lower_bounds, upper_bounds)

Samples new solutions from the Gaussian distribution.

check_stop(ranking_values)

Checks if the optimizer 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.

abstract ask(lower_bounds, upper_bounds)[source]

Samples new solutions from the Gaussian distribution.

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

abstract check_stop(ranking_values)[source]

Checks if the optimizer 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.

abstract reset(x0)[source]

Resets the optimizer to start at x0.

Parameters

x0 (np.ndarray) – Initial mean.

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