simple_rl  by david-abel

RL framework for experimenting with reinforcement learning in Python

created 9 years ago
317 stars

Top 86.5% on sourcepulse

GitHubView on GitHub
Project Summary

This library provides a simple, reproducible framework for experimenting with Reinforcement Learning (RL) in Python. It targets researchers and students needing a straightforward tool to test RL algorithms, offering ease of use and clear experiment tracking.

How It Works

The framework is built around core RL components: Agents, Markov Decision Processes (MDPs), and Experiments. It allows users to define custom MDPs or use provided ones (like GridWorld) and implement various agents (e.g., Q-Learning, Random). A key feature is the run_agents_on_mdp function, which orchestrates agent-environment interaction, collects results, and generates plots. The "easy reproduction of results" feature saves experiment configurations to files, enabling quick re-runs and verification of results.

Quick Start & Requirements

Highlighted Details

  • Built-in reproducibility feature (reproduce_from_exp_file) for tracking and re-running experiments.
  • Includes implementations for Value Iteration and Monte Carlo Tree Search (MCTS) (MCTS is in development).
  • Supports basic agents like Q-Learning, RMax, and Random agents.
  • Offers basic visualization capabilities via Matplotlib and Pygame.

Maintenance & Community

  • Primarily maintained by David Abel.
  • Open to contributions; specific areas for improvement are listed in the README.

Licensing & Compatibility

  • MIT License.
  • Permissive for commercial use and integration with closed-source projects.

Limitations & Caveats

The reproducibility feature currently only supports standard MDPs and does not extend to OO-MDPs, POMDPs, or Markov Games. Deep RL algorithms (like DQN) and advanced planning methods (like RTDP) are listed as "In Development."

Health Check
Last commit

1 year ago

Responsiveness

1 day

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

Explore Similar Projects

Feedback? Help us improve.