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:
Algorithm<S, A>
Controller<S, A>: Algorithm<S, A>
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.
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:
Algorithm<S, A>
Controller<S, A>: Algorithm<S, A>
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.