ribs.emitters.rankers.TwoStageImprovementRanker¶
-
class ribs.emitters.rankers.TwoStageImprovementRanker(seed: int | integer | None =
None)[source]¶ Ranks solutions based on status and on improvement in the objective.
This ranker originates in Fontaine 2020 in which it was referred to as “Improvement Emitter”. This ranker ranks solutions in two stages. First, solutions are ranked by “status” – those that found a new cell in the archive rank above those that improved an existing cell, which rank above those that were not added to the archive. Second, solutions are ranked by the “value” returned by archive
addmethods, such asribs.archives.GridArchive.add().Methods
rank(emitter, archive, data, add_info)Generates a list of indices that represents an ordering of solutions.
reset(emitter, archive)Resets the internal state of the ranker.
- rank(emitter: EmitterBase, archive: ArchiveBase, data: dict[str, ndarray], add_info: dict[str, ndarray]) tuple[ndarray, ndarray][source]¶
Generates a list of indices that represents an ordering of solutions.
- Parameters:¶
- emitter: EmitterBase¶
Emitter that this
rankerobject belongs to.- archive: ArchiveBase¶
Archive used by
emitterwhen creating and inserting solutions.- data: dict[str, ndarray]¶
Dict mapping from field names like
solutionandobjectiveto arrays with data for the solutions.- add_info: dict[str, ndarray]¶
Information returned by an archive’s
add()method.
- 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_sizeis the number of solutions andn_valuesis the number of values that the rank function used.
- reset(emitter: EmitterBase, archive: ArchiveBase) None¶
Resets the internal state of the ranker.
- Parameters:¶
- emitter: EmitterBase¶
Emitter that this
rankerobject belongs to.- archive: ArchiveBase¶
Archive used by
emitterwhen creating and inserting solutions.