pyribs 0.8.0
To learn about this release, see our page on What's New in v0.8.0:
https://docs.pyribs.org/en/stable/whats-new.html
Thanks to @szhaovas, @gresavage, and @Tekexa for contributing to this release!
Changelog
API
- Implement BOP-Elites by adding BayesianOptimizationEmitter and
BayesianOptimizationScheduler; add BOP-Elites demo (#496) - Allow result_archive to be positional arg in schedulers (#557)
- Backwards-incompatible: Make
num_activea keyword-only arg in
BanditScheduler (#557) - Add CategoricalArchive (#549)
- Support solutions with non-1D shapes (#550)
- Backwards-incompatible: Move cqd_score into a separate function
(#537) - Backwards-incompatible: Make archive field_list and dtypes props include
index (#532) - Backwards-incompatible: Remove thresholds from SlidingBoundariesArchive
(#527) - Backwards-incompatible: Remove transforms from archive add operations
(#525) - Add retessellate method to GridArchive (#516)
- Backwards-incompatible: Tidy up operator implementation (#507,
#510) - Drop Python 3.8 support and remove pinned requirements {#497)
- Backwards-incompatible: BanditScheduler: Add emitter_pool and active attr;
remove emitters attr (#494) - Add DensityArchive and DensityRanker for Density Descent Search (#483,
#504, #487, #543, #546) - Add NoveltyRanker for novelty search (#477)
- Add proximity_archive_plot for visualizing ProximityArchive (#476,
#480, #523) - Support novelty search with local competition in ProximityArchive (#481)
- Add ProximityArchive for novelty search (#472, #479, #484,
#521, #527) - Support diversity optimization in Scheduler.tell (#473)
- Allow specifying separate dtypes for solution, objective, and measures
(#471) - Replace archive.dtype with archive.dtypes dict that holds dtype of every field
(#470)
Bugs
- Make emitter bounds dtype match solution dtype (#519)
- Fix
BanditSchedulerbehaviour: the number of active emitters remains stable
(#489)
Documentation
- Add Novelty Search with Kheperax tutorial (#552)
- Add Supported Algorithms page (#559)
- Add cqd_score example (#537)
- Update sphere example for consistency (#505)
- Tutorial edits (#500, #553, #554)
- Add version selector to docs (#495)
- Update gymnasium and lunar lander version (#493)
- Add tutorial page on Optuna integration (#492)
- Switch from std to var in arm tutorial (#486)
- Fix documentation conf for readthedocs deprecations (#485)
- Add novelty search with CMA-ES to sphere example (#478, #482)
- Clarify errors in scheduler docstrings (#488)
Improvements
- Remove
np_scalarutil by making archive dtypes be numpy scalar types
(#534) - Refactor archives into single-file implementations (#518, #521,
#526, #528, #529, #530, #533, #535) - Make ArrayStore.data return ArchiveDataFrame instead of DataFrame (#522)
- Migrate to pyproject.toml (#514)
- Set vmin and vmax to None if archive is empty in ribs.visualize (#513,
#523) - Remove operators from GaussianEmitter and IsoLineEmitter (#508)
- Update QDax visualizations to match QDax 0.5.0 (#502)
- Skip qdax tests if qdax not installed (#491)
- Move yapf after isort in pre-commit (#490)
- Remove
_cellsattribute from ArchiveBase (#475) - Upgrade setup-miniconda to v3 due to deprecation (#464)