MachineIntelligenceCore:ReinforcementLearning
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
Gridworld.hpp
Go to the documentation of this file.
1 
23 #ifndef SRC_TYPES_GRIDWORLD_HPP_
24 #define SRC_TYPES_GRIDWORLD_HPP_
25 
26 #include <types/Environment.hpp>
27 
28 
29 namespace mic {
30 namespace environments {
31 
36 enum class GridworldChannels : std::size_t
37 {
38  Goals = 0,
39  Pits = 1,
40  Walls = 2,
41  Agent = 3,
42  Count = 4
43 };
44 
45 
51 public:
56  Gridworld(std::string node_name_ = "gridworld");
57 
63 
64 
68  virtual ~Gridworld();
69 
75 
80 
84  virtual void initializeEnvironment();
85 
94  void initExemplaryGrid();
95 
103  void initClassicCliffGrid();
104 
114  void initDiscountGrid();
115 
123  void initBridgeGrid();
124 
132  void initBookGrid();
133 
143  void initMazeGrid();
144 
153  void initExemplaryDQLGrid();
154 
163  void initModifiedDQLGrid();
164 
165 
172  void initDebug2x2Grid();
173 
181  void initDebug3x3Grid();
182 
183 
187  void initSimpleRandomGrid();
188 
192  void initHardRandomGrid();
193 
200  bool isGridTraversible(long x_, long y_, mic::types::Matrix<bool> & visited_);
201 
206  mic::types::TensorXfPtr getObservation();
207 
212  virtual std::string environmentToString();
213 
218  virtual std::string observationToString();
219 
224  virtual mic::types::MatrixXfPtr encodeEnvironment();
225 
230  virtual mic::types::MatrixXfPtr encodeObservation();
231 
232 
234  virtual mic::types::MatrixXfPtr encodeAgentGrid();
235 
240  virtual mic::types::Position2D getAgentPosition();
241 
247  virtual bool moveAgentToPosition(mic::types::Position2D pos_);
248 
254  virtual float getStateReward(mic::types::Position2D pos_);
255 
256  // Makes all versions of polymorphic method isStateAllowed() available.
258 
264  virtual bool isStateAllowed(mic::types::Position2D pos_);
265 
266  // Makes all versions of polymorphic method isStateTerminal() available.
268 
274  virtual bool isStateTerminal(mic::types::Position2D pos_);
275 
276 protected:
277 
294  mic::configuration::Property<short> type;
295 
301  std::string gridToString(mic::types::TensorXfPtr grid_);
302 
303 };
304 
305 } /* namespace environments */
306 } /* namespace mic */
307 
308 #endif /* SRC_TYPES_GRIDWORLD_HPP_ */
virtual bool moveAgentToPosition(mic::types::Position2D pos_)
Definition: Gridworld.cpp:805
virtual float getStateReward(mic::types::Position2D pos_)
Definition: Gridworld.cpp:823
Class emulating the gridworld environment.
Definition: Gridworld.hpp:50
mic::types::TensorXfPtr getObservation()
Definition: Gridworld.cpp:737
Abstract class representing an environment.
Definition: Environment.hpp:40
std::string gridToString(mic::types::TensorXfPtr grid_)
Definition: Gridworld.cpp:651
virtual mic::types::MatrixXfPtr encodeObservation()
Definition: Gridworld.cpp:715
virtual bool isStateTerminal(long x_, long y_)
Definition: Environment.cpp:66
virtual mic::types::MatrixXfPtr encodeEnvironment()
Definition: Gridworld.cpp:703
virtual mic::types::Position2D getAgentPosition()
Definition: Gridworld.cpp:790
bool isGridTraversible(long x_, long y_, mic::types::Matrix< bool > &visited_)
Definition: Gridworld.cpp:509
GridworldChannels
Gridworld channels.
Definition: Gridworld.hpp:36
virtual bool isStateTerminal(mic::types::Position2D pos_)
Definition: Gridworld.cpp:849
Channel storing the agent position.
virtual mic::types::MatrixXfPtr encodeAgentGrid()
Encode the current state of the reduced grid (only the agent position) as a matrix of size [1...
Definition: Gridworld.cpp:768
Gridworld(std::string node_name_="gridworld")
Definition: Gridworld.cpp:28
mic::environments::Gridworld & operator=(const mic::environments::Gridworld &gw_)
Definition: Gridworld.cpp:61
virtual std::string environmentToString()
Definition: Gridworld.cpp:689
virtual bool isStateAllowed(mic::types::Position2D pos_)
Definition: Gridworld.cpp:834
virtual void initializePropertyDependentVariables()
Definition: Gridworld.cpp:77
virtual void initializeEnvironment()
Definition: Gridworld.cpp:81
virtual bool isStateAllowed(long x_, long y_)
Definition: Environment.cpp:62
mic::configuration::Property< short > type
Definition: Gridworld.hpp:294
virtual std::string observationToString()
Definition: Gridworld.cpp:693