Releases: icaros-usc/pyribs
pyribs 0.9.0
To learn about this release, see our page on What's New in v0.9.0:
https://docs.pyribs.org/en/stable/whats-new.html
Changelog
API
- Add
replaceparameter to sample_elites in archives (#682) - Require numpy to be at least 2.0.0 (#681)
- Allow specifying
centroidswith filenames in CVTArchive (#679) - Add
kdtree_query_kwargsparameter to CVTArchive (#677) - Backwards-incompatible: Replace
ckdtree_kwargswithkdtree_kwargsin
CVTArchive and ProximityArchive (#676) - Add
sklearn_nnas an option fornearest_neighborsin CVTArchive
(#675) - Backwards-incompatible: Replace
use_kd_treewithnearest_neighborsin
CVTArchive (#674) - Drop Python 3.9 support and add 3.14 support (#672)
- Separate centroid generation from init in CVTArchive (#663)
- Backwards-incompatible: Replace the
cellsandcustom_centroids
parameters with a newcentroidsparameter in CVTArchive - Backwards-incompatible: Remove the
samplesproperty from CVTArchive - Backwards-incompatible: Remove
plot_samplesfromcvt_archive_heatmap
andcvt_archive_3d_plot
- Backwards-incompatible: Replace the
- Add
k_means_centroidsfunction (#665) - Backwards-incompatible: Remove
centroid_methodfromCVTArchive
(#662) - Support multi-dimensional solutions in GaussianEmitter and IsoLineEmitter
(#650) - Allow specifying emitter bounds with
lower_boundsandupper_bounds
(#649, #657) - Backwards-incompatible: Deprecate dict
dtypein archives and instead use
solution_dtype,objective_dtype, andmeasures_dtype(#639,
#643, #661) - Raise
KeyErrorinArchiveDataFrame.get_fieldwhen field not found
(#626) - Support array backends in ArrayStore via Python array API Standard
(#570, #645) - Backwards-incompatible: Remove raw_dict methods from ArrayStore
(#575)
Improvements
- Use dtypes when calling asarray in archive methods (#673)
- Replace cKDTree usage with KDTree (#669)
- Support ProximityArchive in parallel_axes_plot (#647)
- Cast dtype when validating arguments (#646)
- Add type annotations and use ty for type checking (#624)
- Migrate from pylint to ruff for linting (#605, #607, #612,
#619, #666) - Replace isort with ruff import check (#603)
Documentation
pyribs 0.8.3
pyribs 0.8.2
This release focuses on improving documentation for pyribs, particularly by
adding the
QDAIF tutorial.
Changelog
Documentation
- Migrate docs to sphinx-immaterial theme (#596)
- Misc documentation fixes (#588, #595, #597)
- Add QDAIF tutorial (#587, #589, #590, #594, #600)
- Make all metrics start from values in archive stats (#586)
- Update dependencies for lunar lander (#585)
Improvements
pyribs 0.8.1
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)
pyribs 0.7.1
This release introduces the
QDHF tutorial! It also
makes a couple of minor usability improvements, such as better error checking.
Changelog
API
- Support Python 3.12 (#390)
Improvements
- Add qd score to lunar lander example (#458)
- Raise error if
result_archiveandarchivehave different fields
(#461) - Warn user if resampling for bounds takes too long in ESs (#462)
Documentation
- Add QDHF tutorial (#459)
Bugs
- Fix solution retrieval in lunar lander eval (#457)
pyribs 0.7.0
To learn about this release, see our page on What's New in v0.7.0:
https://docs.pyribs.org/en/stable/whats-new.html
Special thanks to our new contributors! @HenryChen4, @svott03, @yutaizhou, @vbhatt-cs
Changelog
API
- Support alternative centroid generation methods in CVTArchive (#417,
#437) - Add PyCMAEvolutionStrategy for using pycma in ES emitters (#434)
- Backwards-incompatible: Add ranking values to evolution strategy tell
method (#438) - Backwards-incompatible: Move evolution strategy bounds to init (#436)
- Backwards-incompatible: Use seed instead of rng in ranker (#432)
- Backwards-incompatible: Replace status and value with add_info (#430)
- Support custom data fields in archive, emitters, and scheduler (#421,
#429) - Backwards-incompatible: Remove
_batchfrom parameter names (#422,
#424, #425, #426, #428) - Add Gaussian, IsoLine Operators and Refactor GaussianEmitter/IsoLineEmitter
(#418) - Backwards-incompatible: Remove metadata in favor of custom fields
(#420) - Add Base Operator Interface and Emitter Operator Retrieval (#416)
- Backwards-incompatible: Return occupied booleans in retrieve (#414)
- Backwards-incompatible: Deprecate
as_pandasin favor of
data(return_type="pandas")(#408) - Backwards-incompatible: Replace ArchiveDataFrame batch methods with
get_field(#413) - Add field_list and data methods to archives (#412)
- Include threshold in
archive.best_elite(#409) - Backwards-incompatible: Replace Elite and EliteBatch with dicts
(#397) - Backwards-incompatible: Rename
measure_*columns tomeasures_*in
as_pandas(#396) - Add ArrayStore data structure (#395, #398, #400, #402,
#403, #404, #406, #407, #411) - Add GradientOperatorEmitter to support OMG-MEGA and OG-MAP-Elites (#348)
Improvements
- Raise error when threshold_min is set but learning_rate is not (#453)
- Fix interval_size in CVTArchive and SlidingBoundariesArchive (#452)
- Allow overriding ES in sphere example (#439)
- Use NumPy SeedSequence in emitters (#431, #440)
- Use numbers types when checking arguments (#419)
- Reimplement ArchiveBase using ArrayStore (#399)
- Use chunk computation in CVT brute force calculation to reduce memory usage
(#394) - Test pyribs installation in tutorials (#384)
- Add cron job for testing installation (#389, #401)
- Fix broken cross-refs in docs (#393)
Documentation
- Tidy up LSI MNIST notebook (#444)
pyribs 0.6.4
pyribs 0.6.3
Small patch release due to deprecation issues.
Changelog
Improvements
- Replace np.product with np.prod due to deprecation (#385)