pyribs: A Bare-Bones Python Library for Quality Diversity Optimization
About
Recent years have seen a rise in the popularity of quality diversity (QD) optimization, a branch of optimization that seeks to find a collection of diverse, high-performing solutions to a given problem. To grow further, we believe the QD community faces two challenges: developing a framework to represent the field's growing array of algorithms, and implementing that framework in software that supports a range of researchers and practitioners. To address these challenges, we have developed pyribs, a library built on a highly modular conceptual QD framework. By replacing components in the conceptual framework, and hence in pyribs, users can compose algorithms from across the QD literature; equally important, they can identify unexplored algorithm variations. Furthermore, pyribs makes this framework simple, flexible, and accessible, with a user-friendly API supported by extensive documentation and tutorials. This paper overviews the creation of pyribs, focusing on the conceptual framework that it implements and the design principles that have guided the library's development.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Quality-Diversity Optimization | LSI | QD-score16.54 | 12 | |
| Quality-Diversity Optimization | Arm Repertoire | QD-score61.59 | 11 | |
| Quality-Diversity Optimization | LP sphere | QD-score34.74 | 11 | |
| Quality-Diversity Optimization | LP Rastrigin | QD-score22.65 | 11 | |
| Quality Diversity | Linear Projection (Rastrigin) n=1000 | QD-score8.12 | 8 | |
| Quality Diversity | Linear Projection sphere n=1000 | QD-score12.21 | 8 | |
| Quality Diversity | Arm Repertoire 1000-DOF | QD-score33.51 | 8 | |
| Quality Diversity | LSI StyleGAN+CLIP | QD-score16.54 | 5 |