23 #ifndef SRC_APPLICATION_GRIDWORLDDEEPQLEARNING_HPP_
24 #define SRC_APPLICATION_GRIDWORLDDEEPQLEARNING_HPP_
29 #include <opengl/application/OpenGLEpisodicApplication.hpp>
30 #include <opengl/visualization/WindowCollectorChart.hpp>
31 using namespace mic::opengl::visualization;
33 #include <mlnn/BackpropagationNeuralNetwork.hpp>
35 using namespace mic::mlnn;
36 using namespace mic::types;
41 namespace application {
68 virtual void initialize(
int argc,
char* argv[]);
73 virtual void initializePropertyDependentVariables();
78 virtual bool performSingleStep();
83 virtual void startNewEpisode();
88 virtual void finishCurrentEpisode();
142 float computeBestValueForCurrentState();
148 mic::types::MatrixXfPtr getPredictedRewardsForCurrentState();
154 mic::types::NESWAction selectBestActionForCurrentState();
160 std::string streamNetworkResponseTable();
mic::configuration::Property< std::string > mlnn_filename
Property: name of the file to which the neural network will be serialized (or deserialized from)...
Class emulating the gridworld environment.
long long sum_of_iterations
mic::configuration::Property< float > discount_rate
mic::configuration::Property< std::string > statistics_filename
Property: name of the file to which the statistics will be exported.
mic::configuration::Property< double > epsilon
mic::configuration::Property< bool > mlnn_load
Property: flad denoting thether the nn should be loaded from a file (at the initialization of the tas...
mic::environments::Gridworld grid_env
The gridworld environment.
mic::configuration::Property< float > learning_rate
mic::types::Position2D player_pos_t_minus_prim
BackpropagationNeuralNetwork< float > neural_net
Multi-layer neural network used for approximation of the Qstate rewards.
WindowCollectorChart< float > * w_chart
Window for displaying statistics.
mic::configuration::Property< bool > mlnn_save
Property: flad denoting thether the nn should be saved to a file (after every episode end)...
mic::configuration::Property< float > step_reward
Class responsible for solving the gridworld problem with Q-learning and (not that) deep neural networ...
mic::utils::DataCollectorPtr< std::string, float > collector_ptr
Data collector.