Skip to content

pyribs 0.5.0

Compare
Choose a tag to compare
@btjanaka btjanaka released this 22 Feb 10:25
· 164 commits to master since this release
f4b397b

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() and tell_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 and add with single solution
  • 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 to Scheduler
    • Backwards-incompatible: rename objective_value to objective
    • Backwards-incompatible: rename behavior_value/bcs to measures
    • Backwards-incompatible: behavior_dim in archives is now measure_dim
    • Rename n_solutions to batch_size in Scheduler.
  • 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.
  • 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 archive
    • add_single adds a single solution
  • emitter.tell now takes in status_batch and value_batch (#227)
  • Make epsilon configurable in archives (#226)
  • Backwards-incompatible: Remove ribs.factory (#225, #228)
  • Backwards-incompatible: Replaced ImprovementEmitter,
    RandomDirectionEmitter, and OptimizingEmitter 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 and int_to_grid_index methods for
      GridArchive and SlidingBoundariesArchive
  • 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 and iso_line_emitter (#199)
    • gaussian_emitter constructor requires sigma; sigma0 is optional.
    • iso_line_emitter constructor takes in optional parameter sigma0.
  • Backwards-incompatible: Add cbar, aspect options for
    cvt_archive_heatmap (#197)
  • Backwards-incompatible: Add aspect option to grid_archive_heatmap +
    support for 1D heatmaps (#196)
    • square option no longer works
  • Backwards-incompatible: Add cbar option to grid_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 of bins
    • Archive now have a cells property rather than a bins property
  • Backwards-incompatible: Only use integer indices in archives (#185)
    • ArchiveBase
      • Replaced storage_dims (tuple of int) with storage_dim (int)
      • _occupied_indices is now a fixed-size array with _num_occupied
        indicating its current usage, and _occupied_indices_cols has been
        removed
      • index_of must now return an integer

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

  • Move threadpoolctl from optimizer to CMA-ES (#241)
  • Remove unnecessary emitter benchmarks (#231)
  • Build docs during CI/CD workflow (#211)
  • Drop Python 3.6 and add Python 3.10 support (#181)
  • Add procedure for updating changelog (#182)
  • Add 'visualize' extra (#183, #184, #302)