MachineIntelligenceCore:ReinforcementLearning
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
GridworldValueIteration.hpp
Go to the documentation of this file.
1 
23 #ifndef SRC_APPLICATION_GRIDWORLDVALUEITERATION_HPP_
24 #define SRC_APPLICATION_GRIDWORLDVALUEITERATION_HPP_
25 
26 #include <vector>
27 #include <string>
28 
29 #include <application/Application.hpp>
30 
31 #include <types/Gridworld.hpp>
32 #include <types/MatrixTypes.hpp>
33 #include <types/Action2D.hpp>
34 #include <types/Position2D.hpp>
35 
36 namespace mic {
37 namespace application {
38 
39 
40 
45 class GridworldValueIteration: public mic::application::Application {
46 public:
51  GridworldValueIteration(std::string node_name_ = "application");
52 
56  virtual ~GridworldValueIteration();
57 
58 protected:
63 
69  virtual void initialize(int argc, char* argv[]);
70 
74  virtual bool performSingleStep();
75 
76 private:
77 
80 
82  mic::types::MatrixXf state_value_table;
83 
87  mic::configuration::Property<float> step_reward;
88 
92  mic::configuration::Property<float> discount_rate;
93 
97  mic::configuration::Property<float> move_noise;
98 
100  mic::configuration::Property<std::string> statistics_filename;
101 
106 
111  std::string streamStateActionTable();
112 
113 
120  float computeQValueFromValues(mic::types::Position2D pos_, mic::types::NESWAction ac_);
121 
127  float computeBestValue(mic::types::Position2D pos_);
128 
129 
130 };
131 
132 
133 } /* namespace application */
134 } /* namespace mic */
135 
136 #endif /* SRC_APPLICATION_GRIDWORLDVALUEITERATION_HPP_ */
mic::environments::Gridworld grid_env
The gridworld object.
Class emulating the gridworld environment.
Definition: Gridworld.hpp:50
GridworldValueIteration(std::string node_name_="application")
mic::types::MatrixXf state_value_table
Matrix storing values for all states (gridworld w * h). ROW MAJOR(!).
mic::configuration::Property< float > discount_rate
mic::configuration::Property< float > move_noise
float computeQValueFromValues(mic::types::Position2D pos_, mic::types::NESWAction ac_)
mic::configuration::Property< std::string > statistics_filename
Property: name of the file to which the statistics will be exported.
Class responsible for solving the gridworld problem by applying the reinforcement learning value iter...
virtual void initialize(int argc, char *argv[])
float computeBestValue(mic::types::Position2D pos_)
mic::configuration::Property< float > step_reward