Map-Elites: A Quality Diversity Algorithm Implementation
This repository provides a generic and efficient implementation of the Map-Elites algorithm, which is widely used to discover diverse, high-performing solutions across a feature space.
Features
- Modular Design: Easily adaptable to various problem domains.
- Customizable Configurations: Configure bins, boundaries, and mutation strategies.
- Statistics Tracking: Monitor progress, coverage, and improvements over iterations.
Getting Started
Prerequisites
- Rust: Ensure you have Rust installed.
Installation
Add this crate to your Cargo.toml dependencies:
[]
= "0.1.0"
Example Usage
Below is an example of how to use this crate for solving a simple optimization problem:
use ;
// Define your problem
;
// Use the algorithm
let problem = MyProblem;
let mut map_elites = new;
map_elites.run;
Configuration
You can customize the algorithm using the MapElitesConfig struct:
let config = MapElitesConfig ;
References
- Mouret, J.-B., & Clune, J. (2015). Illuminating search spaces by mapping elites. arXiv preprint arXiv:1504.04909.
Testing
Run the tests to validate the implementation:
Contributing
Contributions are welcome! Feel free to open issues or submit pull requests.
License
This project is licensed under the MIT License - see the LICENSE file for details.