MachineIntelligenceCore:ReinforcementLearning
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
mic::environments::Gridworld Class Reference

Class emulating the gridworld environment. More...

#include <Gridworld.hpp>

Inheritance diagram for mic::environments::Gridworld:
Collaboration diagram for mic::environments::Gridworld:

Public Member Functions

 Gridworld (std::string node_name_="gridworld")
 
 Gridworld (const mic::environments::Gridworld &gw_)
 
virtual ~Gridworld ()
 
mic::environments::Gridworldoperator= (const mic::environments::Gridworld &gw_)
 
virtual void initializePropertyDependentVariables ()
 
virtual void initializeEnvironment ()
 
void initExemplaryGrid ()
 
void initClassicCliffGrid ()
 
void initDiscountGrid ()
 
void initBridgeGrid ()
 
void initBookGrid ()
 
void initMazeGrid ()
 
void initExemplaryDQLGrid ()
 
void initModifiedDQLGrid ()
 
void initDebug2x2Grid ()
 
void initDebug3x3Grid ()
 
void initSimpleRandomGrid ()
 
void initHardRandomGrid ()
 
bool isGridTraversible (long x_, long y_, mic::types::Matrix< bool > &visited_)
 
mic::types::TensorXfPtr getObservation ()
 
virtual std::string environmentToString ()
 
virtual std::string observationToString ()
 
virtual mic::types::MatrixXfPtr encodeEnvironment ()
 
virtual mic::types::MatrixXfPtr encodeObservation ()
 
virtual mic::types::MatrixXfPtr encodeAgentGrid ()
 Encode the current state of the reduced grid (only the agent position) as a matrix of size [1, width * height]. More...
 
virtual mic::types::Position2D getAgentPosition ()
 
virtual bool moveAgentToPosition (mic::types::Position2D pos_)
 
virtual float getStateReward (mic::types::Position2D pos_)
 
virtual bool isStateAllowed (mic::types::Position2D pos_)
 
virtual bool isStateTerminal (mic::types::Position2D pos_)
 
- Public Member Functions inherited from mic::environments::Environment
 Environment (std::string node_name_)
 
virtual ~Environment ()
 
mic::types::TensorXfPtr & getEnvironment ()
 
virtual size_t getEnvironmentWidth ()
 
virtual size_t getEnvironmentHeight ()
 
virtual size_t getEnvironmentSize ()
 
virtual size_t getObservationWidth ()
 
virtual size_t getObservationHeight ()
 
virtual size_t getObservationSize ()
 
virtual size_t getChannels ()
 
size_t getROISize ()
 
bool moveAgent (mic::types::Action2DInterface ac_)
 
virtual void moveAgentToInitialPosition ()
 
virtual bool isStateAllowed (long x_, long y_)
 
virtual bool isStateTerminal (long x_, long y_)
 
virtual bool isActionAllowed (long x_, long y_, size_t action_)
 
virtual bool isActionAllowed (mic::types::Position2D pos_, mic::types::Action2DInterface ac_)
 
virtual bool isActionAllowed (mic::types::Action2DInterface ac_)
 

Protected Member Functions

std::string gridToString (mic::types::TensorXfPtr grid_)
 

Protected Attributes

mic::configuration::Property
< short > 
type
 
- Protected Attributes inherited from mic::environments::Environment
mic::configuration::Property
< size_t > 
width
 Property: width of the environment. More...
 
mic::configuration::Property
< size_t > 
height
 Property: height of the environment. More...
 
mic::configuration::Property
< size_t > 
roi_size
 Property: size of the ROI (region of interest). More...
 
size_t channels
 Number of channels. More...
 
bool pomdp_flag
 Flag related to. More...
 
mic::types::Position2D initial_position
 Property: initial position of the agent. More...
 
mic::types::TensorXfPtr environment_grid
 Tensor storing the environment. More...
 
mic::types::TensorXfPtr observation_grid
 

Detailed Description

Class emulating the gridworld environment.

Author
tkornuta

Definition at line 50 of file Gridworld.hpp.

Constructor & Destructor Documentation

mic::environments::Gridworld::Gridworld ( std::string  node_name_ = "gridworld")

Constructor. Registers properties.

Parameters
node_name_Name of the node in configuration file.

Definition at line 28 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Count, and type.

mic::environments::Gridworld::~Gridworld ( )
virtual

Destructor. Empty for now.

Definition at line 57 of file Gridworld.cpp.

Member Function Documentation

mic::types::MatrixXfPtr mic::environments::Gridworld::encodeAgentGrid ( )
virtual
mic::types::MatrixXfPtr mic::environments::Gridworld::encodeEnvironment ( )
virtual
mic::types::MatrixXfPtr mic::environments::Gridworld::encodeObservation ( )
virtual
mic::types::TensorXfPtr mic::environments::Gridworld::getObservation ( )

Returns the tensor being the observation.

Returns
Observation tensor of size [roi_size, roi_size, channels].

Definition at line 737 of file Gridworld.cpp.

References mic::environments::Agent, getAgentPosition(), mic::environments::Goals, mic::environments::Environment::observation_grid, mic::environments::Environment::roi_size, and mic::environments::Walls.

Referenced by encodeObservation(), and observationToString().

std::string mic::environments::Gridworld::gridToString ( mic::types::TensorXfPtr  grid_)
protected

Returns the current state of the grid passed as an argument in the form of a string.

Parameters
grid_Grid to be processed.
Returns
String with description of the grid.

Definition at line 651 of file Gridworld.cpp.

References mic::environments::Agent, mic::environments::Goals, and mic::environments::Walls.

Referenced by environmentToString(), and observationToString().

void mic::environments::Gridworld::initBookGrid ( )
void mic::environments::Gridworld::initBridgeGrid ( )

Initializes the classic discount gridworld.

[[ '#',-100, -100, -100, -100, -100, '#'], [ 1, 'S', ' ', ' ', ' ', ' ', 10], [ '#',-100, -100, -100, -100, -100, '#']]

Definition at line 201 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Environment::environment_grid, mic::environments::Goals, mic::environments::Environment::height, mic::environments::Environment::initial_position, moveAgentToPosition(), mic::environments::Pits, mic::environments::Walls, and mic::environments::Environment::width.

Referenced by initializeEnvironment().

void mic::environments::Gridworld::initClassicCliffGrid ( )
void mic::environments::Gridworld::initDebug2x2Grid ( )
void mic::environments::Gridworld::initDebug3x3Grid ( )

Method initializes the 3x3 grid useful during the debugging.

[[' ',-10,' '], [-10,'S',-10], [' ',+10,' ']]

Method initializes the 3x3 grid useful during the debugging.

Definition at line 393 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Environment::environment_grid, mic::environments::Goals, mic::environments::Environment::height, mic::environments::Environment::initial_position, moveAgentToPosition(), mic::environments::Pits, mic::environments::Walls, and mic::environments::Environment::width.

Referenced by initializeEnvironment().

void mic::environments::Gridworld::initDiscountGrid ( )

Initializes the classic discount gridworld.

[[' ',' ',' ',' ',' '], [' ','#',' ',' ',' '], [' ','#', 1,'#', 10], ['S',' ',' ',' ',' '], [-10,-10, -10, -10, -10]]

Definition at line 166 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Environment::environment_grid, mic::environments::Goals, mic::environments::Environment::height, mic::environments::Environment::initial_position, moveAgentToPosition(), mic::environments::Pits, mic::environments::Walls, and mic::environments::Environment::width.

Referenced by initializeEnvironment().

void mic::environments::Gridworld::initExemplaryDQLGrid ( )
void mic::environments::Gridworld::initExemplaryGrid ( )
void mic::environments::Gridworld::initializeEnvironment ( )
virtual
void mic::environments::Gridworld::initializePropertyDependentVariables ( )
virtual

Initializes all variables that are property-dependent.

Definition at line 77 of file Gridworld.cpp.

void mic::environments::Gridworld::initMazeGrid ( )

Initializes the classic maze gridworld.

[[' ',' ',' ',+1], ['#','#',' ','#'], [' ','#',' ',' '], [' ','#','#',' '], ['S',' ',' ',' ']]

Definition at line 266 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Environment::environment_grid, mic::environments::Goals, mic::environments::Environment::height, mic::environments::Environment::initial_position, moveAgentToPosition(), mic::environments::Walls, and mic::environments::Environment::width.

Referenced by initializeEnvironment().

void mic::environments::Gridworld::initModifiedDQLGrid ( )

Method initializes a slightly modified grid from Deep Q-Learning example.

[[' ',' ',' ',' '], [' ','#',+10,' '], [' ',' ',-10,' '], ['S',' ',' ',' ']]

Definition at line 330 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Environment::environment_grid, mic::environments::Goals, mic::environments::Environment::height, mic::environments::Environment::initial_position, moveAgentToPosition(), mic::environments::Pits, mic::environments::Walls, and mic::environments::Environment::width.

Referenced by initializeEnvironment().

bool mic::environments::Gridworld::isGridTraversible ( long  x_,
long  y_,
mic::types::Matrix< bool > &  visited_ 
)

A recursive method for checking whether the grid is traversable (i.e. there is a path from agent to goal).

Parameters
x_Current x coordinate to check.
y_Current x coordinate to check.
visited_Matrix with visited states.

Definition at line 509 of file Gridworld.cpp.

References mic::environments::Environment::environment_grid, mic::environments::Goals, isStateAllowed(), and mic::environments::Pits.

Referenced by initHardRandomGrid().

bool mic::environments::Gridworld::isStateTerminal ( mic::types::Position2D  pos_)
virtual
std::string mic::environments::Gridworld::observationToString ( )
virtual

Returns the current observation taken in the gridworld in the form of a string.

Returns
String with description of the observation.

Implements mic::environments::Environment.

Definition at line 693 of file Gridworld.cpp.

References mic::environments::Environment::environment_grid, getObservation(), gridToString(), and mic::environments::Environment::pomdp_flag.

Referenced by mic::application::GridworldDRLExperienceReplayPOMDP::performSingleStep(), and mic::application::GridworldDRLExperienceReplayPOMDP::startNewEpisode().

mic::environments::Gridworld & mic::environments::Gridworld::operator= ( const mic::environments::Gridworld gw_)

Assign operator. Copies the gridworld state along with its properties.

Parameters
gw_Gridworld object that values/properties will be copied.

Definition at line 61 of file Gridworld.cpp.

References mic::environments::Environment::channels, mic::environments::Environment::environment_grid, mic::environments::Environment::height, mic::environments::Environment::initial_position, mic::environments::Environment::observation_grid, type, and mic::environments::Environment::width.

Member Data Documentation

mic::configuration::Property<short> mic::environments::Gridworld::type
protected

Property: type of the generated gridworld. Currently available types: 0: the exemplary grid 4x3. 1: the classic cliff grid 5x3. 2: the classic discount grid 5x5. 3: the classic bridge grid 7x3. 4: the classic book grid 4x4. 5: the classic maze grid 4x4. 6: gridworld from DQL example 4x4. 7: slightly modified gridworld from DQL example 4x4. 8: debug grid 2x2. 9: debug grid 3x3. -1 (or else): random grid - all items (wall, goal and pit, agent) placed randomly -2 (or else): random grid - all items (wall, goal and pit, agent) placed randomly with multiple pits and walls

Definition at line 294 of file Gridworld.hpp.

Referenced by Gridworld(), initializeEnvironment(), and operator=().


The documentation for this class was generated from the following files: