pyribs  by icaros-usc

Quality Diversity optimization library

Created 5 years ago
251 stars

Top 99.9% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

Pyribs is a Python library for Quality Diversity (QD) optimization, implementing the modular Rapid Illumination of Behavior Space (RIBS) framework. It targets researchers and practitioners, offering a simple, flexible, and accessible tool for exploring QD algorithms, particularly for fixed-dimensional continuous domains, with an emphasis on performance and ease of integration.

How It Works

The library is built around the RIBS framework, which decomposes QD algorithms into three core components: an Archive for storing solutions, Emitters for generating new candidates, and a Scheduler to manage their interaction. This modular design allows users to compose a wide array of QD algorithms by interchanging these components. Pyribs adopts an ask-tell interface for solution generation and evaluation, optimized for fixed-dimensional continuous search spaces to enhance performance and usability.

Quick Start & Requirements

Pyribs requires Python 3.10+. Installation is straightforward via pip: pip install ribs[visualize] for full functionality including visualization tools, or pip install ribs for the base library. Users can verify their installation by running python -c "import ribs; print(ribs.__version__)". Official documentation and tutorials are available at docs.pyribs.org.

Highlighted Details

  • Implements key QD algorithms including Covariance Matrix Adaptation MAP-Elites (CMA-ME), CMA-MEGA, CMA-MAE, and their scalable variants.
  • The "bare-bones" design prioritizes essential components, facilitating integration with other software frameworks and optimizing for performance.
  • The RIBS framework's flexibility enables the composition of numerous QD algorithms and exploration of novel variations.

Maintenance & Community

Developed and maintained by the ICAROS Lab at USC, pyribs fosters community engagement through a Discord server and an infrequent announcements mailing list. Further project status and releases are communicated via these channels.

Licensing & Compatibility

Pyribs is released under the permissive MIT License, allowing for broad compatibility with commercial and closed-source projects without significant restrictions.

Limitations & Caveats

The library's design intentionally focuses on fixed-dimensional continuous domains. Users requiring support for high-dimensional or discrete search spaces may find pyribs less suitable without custom extensions or modifications.

Health Check
Last Commit

1 month ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
3 stars in the last 30 days

Explore Similar Projects

Starred by Bojan Tunguz Bojan Tunguz(AI Scientist; Formerly at NVIDIA), Alex Chen Alex Chen(Cofounder of Nexa AI), and
19 more.

ggml by ggml-org

0.2%
14k
Tensor library for machine learning
Created 3 years ago
Updated 2 weeks ago
Starred by Aravind Srinivas Aravind Srinivas(Cofounder of Perplexity), Li Jiang Li Jiang(Coauthor of AutoGen; Engineer at Microsoft), and
6 more.

numpy-ml by ddbourgin

0.0%
16k
ML algorithms implemented in NumPy
Created 6 years ago
Updated 2 years ago
Feedback? Help us improve.