23 #ifndef SRC_ALGORITHMS_MAZEHISTOGRAMFILTER_HPP_
24 #define SRC_ALGORITHMS_MAZEHISTOGRAMFILTER_HPP_
27 #include <types/MatrixTypes.hpp>
29 #include<logger/Log.hpp>
30 #include<utils/RandomGenerator.hpp>
32 #include <types/Action2D.hpp>
36 namespace algorithms {
55 void setMazes(std::vector<mic::types::MatrixXiPtr> & mazes_,
unsigned int number_of_distinctive_patches_);
63 void setHiddenPose(
int hidden_maze_number_,
int hidden_x_,
int hidden_y_);
80 void sense (
double hit_factor_,
double miss_factor_);
86 void move (mic::types::Action2DInterface ac_);
95 void probabilisticMove (mic::types::Action2DInterface ac_,
double exact_move_probability_,
double overshoot_move_probability_,
double undershoot_move_probability_);
120 std::vector<mic::types::MatrixXiPtr>
mazes;
Class implementing a histogram filter based solution of the maze-of-digits localization problem...
void probabilisticMove(mic::types::Action2DInterface ac_, double exact_move_probability_, double overshoot_move_probability_, double undershoot_move_probability_)
void setHiddenPose(int hidden_maze_number_, int hidden_x_, int hidden_y_)
virtual ~MazeHistogramFilter()
unsigned int maze_width
Width of maze.
std::vector< mic::types::MatrixXiPtr > mazes
List of mazes.
void move(mic::types::Action2DInterface ac_)
unsigned int maze_height
Height of maze.
void assignInitialProbabilities()
int hidden_maze_number
shortariable denoting in which maze are we right now (unknown, to be determined). ...
void sense(double hit_factor_, double miss_factor_)
int hidden_x
Variable denoting the x position are we right now (unknown, to be determined).
mic::types::Action2DInterface sumOfMostUniquePatchesActionSelection()
mic::types::Action2DInterface mostUniquePatchActionSelection()
std::vector< double > maze_patch_probabilities
Variable storing the probability that we can find given patch in a given maze.
std::vector< double > maze_probabilities
Variable storing the probability that we are currently moving in/observing a given maze...
unsigned int number_of_mazes
Problem dimensions - number of mazes.
std::vector< double > maze_y_coordinate_probilities
Variable storing the probability that we are currently in a given y coordinate.
void updateAggregatedProbabilities()
unsigned int problem_dimensions
Problem dimensions - number of mazes * their width * their height.
void setMazes(std::vector< mic::types::MatrixXiPtr > &mazes_, unsigned int number_of_distinctive_patches_)
int hidden_y
Variable denoting the y position are we right now (unknown, to be determined).
std::vector< double > maze_x_coordinate_probilities
Variable storing the probability that we are currently in a given x coordinate.
short obs
Current Observation.
unsigned int number_of_distinctive_patches
Problem dimensions - number of distinctive patches (in here - number of different digits...
std::vector< mic::types::MatrixXdPtr > maze_position_probabilities
Variable storing the probability that we are in a given maze position.