JuliaReinforcementLearning/ReinforcementLearning.jl

A reinforcement learning package for Julia

What it solves

ReinforcementLearning.jl provides a comprehensive framework for reinforcement learning (RL) research in the Julia language, addressing the need for reusable, extensible, and reproducible tools to implement and test RL algorithms.

How it works

The package is structured as a wrapper around several specialized subpackages (such as ReinforcementLearningBase, Core, Environments, and Zoo). It organizes RL experiments into four core components:

  • Policy: Determines the action to take (e.g., RandomPolicy).
  • Environment: The world the agent interacts with (e.g., CartPoleEnv).
  • Stop Condition: Defines when the experiment ends (e.g., StopAfterNSteps).
  • Hook: Collects data and diagnostics during the run (e.g., TotalRewardPerEpisode).

Who it’s for

It is designed for researchers and developers who want to implement new RL algorithms, run benchmark experiments, and compare different agents using the Julia programming language.

Highlights

  • Extensible Design: Uses interfaces and components that make it easy to implement new algorithms.
  • Broad Scope: Supports everything from traditional tabular methods to modern deep reinforcement learning.
  • Integrated Ecosystem: Includes a dedicated environment library and a "Zoo" of existing algorithms.
  • Reproducibility: Focused on making it easy to evaluate and diagnose agents consistently.

Related

  • Project
  • Project
  • Project
  • Project
  • Project