New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement Evolution Strategy Emitter #220
Conversation
For reference, we are gonna leave a table that shows the performance (archive coverage, QD score, and time) of the previous implementation using different emitters and the new implementation that adapts a emitter-ranker structure (using only the evolution_strategy_emitter).
We note that our new implementation has similar coverage and QD score compared to that of the old implementation. Hence, we justify that our new implementation is algorithmically equivalent to the old implementation. |
Description
This PR is a split from #207
This PR introduces major API changes for the
Emitter
class.Emitter
class now requires aRanker
object and aSelector
object.The
Ranker
object will define arank
function which returns the index of the solutions in the descending order that they should be in. It will also define areset
function which resets the internal states of the object.We also introduce
FilterSelector
andMuSelector
objects which defines aselect()
function that decides how many parents to select from the potential parents.Introduced EvolutionStrategyEmitter(x0, sigma0, ranker, restart_rule, bounds, batch_size, seed), which can serve as
RandomDirectionEmitter
,OptimizingEmitter
, andImprovementEmitter
depending on the ranker object.Bugs Discovered
TODO
EvolutionStrategyEmitter
examples/sphere
Status
yapf
pytest
pylint
HISTORY.md
.