The Java Reinforcement Learning Framework (JRLF) is a general framework for implementing and testing reinforcement learning algorithms in a variety of environments. The current distribution contains implementation for a variety of agents and environments. JRLF includes functionality for running batches of experiments and visualising the interaction of the agent with the environment.

JRLF was written by Mykel Kochenderfer and is free software. It may be modified and redistributed under the terms of the GNU General Public License.

JRLF Source Code (version 0.1.0)

In order to compile the source code, you will need the Java JDK (5.0 or later). Some of the optional) components require the following libraries available as JARs:

  • JTP: A reasoning system developed by Gleb Frank at Stanford University.
  • ANTLR: A language tool developed by Terence Parr at the University of San Francisco, used by JTP.
  • JUtil: A parameterized collections library developed by C. Scott Ananian.

Some components interface with the Graphviz package developed at AT&T Research.


  • Includes implementation for a variety of agents
    • Nearest neighbour behavioural clone
    • Decision graph behavioural clone
    • Q(lambda)
    • SARSA(lambda)
    • Prioritised sweeping
    • UTree
    • TTree
    • AMPS
  • Includes implementation for a variety of problems
    • Taxi World
    • Corner World
    • Goal World
    • Acrobot
    • Mountain Car
  • Includes a dynamic graph visualisation system
  • Includes a graphical system for visualising algorithms and evaluating their performance
  • Supports customisation through XML
  • Integrates with a flexible theorem prover
  • Allows both lump-sum reward and reward rates
  • Allows interruptible actions
  • Allows variable time between samples