icaros-usc / pyribs

A bare-bones Python library for quality diversity optimization.
https://pyribs.org
MIT License
207 stars 33 forks source link

Introduced the Ranker object, responsible for ranking the solutions based on different objectives #209

Closed itsdawei closed 2 years ago

itsdawei commented 2 years ago

Description

This PR is a split from #207

This PR introduces major API changes for the Emitter class. Emitter class now requires a Ranker object and a Selector object.

The Ranker object will define a rank function which returns the index of the solutions in the descending order that they should be in. It will also define a reset function which resets the internal states of the object.

RandomDirectionEmitter, OptimizingEmitter, and ImprovementEmitter are now all combined into EvolutionStrategyEmitter, which can be configured to use different Ranker's.

We also introduce FilterSelector and MuSelector objects which defines a select() function that decides how many parents to select from the potential parents.

EvolutionStrategyEmitter(x0, sigma0, ranker=Ranker, string, selector, ES, restart_rule, bounds, batch_size, seed) If ranker=str, then we create the object for you

TODO

Others

Status