Releases: icaros-usc/pyribs
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_archive
andarchive
have 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
_batch
from 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_pandas
in 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)
pyribs 0.6.2
pyribs 0.6.0
Twitter: https://x.com/btjanaka/status/1702766584153121161
Changelog
API
- Drop Python 3.7 support and upgrade dependencies (#350)
- Add visualization of QDax repertoires (#353)
- Improve cvt_archive_heatmap flexibility (#354)
- Clip Voronoi regions in cvt_archive_heatmap (#356)
- Backwards-incompatible: Allow using kwargs for colorbar in
parallel_axes_plot (#358)- Removes cbar_orientaton and cbar_pad args for parallel_axes_plot
- Add
rasterized
arg for heatmaps (#359) - Support 1D cvt_archive_heatmap (#362)
- Add 3D plots for CVTArchive (#371)
- Add visualization of 3D QDax repertoires (#373)
- Enable plotting custom data in visualizations (#374)
Documentation
- Use dask instead of multiprocessing for lunar lander tutorial (#346)
- pip install swig before gymnasium[box2d] in lunar lander tutorial (#346)
- Fix lunar lander dependency issues (#366, #367)
- Simplify DQD tutorial imports (#369)
- Improve visualization docs examples (#372)
Improvements
- Improve developer workflow with pre-commit (#351, #363)
- Speed up 2D cvt_archive_heatmap by order of magnitude (#355)
- Refactor visualize module into multiple files (#357)
- Refactor visualize tests into multiple files (#370)
- Add GitHub link roles in documentation (#361)
- Refactor argument validation utilities (#365)
- Use Conda envs in all CI jobs (#368)
- Split tutorial CI into multiple jobs (#375)
pyribs 0.5.2
This release contains miscellaneous edits to our documentation from v0.5.1.
Furthermore, the library is updated to support Python 3.11, removed deprecated
options, and strengthened with more robust checks and error messages in the
schedulers.
Changelog
API
- Support Python 3.11 (#342)
- Check that emitters passed in are lists/iterables in scheduler (#341)
- Fix Matplotlib
get_cmap
deprecation (#340) - Backwards-incompatible: Default
plot_centroids
to False when plotting
(#339) - Raise error messages when
ask
is called withoutask_dqd
(#338)
Documentation
- Add BibTex citation for GECCO 2023 (#337)
Improvements
- Update distribution dependencies (#344)
pyribs 0.5.1
This release contains miscellaneous edits to our documentation from v0.5.0. There were no changes to library functionality in this release.
pyribs 0.5.0
To learn about this release, see our page on What's New in v0.5.0:
https://docs.pyribs.org/en/stable/whats-new.html
Changelog
API
- Schedulers warn if no solutions are inserted into archive (#320)
- Implement
BanditScheduler
(#299) - Backwards-incompatible: Implement Scalable CMA-ES Optimizers (#274, #288)
- Make ribs.emitters.opt public (#281)
- Add normalized QD score to ArchiveStats (#276)
- Backwards-incompatible: Make ArchiveStats a dataclass (#275)
- Backwards-incompatible: Add shape checks to
tell()
andtell_dqd()
methods (#269) - Add method for computing CQD score in archives (#252)
- Backwards-incompatible: Deprecate positional arguments in constructors
(#261) - Backwards-incompatible: Allow custom initialization in Gaussian and
IsoLine emitters (#259, #265) - Implement CMA-MAE archive thresholds (#256, #260, #314)
- Revive the old implementation of
add_single
removed in (#221) - Add separate tests for
add_single
andadd
with single solution
- Revive the old implementation of
- Fix all examples and tutorials (#253)
- Add restart timer to
EvolutionStrategyEmitter
and
GradientArborescenceEmitter
(#255) - Rename fields and update documentation (#249, #250)
- Backwards-incompatible: rename
Optimizer
toScheduler
- Backwards-incompatible: rename
objective_value
toobjective
- Backwards-incompatible: rename
behavior_value
/bcs
tomeasures
- Backwards-incompatible:
behavior_dim
in archives is nowmeasure_dim
- Rename
n_solutions
tobatch_size
inScheduler
.
- Backwards-incompatible: rename
- Add
GradientArborescenceEmitter
, which is used to implement CMA-MEGA (#240,
#263, #264, #282, #321) - Update emitter
tell()
docstrings to no longer say "Inserts entries into
archive" (#247) - Expose
emitter.restarts
as a property (#248) - Specify that
x0
is 1D for all emitters (#244) - Add
best_elite
property for archives (#237) - Rename methods in ArchiveDataFrame and rename as_pandas behavior columns
(#236) - Re-run CVTArchive benchmarks and update CVTArchive (#235)
- Backwards-incompatible:
use_kd_tree
now defaults to True since the k-D
tree is always faster than brute force in benchmarks.
- Backwards-incompatible:
- Allow adding solutions one at a time in optimizer (#233)
- Minimize numba usage (#232)
- Backwards-incompatible: Implement batch addition in archives (#221, #242)
add
now adds a batch of solutions to the archiveadd_single
adds a single solution
emitter.tell
now takes instatus_batch
andvalue_batch
(#227)- Make epsilon configurable in archives (#226)
- Backwards-incompatible: Remove ribs.factory (#225, #228)
- Backwards-incompatible: Replaced
ImprovementEmitter
,
RandomDirectionEmitter
, andOptimizingEmitter
with
EvolutionStrategyEmitter
(#220, #223, #278) - Raise ValueError for incorrect array shapes in archive methods (#219)
- Introduced the Ranker object, which is responsible for ranking the solutions
based on different objectives (#209, #222, #245) - Add index_of_single method for getting index of measures for one solution
(#214) - Backwards-incompatible: Replace elite_with_behavior with retrieve and
retrieve_single in archives (#213, #215, #295) - Backwards-incompatible: Replace get_index with batched index_of method in
archives (#208)- Also added
grid_to_int_index
andint_to_grid_index
methods for
GridArchive
andSlidingBoundariesArchive
- Also added
- Backwards-incompatible: Made it such that each archive is initialized
fully in its constructor instead of needing a separate
.initialize(solution_dim) call (#200) - Backwards-incompatible: Add
sigma
,sigma0
options to
gaussian_emitter
andiso_line_emitter
(#199)gaussian_emitter
constructor requiressigma
;sigma0
is optional.iso_line_emitter
constructor takes in optional parametersigma0
.
- Backwards-incompatible: Add
cbar
,aspect
options for
cvt_archive_heatmap
(#197) - Backwards-incompatible: Add
aspect
option togrid_archive_heatmap
+
support for 1D heatmaps (#196)square
option no longer works
- Backwards-incompatible: Add
cbar
option togrid_archive_heatmap
(#193) - Backwards-incompatible: Replace
get_random_elite()
with batched
sample_elites()
method (#192) - Backwards-incompatible: Add EliteBatch and rename fields in Elite (#191)
- Backwards-incompatible: Rename bins to cells for consistency with
literature (#189)- Archive constructors now take in
cells
argument instead ofbins
- Archive now have a
cells
property rather than abins
property
- Archive constructors now take in
- Backwards-incompatible: Only use integer indices in archives (#185)
ArchiveBase
- Replaced
storage_dims
(tuple of int) withstorage_dim
(int) _occupied_indices
is now a fixed-size array with_num_occupied
indicating its current usage, and_occupied_indices_cols
has been
removedindex_of
must now return an integer
- Replaced
Bugs
- Fix boundary lines in sliding boundaries archive heatmap (#271)
- Fix negative eigenvalue in CMA-ES covariance matrix (#285)
Documentation
- Speed up lunar lander tutorial (#319)
- Add DQDTutorial (#267)
- Remove examples extra in favor of individual example deps (#306)
- Facilitate linking to latest version of documentation (#300)
- Update lunar lander tutorial with v0.5.0 features (#292)
- Improve tutorial and example overviews (#291)
- Move tutorials out of examples folder (#290)
- Update lunar lander to use Gymnasium (#289)
- Add CMA-MAE tutorial (#273, #284)
- Update README (#279)
- Add sphinx-codeautolink to docs (#206, #280)
- Fix documentation rendering issues on ReadTheDocs (#205)
- Fix typos and formatting in docstrings of
ribs/visualize.py
(#203) - Add in-comment type hint rich linking (#204)
- Upgrade Sphinx dependencies (#202)
Improvements
pyribs 0.4.0
To learn about this release, see our blog post: https://pyribs.org/blog/0-4-0
Changelog
API
- Add ribs.visualize.parallel_axes_plot for analyzing archives with high-dimensional BCs (#92)
- Backwards-incompatible: Reduce attributes and parameters in EmitterBase to make it easier to extend (#101)
- In Optimizer, support emitters that return any number of solutions in ask() (#101)
- Backwards-incompatible: Store metadata in archives as described in #87 (#103, #114, #115, #119)
- Backwards-incompatible: Rename "index" to "index_0" in CVTArchive.as_pandas for API consistency (#113)
- Backwards-incompatible: Make get_index() public in archives to emphasize each index's meaning (#128)
- Backwards-incompatible: Add index to get_random_elite() and elite_with_behavior() in archives (#129)
- Add clear() method to archive (#140, #146)
- Represent archive elites with an Elite namedtuple (#142)
- Add len and iter methods to archives (#151, #152)
- Add statistics to archives (#100, #157)
- Improve manipulation of elites by modifying as_pandas (#123, #149, #153, #158, #168)
- Add checks for optimizer array and list shapes (#166)
Documentation
- Add bibtex citations for tutorials (#122)
- Remove network training from Fooling MNIST tutorial (#161)
- Fix video display for lunar lander in Colab (#163)
- Fix Colab links in stable docs (#164)
Improvements
- Add support for Python 3.9 (#84)
- Test with pinned versions (#110)
- Increase minimum required versions for scipy and numba (#110)
- Refactor as_pandas tests (#114)
- Expand CI/CD to test examples and tutorials (#117)
- Tidy up existing tests (#120, #127)
- Fix vocab in various areas (#138)
- Fix dependency issues in tests (#139)
- Remove tox from CI (#143)
- Replace "entry" with "elite" in tests (#144)
- Use new archive API in ribs.visualize implementation (#155)