Add visualization of QDax repertoires #353
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
QDax’s repertoires are not too different from pyribs in terms of the data stored, which means our visualization tools can easily be used for both libraries. This PR makes it possible to visualize one of the main repertoires used in QDax, i.e., the MAPElitesRepertoire. The key idea is to transform the MAPElitesRepertoire into a CVTArchive and then plot the result with
cvt_archive_heatmap
. In this PR, this functionality is exposed via a new function,ribs.visualize.qdax_repertoire_heatmap
. We update the tests and CI accordingly.Note 1: This PR does not introduce a dependency on QDax for pyribs. If a QDax repertoire is passed into the method introduced here, it can be plotted, but we do not import qdax itself at any point.
Note 2: QDax does not have a separate grid archive. Instead, both grid and CVT archives from pyribs are represented with the MAPElitesRepertoire. Specifically, one can choose Euclidean centroids when constructing the repertoire in order to create a "grid archive."
TODO
Questions
Status
CONTRIBUTING.md
yapf
pytest
pylint
HISTORY.md