MachineIntelligenceCore:ReinforcementLearning
|
Class implementing a histogram filter based solution of the maze-of-digits localization problem. More...
#include <MazeHistogramFilter.hpp>
Public Member Functions | |
MazeHistogramFilter () | |
void | setMazes (std::vector< mic::types::MatrixXiPtr > &mazes_, unsigned int number_of_distinctive_patches_) |
void | setHiddenPose (int hidden_maze_number_, int hidden_x_, int hidden_y_) |
virtual | ~MazeHistogramFilter () |
void | assignInitialProbabilities () |
void | sense (double hit_factor_, double miss_factor_) |
void | move (mic::types::Action2DInterface ac_) |
void | probabilisticMove (mic::types::Action2DInterface ac_, double exact_move_probability_, double overshoot_move_probability_, double undershoot_move_probability_) |
void | updateAggregatedProbabilities () |
mic::types::Action2DInterface | mostUniquePatchActionSelection () |
mic::types::Action2DInterface | sumOfMostUniquePatchesActionSelection () |
Public Attributes | |
std::vector < mic::types::MatrixXdPtr > | maze_position_probabilities |
Variable storing the probability that we are in a given maze position. More... | |
std::vector< double > | maze_probabilities |
Variable storing the probability that we are currently moving in/observing a given maze. More... | |
std::vector< double > | maze_x_coordinate_probilities |
Variable storing the probability that we are currently in a given x coordinate. More... | |
std::vector< double > | maze_y_coordinate_probilities |
Variable storing the probability that we are currently in a given y coordinate. More... | |
std::vector< double > | maze_patch_probabilities |
Variable storing the probability that we can find given patch in a given maze. More... | |
int | hidden_maze_number |
shortariable denoting in which maze are we right now (unknown, to be determined). More... | |
int | hidden_x |
Variable denoting the x position are we right now (unknown, to be determined). More... | |
int | hidden_y |
Variable denoting the y position are we right now (unknown, to be determined). More... | |
short | obs |
Current Observation. More... | |
Private Attributes | |
std::vector < mic::types::MatrixXiPtr > | mazes |
List of mazes. More... | |
unsigned int | number_of_mazes |
Problem dimensions - number of mazes. More... | |
unsigned int | number_of_distinctive_patches |
Problem dimensions - number of distinctive patches (in here - number of different digits, i.e. 10). More... | |
unsigned int | maze_width |
Width of maze. More... | |
unsigned int | maze_height |
Height of maze. More... | |
unsigned int | problem_dimensions |
Problem dimensions - number of mazes * their width * their height. More... | |
Class implementing a histogram filter based solution of the maze-of-digits localization problem.
Definition at line 42 of file MazeHistogramFilter.hpp.
mic::algorithms::MazeHistogramFilter::MazeHistogramFilter | ( | ) |
Constructor. Resets variables.
Definition at line 31 of file MazeHistogramFilter.cpp.
References hidden_maze_number, hidden_x, hidden_y, maze_height, maze_width, number_of_distinctive_patches, number_of_mazes, and problem_dimensions.
|
inlinevirtual |
Destructor. Empty for now.
Definition at line 68 of file MazeHistogramFilter.hpp.
void mic::algorithms::MazeHistogramFilter::assignInitialProbabilities | ( | ) |
Assigns initial probabilities (uniform distribution) to all variables.
Definition at line 88 of file MazeHistogramFilter.cpp.
References maze_height, maze_patch_probabilities, maze_position_probabilities, maze_probabilities, maze_width, maze_x_coordinate_probilities, maze_y_coordinate_probilities, mazes, number_of_distinctive_patches, number_of_mazes, and problem_dimensions.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), and mic::application::EpisodicHistogramFilterMazeLocalization::startNewEpisode().
mic::types::Action2DInterface mic::algorithms::MazeHistogramFilter::mostUniquePatchActionSelection | ( | ) |
Selects action based on analysis of current state and patch distributions. The functions tries to find the maximum action utility, taking into consideration probabilities of being in given maze in given x,y-position.
Definition at line 318 of file MazeHistogramFilter.cpp.
References maze_height, maze_patch_probabilities, maze_position_probabilities, maze_width, mazes, and number_of_mazes.
Referenced by mic::application::EpisodicHistogramFilterMazeLocalization::performSingleStep(), and mic::application::HistogramFilterMazeLocalization::performSingleStep().
void mic::algorithms::MazeHistogramFilter::move | ( | mic::types::Action2DInterface | ac_ | ) |
Performs "deterministic" move.
ac_ | Performed action. |
Definition at line 194 of file MazeHistogramFilter.cpp.
References hidden_maze_number, hidden_x, hidden_y, maze_height, maze_position_probabilities, maze_width, mazes, and number_of_mazes.
void mic::algorithms::MazeHistogramFilter::probabilisticMove | ( | mic::types::Action2DInterface | ac_, |
double | exact_move_probability_, | ||
double | overshoot_move_probability_, | ||
double | undershoot_move_probability_ | ||
) |
Performs "probabilistic" move.
ac_ | Performed action. |
exact_move_probability_ | Probability that we made the exact move (pos+dpos). |
overshoot_move_probability_ | Probability that we made the "overshoot" move (pos+dpos+1). |
undershoot_move_probability_ | Probability that we made the "undershoot" move (pos+dpos-1). |
Definition at line 228 of file MazeHistogramFilter.cpp.
References hidden_maze_number, hidden_x, hidden_y, maze_height, maze_position_probabilities, maze_width, mazes, and number_of_mazes.
Referenced by mic::application::EpisodicHistogramFilterMazeLocalization::performSingleStep(), and mic::application::HistogramFilterMazeLocalization::performSingleStep().
void mic::algorithms::MazeHistogramFilter::sense | ( | double | hit_factor_, |
double | miss_factor_ | ||
) |
Performs "probabilistic" sensing - update probabilities basing on the current observation.
hit_factor_ | hit factor (the gain when the observation coincides with current position). |
miss_factor_ | miss factor (the gain when the observation does not coincide with current position). |
Definition at line 145 of file MazeHistogramFilter.cpp.
References hidden_maze_number, hidden_x, hidden_y, maze_height, maze_position_probabilities, maze_width, mazes, number_of_mazes, and obs.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), mic::application::EpisodicHistogramFilterMazeLocalization::performSingleStep(), and mic::application::EpisodicHistogramFilterMazeLocalization::startNewEpisode().
void mic::algorithms::MazeHistogramFilter::setHiddenPose | ( | int | hidden_maze_number_, |
int | hidden_x_, | ||
int | hidden_y_ | ||
) |
Sets hidden pose. If required
hidden_maze_number_ | Hidden maze number (-1 = random) |
hidden_x_ | Maze x coordinate (-1 = random) |
hidden_y_ | Maze y coordinate (-1 = random) |
Definition at line 63 of file MazeHistogramFilter.cpp.
References hidden_maze_number, hidden_x, hidden_y, maze_height, maze_width, and number_of_mazes.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), and mic::application::EpisodicHistogramFilterMazeLocalization::startNewEpisode().
void mic::algorithms::MazeHistogramFilter::setMazes | ( | std::vector< mic::types::MatrixXiPtr > & | mazes_, |
unsigned int | number_of_distinctive_patches_ | ||
) |
Copies pointer to mazes, sets problem dimensions.
mazes_ | Vector of mazes. |
number_of_distinctive_patches_ | Number of distinctive patches. |
Definition at line 38 of file MazeHistogramFilter.cpp.
References maze_height, maze_patch_probabilities, maze_position_probabilities, maze_probabilities, maze_width, maze_x_coordinate_probilities, maze_y_coordinate_probilities, mazes, number_of_distinctive_patches, number_of_mazes, and problem_dimensions.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), and mic::application::EpisodicHistogramFilterMazeLocalization::initializePropertyDependentVariables().
mic::types::Action2DInterface mic::algorithms::MazeHistogramFilter::sumOfMostUniquePatchesActionSelection | ( | ) |
Selects action based on analysis of current state and patch distributions. The functions finds the maximum action utility, summing the results of taking given action taking into account the probabilities of being in given maze in given x,y-position.
Definition at line 359 of file MazeHistogramFilter.cpp.
References maze_height, maze_patch_probabilities, maze_position_probabilities, maze_width, mazes, and number_of_mazes.
Referenced by mic::application::EpisodicHistogramFilterMazeLocalization::performSingleStep(), and mic::application::HistogramFilterMazeLocalization::performSingleStep().
void mic::algorithms::MazeHistogramFilter::updateAggregatedProbabilities | ( | ) |
Updates aggregated probabilities of current maze number, x and y coordinates.
Definition at line 273 of file MazeHistogramFilter.cpp.
References maze_height, maze_position_probabilities, maze_probabilities, maze_width, maze_x_coordinate_probilities, maze_y_coordinate_probilities, and number_of_mazes.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), mic::application::EpisodicHistogramFilterMazeLocalization::performSingleStep(), and mic::application::EpisodicHistogramFilterMazeLocalization::startNewEpisode().
int mic::algorithms::MazeHistogramFilter::hidden_maze_number |
shortariable denoting in which maze are we right now (unknown, to be determined).
Definition at line 155 of file MazeHistogramFilter.hpp.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), MazeHistogramFilter(), move(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), probabilisticMove(), sense(), and setHiddenPose().
int mic::algorithms::MazeHistogramFilter::hidden_x |
Variable denoting the x position are we right now (unknown, to be determined).
Definition at line 158 of file MazeHistogramFilter.hpp.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), MazeHistogramFilter(), move(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), probabilisticMove(), sense(), and setHiddenPose().
int mic::algorithms::MazeHistogramFilter::hidden_y |
Variable denoting the y position are we right now (unknown, to be determined).
Definition at line 161 of file MazeHistogramFilter.hpp.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), MazeHistogramFilter(), move(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), probabilisticMove(), sense(), and setHiddenPose().
|
private |
Height of maze.
Definition at line 132 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), MazeHistogramFilter(), mostUniquePatchActionSelection(), move(), probabilisticMove(), sense(), setHiddenPose(), setMazes(), sumOfMostUniquePatchesActionSelection(), and updateAggregatedProbabilities().
std::vector<double> mic::algorithms::MazeHistogramFilter::maze_patch_probabilities |
Variable storing the probability that we can find given patch in a given maze.
Definition at line 152 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mostUniquePatchActionSelection(), setMazes(), and sumOfMostUniquePatchesActionSelection().
std::vector<mic::types::MatrixXdPtr> mic::algorithms::MazeHistogramFilter::maze_position_probabilities |
Variable storing the probability that we are in a given maze position.
Definition at line 140 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mostUniquePatchActionSelection(), move(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), probabilisticMove(), sense(), setMazes(), sumOfMostUniquePatchesActionSelection(), and updateAggregatedProbabilities().
std::vector<double> mic::algorithms::MazeHistogramFilter::maze_probabilities |
Variable storing the probability that we are currently moving in/observing a given maze.
Definition at line 143 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mic::application::EpisodicHistogramFilterMazeLocalization::performSingleStep(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), setMazes(), mic::application::HistogramFilterMazeLocalization::storeCurrentStateInDataContainers(), and updateAggregatedProbabilities().
|
private |
Width of maze.
Definition at line 129 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), MazeHistogramFilter(), mostUniquePatchActionSelection(), move(), probabilisticMove(), sense(), setHiddenPose(), setMazes(), sumOfMostUniquePatchesActionSelection(), and updateAggregatedProbabilities().
std::vector<double> mic::algorithms::MazeHistogramFilter::maze_x_coordinate_probilities |
Variable storing the probability that we are currently in a given x coordinate.
Definition at line 146 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), setMazes(), mic::application::HistogramFilterMazeLocalization::storeCurrentStateInDataContainers(), and updateAggregatedProbabilities().
std::vector<double> mic::algorithms::MazeHistogramFilter::maze_y_coordinate_probilities |
Variable storing the probability that we are currently in a given y coordinate.
Definition at line 149 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), setMazes(), mic::application::HistogramFilterMazeLocalization::storeCurrentStateInDataContainers(), and updateAggregatedProbabilities().
|
private |
List of mazes.
Definition at line 120 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), mostUniquePatchActionSelection(), move(), probabilisticMove(), sense(), setMazes(), and sumOfMostUniquePatchesActionSelection().
|
private |
Problem dimensions - number of distinctive patches (in here - number of different digits, i.e. 10).
Definition at line 126 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), MazeHistogramFilter(), and setMazes().
|
private |
Problem dimensions - number of mazes.
Definition at line 123 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), MazeHistogramFilter(), mostUniquePatchActionSelection(), move(), probabilisticMove(), sense(), setHiddenPose(), setMazes(), sumOfMostUniquePatchesActionSelection(), and updateAggregatedProbabilities().
short mic::algorithms::MazeHistogramFilter::obs |
Current Observation.
Definition at line 164 of file MazeHistogramFilter.hpp.
Referenced by mic::application::HistogramFilterMazeLocalization::initializePropertyDependentVariables(), mic::application::HistogramFilterMazeLocalization::performSingleStep(), and sense().
|
private |
Problem dimensions - number of mazes * their width * their height.
Definition at line 135 of file MazeHistogramFilter.hpp.
Referenced by assignInitialProbabilities(), MazeHistogramFilter(), and setMazes().