23 : policy(std::vector<std::vector<double>>(S, std::vector<double>(A)))
26 , randomGenerator(gen)
36 std::vector<double> vector = gen->drawDistribution(
nbOfActions);
54 stream.open(filename);
55 if (!stream.is_open())
56 throw std::runtime_error(
"cannot open file");
58 std::vector<std::vector<double>>
pol;
59 while(std::getline(stream, line))
62 std::vector<double> row;
64 for (
size_t i = 0;
i < elements.size();
i++)
66 row.push_back(std::stod(elements[
i]));
102 double cumulative = 0.0;
107 cumulative += (*vector)[
i];
120 std::cerr <<
"Bug occured. here is the action vector distribution for state ";
121 std::cerr << state <<
":\n";
124 std::cerr <<
" "<<(*vector)[
i]<<
"\n";
126 std::cerr <<
"d is "<<d<<
"\n";
127 throw std::runtime_error(
"Bug occured in selecting action from policy");
135 stream <<
"Printing the policy:\n";
void update(state_t state, const std::vector< double > &vector)
void saveToFile(std::string filename)
std::vector< std::vector< double > > policy
void initializeFromFile(std::string filename)
std::shared_ptr< Utils::RandomGenerator > randomGenerator
std::vector< double > * getActionVector(state_t state)
void initializeUniformly()
void handleErrorInGettingAction(std::vector< double > *vector, state_t state, double d)
action_t getAction(state_t state)
Policy(int nbOfStates, int nbOfActions, std::shared_ptr< Utils::RandomGenerator > gen)
void initializeRandomly(std::shared_ptr< Utils::RandomGenerator > gen)
void print(std::ostream &stream)
static std::vector< std::string > split(std::string str, char delimiter)