tspooner / rsrl

A fast, safe and easy to use reinforcement learning framework in Rust.
https://crates.io/crates/rsrl
MIT License
178 stars 13 forks source link

Overhaul of "Agent" types #35

Closed tspooner closed 6 years ago

tspooner commented 6 years ago

In this PR we undo some of the changes made during the experimentation process and finalise a set of traits that will be used as the interface for algorithm implementations.

The new interfaces are as follows:

  1. Algorithm<S, A>
  2. Controller<S, A>: Algorithm<S, A>
  3. Predictor<S, A>: Algorithm<S, A>

An important point to note here is that interfaces 2 & 3 should not be considered mutually exclusive. Indeed many control algorithms are prediction algorithms (TD methods for example).

There are many other changes included in this PR that we will not discuss in great detail. A lot of structural changes have been made and assorted features added.