Algorithms

Description

The algo module contains algorithm implementations based on the AlgorithmBase class. The objects should only be accessed through the interface functions defined in the base class.

Overview

Algorithm Policy
A3C NeuralNetwork
PolicyGradient Any
Q-Learning None
SafeOpt Any

Implementing an Algorithm

When implementing an algorithm a couple of things have to be considered. AlgorithmBase is an abstrace base class. It will require any subclass to implement the private methods listed below. These will be invoked by the public interface methods.

Any algorithm must be structured using four methods. First the optimize, which will control the optimization run, it is responsible for using the other methods. The three tools optimize should use are the methods initialize, step and is_finished.

initialize should be used to initialize the run and all the attributes and parameters that need to be set up. optimize should compute one step of the optimization run. is_finished is supposed to return True when the optimization run is finished.

Requirements

Must implement
_initialize Initialize any attributes, objects needed.
_step Execute one iteration of the algorithm.
_is_finished Return True when done.
May implement
_optimize(policy) Optimize the policy. Possibly no policy as in Q-learning.