ribs.emitters.EmitterBase¶
- class ribs.emitters.EmitterBase(archive, *, solution_dim, bounds)[source]¶
Base class for emitters.
Every emitter has an
ask()
method that generates a batch of solutions, and atell()
method that inserts solutions into the emitter’s archive. Child classes are only required to overrideask()
.DQD emitters should override
ask_dqd()
andtell_dqd()
methods.- Parameters
archive (ribs.archives.ArchiveBase) – An archive to use when creating and inserting solutions. For instance, this can be
ribs.archives.GridArchive
.solution_dim (int) – The dimension of solutions produced by this emitter.
bounds (None or array-like) –
Bounds of the solution space. Pass None to indicate there are no bounds. Alternatively, pass an array-like to specify the bounds for each dim. Each element in this array-like can be None to indicate no bound, or a tuple of
(lower_bound, upper_bound)
, wherelower_bound
orupper_bound
may be None to indicate no bound.Unbounded upper bounds are set to +inf, and unbounded lower bounds are set to -inf.
Methods
ask
()Generates a
(batch_size, solution_dim)
array of solutions.ask_dqd
()Generates a
(batch_size, solution_dim)
array of solutions for which gradient information must be computed.tell
(solution_batch, objective_batch, ...[, ...])Gives the emitter results from evaluating solutions.
tell_dqd
(solution_batch, objective_batch, ...)Gives the emitter results from evaluating the gradient of the solutions, only used for DQD emitters.
Attributes
The archive which stores solutions generated by this emitter.
(solution_dim,)
array with lower bounds of solution space.The dimension of solutions produced by this emitter.
(solution_dim,)
array with upper bounds of solution space.- ask()[source]¶
Generates a
(batch_size, solution_dim)
array of solutions.Returns an empty array by default.
- ask_dqd()[source]¶
Generates a
(batch_size, solution_dim)
array of solutions for which gradient information must be computed.This method only needs to be implemented by emitters used in DQD. The method returns an empty array by default.
- tell(solution_batch, objective_batch, measures_batch, status_batch, value_batch, metadata_batch=None)[source]¶
Gives the emitter results from evaluating solutions.
This base class implementation (in
EmitterBase
) needs to be overriden.- Parameters
solution_batch (numpy.ndarray) – Array of solutions generated by this emitter’s
ask()
method.objective_batch (numpy.ndarray) – 1D array containing the objective function value of each solution.
measures_batch (numpy.ndarray) –
(n, <measure space dimension>)
array with the measure space coordinates of each solution.status_batch (numpy.ndarray) – An array of integer statuses returned by a series of calls to archive’s
add_single()
method or by a single call to archive’sadd()
.value_batch (numpy.ndarray) – 1D array of floats returned by a series of calls to archive’s
add_single()
method or by a single call to archive’sadd()
. For what these floats represent, refer toribs.archives.add()
.metadata_batch (numpy.ndarray) – 1D object array containing a metadata object for each solution.
- tell_dqd(solution_batch, objective_batch, measures_batch, jacobian_batch, status_batch, value_batch, metadata_batch=None)[source]¶
Gives the emitter results from evaluating the gradient of the solutions, only used for DQD emitters.
- Parameters
solution_batch (numpy.ndarray) –
(batch_size, :attr:`solution_dim`)
array of solutions generated by this emitter’sask()
method.objective_batch (numpy.ndarray) – 1-dimensional array containing the objective function value of each solution.
measures_batch (numpy.ndarray) –
(batch_size, measure space dimension)
array with the measure space coordinates of each solution.jacobian_batch (numpy.ndarray) –
(batch_size, 1 + measure_dim, solution_dim)
array consisting of Jacobian matrices of the solutions obtained fromask_dqd()
. Each matrix should consist of the objective gradient of the solution followed by the measure gradients.status_batch (numpy.ndarray) – 1d array of
ribs.archive.addstatus
returned by a series of calls to archive’sadd()
method.value_batch (numpy.ndarray) – 1d array of floats returned by a series of calls to archive’s
add()
method. for what these floats represent, refer toribs.archives.add()
.metadata_batch (numpy.ndarray) – 1d object array containing a metadata object for each solution.
- property archive¶
The archive which stores solutions generated by this emitter.
- property lower_bounds¶
(solution_dim,)
array with lower bounds of solution space.For instance,
[-1, -1, -1]
indicates that every dimension of the solution space has a lower bound of -1.- Type
- property upper_bounds¶
(solution_dim,)
array with upper bounds of solution space.For instance,
[1, 1, 1]
indicates that every dimension of the solution space has an upper bound of 1.- Type