This repository contains code that implements algorithms and models from Sutton's book on reinforcement learning. The book, titled "Reinforcement Learning: An Introduction," is a classic text on the subject and provides a comprehensive introduction to the field.
The code in this repository is organized into several modules, each of which covers differents topics.
- Multi Armed Bandits
- Epsilon Greedy
- Optimistic Initial Values
- Gradient
- α (non stationary)
- Model Based
- Policy Evaluation
- Policy Iteration
- Value Iteration
- Monte Carlo estimation and control
- First-visit α-MC
- Every-visit α-MC
- MC with Exploring Starts
- Off-policy MC, ordinary and weighted importance sampling
- Temporal Difference
- TD(n) estimation
- n-step SARSA
- n-step Q-learning
- n-step Expected SARSA
- double Q learning
- n-step Tree Backup
- Planning
- Dyna-Q/Dyna-Q+
- Prioritized Sweeping
- Trajectory Sampling
- MCTS
- On-policy Prediction
- Gradient MC
- $n$-step semi-gradient TD
- ANN
- Least-Squares TD
- Kernel-based
- On-policy Control
- Episodic semi-gradient
- Semi-gradient n-step Sarsa
- Differential Semi-gradient n-step Sarsa
- Elegibility Traces
- TD($\lambda$)
- True Online
- Sarsa($\lambda$)
- True Online Sarsa($\lambda$)
- Policy Gradient
- REINFORCE: Monte Carlo Policy Gradient w/wo Baseline
- Actor-Critic (episodic) w/wo eligibility traces
- Actor-Critic (continuing) with eligibility traces
All model free solvers will work just by defining states actions and a trasition function. Transitions are defined as a function that takes a state and an action and returns a tuple of the next state and the reward. The transition function also returns a boolean indicating whether the episode has terminated.
Single State Infinite Variance Example 5.5
Monte Carlo Tree Search maze solving plot
While the code in this package provides a basic implementation of the algorithms from the book, it is not necessarily the most efficient or well-written. If you have suggestions for improving the code, please feel free to open an issue.
Overall, this package provides a valuable resource for anyone interested in learning about reinforcement learning and implementing algorithms from scratch. By no means prod ready.