MachineIntelligenceCore:ReinforcementLearning
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
Environment.hpp
Go to the documentation of this file.
1 
23 #ifndef SRC_TYPES_ENVIRONMENT_HPP_
24 #define SRC_TYPES_ENVIRONMENT_HPP_
25 
26 #include <types/Position2D.hpp>
27 #include <types/TensorTypes.hpp>
28 #include <types/MatrixTypes.hpp>
29 #include <logger/Log.hpp>
30 
31 #include <configuration/PropertyTree.hpp>
32 
33 namespace mic {
34 namespace environments {
35 
40 class Environment : public mic::configuration::PropertyTree {
41 public:
46  Environment(std::string node_name_);
47 
48 
52  virtual ~Environment();
53 
57  virtual void initializeEnvironment() = 0;
58 
63  mic::types::TensorXfPtr & getEnvironment() { return environment_grid; }
64 
69  virtual size_t getEnvironmentWidth() { return width; }
70 
75  virtual size_t getEnvironmentHeight() { return height; }
76 
81  virtual size_t getEnvironmentSize() { return width * height * channels; }
82 
87  virtual size_t getObservationWidth() { return ((!pomdp_flag) ? width : roi_size); }
88 
93  virtual size_t getObservationHeight() { return ((!pomdp_flag) ?height : roi_size); }
94 
99  virtual size_t getObservationSize() { return ((!pomdp_flag) ? width * height * channels : roi_size * roi_size * channels); }
100 
105  virtual size_t getChannels() { return channels; }
106 
111  size_t getROISize() { return roi_size; }
112 
113 
118  virtual std::string environmentToString() = 0;
119 
124  virtual std::string observationToString() = 0;
125 
130  virtual mic::types::MatrixXfPtr encodeEnvironment() = 0;
131 
132 
137  virtual mic::types::MatrixXfPtr encodeObservation() = 0;
138 
143  virtual mic::types::Position2D getAgentPosition() = 0;
144 
150  bool moveAgent (mic::types::Action2DInterface ac_);
151 
152 
158  virtual bool moveAgentToPosition(mic::types::Position2D pos_) = 0;
159 
165  virtual void moveAgentToInitialPosition();
166 
172  virtual float getStateReward(mic::types::Position2D pos_) = 0;
173 
174 
181  virtual bool isStateAllowed(long x_, long y_);
182 
188  virtual bool isStateAllowed(mic::types::Position2D pos_) = 0;
189 
196  virtual bool isStateTerminal(long x_, long y_);
197 
198 
204  virtual bool isStateTerminal(mic::types::Position2D pos_) = 0;
205 
206 
214  virtual bool isActionAllowed(long x_, long y_, size_t action_);
215 
222  virtual bool isActionAllowed(mic::types::Position2D pos_, mic::types::Action2DInterface ac_);
223 
229  virtual bool isActionAllowed(mic::types::Action2DInterface ac_);
230 
231 
232 protected:
233 
235  mic::configuration::Property<size_t> width;
236 
238  mic::configuration::Property<size_t> height;
239 
241  mic::configuration::Property<size_t> roi_size;
242 
244  size_t channels;
245 
248 
250  mic::types::Position2D initial_position;
251 
253  mic::types::TensorXfPtr environment_grid;
254 
258  mic::types::TensorXfPtr observation_grid;
259 
260 };
261 
262 } /* namespace environments */
263 } /* namespace mic */
264 
265 #endif /* SRC_TYPES_ENVIRONMENT_HPP_ */
virtual void initializeEnvironment()=0
virtual mic::types::MatrixXfPtr encodeObservation()=0
Abstract class representing an environment.
Definition: Environment.hpp:40
size_t channels
Number of channels.
virtual mic::types::MatrixXfPtr encodeEnvironment()=0
virtual bool isStateTerminal(long x_, long y_)
Definition: Environment.cpp:66
Environment(std::string node_name_)
Definition: Environment.cpp:28
virtual void moveAgentToInitialPosition()
Definition: Environment.cpp:57
virtual size_t getEnvironmentSize()
Definition: Environment.hpp:81
virtual size_t getObservationWidth()
Definition: Environment.hpp:87
mic::configuration::Property< size_t > width
Property: width of the environment.
virtual bool isActionAllowed(long x_, long y_, size_t action_)
Definition: Environment.cpp:70
bool pomdp_flag
Flag related to.
virtual mic::types::Position2D getAgentPosition()=0
virtual size_t getEnvironmentWidth()
Definition: Environment.hpp:69
virtual bool moveAgentToPosition(mic::types::Position2D pos_)=0
virtual size_t getObservationSize()
Definition: Environment.hpp:99
virtual std::string observationToString()=0
bool moveAgent(mic::types::Action2DInterface ac_)
Definition: Environment.cpp:48
mic::configuration::Property< size_t > roi_size
Property: size of the ROI (region of interest).
mic::types::TensorXfPtr observation_grid
virtual size_t getEnvironmentHeight()
Definition: Environment.hpp:75
mic::types::TensorXfPtr environment_grid
Tensor storing the environment.
virtual std::string environmentToString()=0
mic::types::TensorXfPtr & getEnvironment()
Definition: Environment.hpp:63
mic::types::Position2D initial_position
Property: initial position of the agent.
virtual float getStateReward(mic::types::Position2D pos_)=0
mic::configuration::Property< size_t > height
Property: height of the environment.
virtual bool isStateAllowed(long x_, long y_)
Definition: Environment.cpp:62
virtual size_t getObservationHeight()
Definition: Environment.hpp:93