A benchmark suite for curriculum learning in multi-agent reinforcement learning
Project description
RL Curriculum Bench
A benchmark suite for curriculum learning in multi-agent reinforcement learning (MARL). This library provides standardized environments, complexity metrics, and curriculum strategies to facilitate reproducible curriculum learning research.
Features
- Environment Wrappers: Unified API for 3 PettingZoo environments (Pursuit, Cooperative Pong, Pistonball)
- Complexity Metrics: Graph-based and task-based metrics to measure environment difficulty
- Curriculum Strategies: Manual, performance-based, and complexity-based curriculum learning
- Evaluation Framework: Tools for comparing curriculum learning approaches
- GPU Support: Compatible with Stable-Baselines3 for efficient training
Installation
pip install rl-curriculum-bench
For RL training capabilities:
pip install rl-curriculum-bench[rl]
Quick Start
from rl_curriculum_bench.environments import make_env
from rl_curriculum_bench.metrics import compute_complexity
from rl_curriculum_bench.curriculum import ComplexityBasedCurriculum
# Create an environment
env = make_env('pursuit', difficulty='medium')
# Compute complexity metrics
metrics = compute_complexity('pursuit', difficulty='medium')
print(metrics)
# Create a curriculum
env_complexities = {
'cooperative_pong': 1.5,
'pursuit': 6.5,
'pistonball': 7.5
}
curriculum = ComplexityBasedCurriculum(env_complexities, ascending=True)
# Get next environment in curriculum
next_env = curriculum.get_next_env()
Available Environments
pursuit: Multi-agent pursuit-evasion taskcooperative_pong: Two-player cooperative Pongpistonball: Cooperative ball manipulation with pistons
Each environment supports three difficulty levels: easy, medium, hard
Curriculum Strategies
Manual Curriculum
Fixed sequence of environments:
from rl_curriculum_bench.curriculum import ManualCurriculum
curriculum = ManualCurriculum(['env1', 'env2', 'env3'])
Performance-Based Curriculum
Progress when threshold is met:
from rl_curriculum_bench.curriculum import PerformanceBasedCurriculum
curriculum = PerformanceBasedCurriculum(
['env1', 'env2', 'env3'],
threshold=0.75
)
Complexity-Based Curriculum
Automatically orders by complexity:
from rl_curriculum_bench.curriculum import ComplexityBasedCurriculum
curriculum = ComplexityBasedCurriculum(env_complexities, ascending=True)
Project Structure
rl_curriculum_bench/
├── environments/ # Environment wrappers
├── metrics/ # Complexity metrics
├── curriculum/ # Curriculum strategies
├── evaluation/ # Evaluation tools
└── utils/ # Utilities (config, seeds)
Requirements
- Python ≥3.8
- NumPy ≥1.20.0
- PettingZoo ≥1.24.0
- Gymnasium ≥0.26.0
- NetworkX ≥2.6.0
- PyYAML ≥5.4.0
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rl_curriculum_bench-0.1.4.tar.gz.
File metadata
- Download URL: rl_curriculum_bench-0.1.4.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c03913ccfee281836288f25e04d965eddaeeca3eb55ec63560498990d79c7dbc
|
|
| MD5 |
f0194456b04de834f23896cedae0db25
|
|
| BLAKE2b-256 |
1891abb2f8a093bdb7d6459de926c77ad79905032fe9d42b31c27067d4f1daf1
|
File details
Details for the file rl_curriculum_bench-0.1.4-py3-none-any.whl.
File metadata
- Download URL: rl_curriculum_bench-0.1.4-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b680bc939e177cfd4779982709c54cd12e648a3d4868d3e0435089d4a0ca0ab3
|
|
| MD5 |
f61c1fa540bed901f6469af5de4ac3b3
|
|
| BLAKE2b-256 |
7650286dd712a226beaf534111aa540ed7cd7c24254cc2c3f992d464d52c7f00
|