Skip to main content

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 task
  • cooperative_pong: Two-player cooperative Pong
  • pistonball: 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

rl_curriculum_bench-0.1.4.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rl_curriculum_bench-0.1.4-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

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

Hashes for rl_curriculum_bench-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c03913ccfee281836288f25e04d965eddaeeca3eb55ec63560498990d79c7dbc
MD5 f0194456b04de834f23896cedae0db25
BLAKE2b-256 1891abb2f8a093bdb7d6459de926c77ad79905032fe9d42b31c27067d4f1daf1

See more details on using hashes here.

File details

Details for the file rl_curriculum_bench-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for rl_curriculum_bench-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b680bc939e177cfd4779982709c54cd12e648a3d4868d3e0435089d4a0ca0ab3
MD5 f61c1fa540bed901f6469af5de4ac3b3
BLAKE2b-256 7650286dd712a226beaf534111aa540ed7cd7c24254cc2c3f992d464d52c7f00

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page