icaros-usc / pyribs

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

[FEATURE REQUEST] Implement Active CMA-ES #85

Open tehqin opened 3 years ago

tehqin commented 3 years ago

Description

Currently, the CMA-ES implementation doesn't support negative weights. Implement this feature.

Note: some thought is required for filter-based selection.

Reference on active CMA-ES: https://hal.archives-ouvertes.fr/hal-00503250/document

twoletters commented 2 years ago

Does this relate to parameter "weight_rule" (either "truncation" or "active") in the CMA-ES-based emitters? I am trying to determine the implications of setting it to "active", but could not understand the limited documentation or make sense of the code. It looks like these emitters can generate negative values even with "weight_rule" set to "truncation", so what is the purpose of it?

btjanaka commented 2 years ago

@twoletters Correct, this relates to setting weight_rule="active". This would correspond to leveraging active CMA-ES https://hal.archives-ouvertes.fr/hal-00503250/document such that we update the covariance matrix based both on solutions that were inserted into the archive and solutions that were not inserted into the archive. Currently, weight_rule="active" is actually not implemented (I think you will eventually get an error if you use this option) -- hence why we raised this issue.