ribs.emitters.rankers.TwoStageRandomDirectionRanker

class ribs.emitters.rankers.TwoStageRandomDirectionRanker[source]

Similar to ribs.emitters.rankers.RandomDirectionRanker, but the solutions are first ranked by whether they are added, then by their projection onto a random direction in the archive space.

This ranker originates from Fontaine 2020 as RandomDirectionEmitter.

Methods

rank(emitter, archive, rng, solution_batch, ...)

Ranks the solutions first by whether they are added, then by their projection onto a random direction in the archive.

reset(emitter, archive, rng)

Generates a random direction in the archive's measure space.

Attributes

target_measure_dir

(measure_dim,) array with the target measure direction vector.

rank(emitter, archive, rng, solution_batch, objective_batch, measures_batch, status_batch, value_batch, metadata_batch)[source]

Ranks the solutions first by whether they are added, then by their projection onto a random direction in the archive.

Parameters
  • emitter (ribs.emitters.EmitterBase) – Emitter that this ranker object belongs to.

  • archive (ribs.archives.ArchiveBase) – Archive used by emitter when creating and inserting solutions.

  • rng (numpy.random.Generator) – A random number generator.

  • solution_batch (numpy.ndarray) – Batch of solutions generated by the emitter’s ask() method.

  • objective_batch (numpy.ndarray) – Batch of objective values.

  • 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’s add().

  • 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’s add(). For what these floats represent, refer to ribs.archives.add().

  • metadata_batch (numpy.ndarray) – 1D object array containing a metadata object for each solution.

Returns

the first array (shape (batch_size,)) is an array of indices representing a ranking of the solutions and the second array (shape (batch_size,) or (batch_size, n_values)``) is an array of values that this ranker used to rank the solutions. batch_size is the number of solutions and n_values is the number of values that the rank function used.

Return type

tuple(numpy.ndarray, numpy.ndarray)

reset(emitter, archive, rng)[source]

Generates a random direction in the archive’s measure space.

A random direction is sampled from a standard Gaussian – since the standard Gaussian is isotropic, there is equal probability for any direction. The direction is then scaled to the archive bounds so that it is a random archive direction.

Parameters
property target_measure_dir

(measure_dim,) array with the target measure direction vector.

Type

numpy.ndarray