Skip to content
This repository has been archived by the owner on May 6, 2021. It is now read-only.

JuliaReinforcementLearning/ReinforcementLearningCore.jl

Repository files navigation

ReinforcementLearningCore

⚠️ This package is moved into ReinforcementLearning.jl (2021-05-06)

CI CodeCoverage

This package is the core component of ReinforcementLearning.jl. It provides some typical implementations of the interfaces defined in ReinforcementLearningBase.jl.

Code Structure

./src
├── core (define how policies interact with environments)
├── extensions (patch code for upstream packages are stored here)
├── policies (all policies are put here)
│   ├── agents (= policy + trajectory)
│   ├── q_based_policies
│   │   ├── explorers (select action from action-values)
│   │   └── learners (learn state-value, state-action-value, distributional value...)
│   │       └── approximators (= NN + Optimiser)
│   └── (some other common policies).jl
└── utils (Reusable functions/structures)

For developers who are interested in contributing, I suggest you read the source code in the following top-down order:

  • core/run.jl
  • policies/base.jl
  • policies/agents/agent.jl
  • policies/agents/trajectories/trajectory.jl
  • policies/q_based_policies/q_based_policy.jl
  • policies/q_based_policies/learners/approximators/neural_network_approximator.jl
  • policies/q_based_policies/explorers/weighted_explorer.jl

Then play with the E`JuliaRL_BasicDQN_CartPole` experiment in ReinforcementLearningZoo.jl and try to understand the runtime logic step by step. After that, you can explore other components on demand.