bitrl & cuberl Documentation
Simulation engine for reinforcement learning agents
Loading...
Searching...
No Matches
uniform_discrete_policy.h
Go to the documentation of this file.
1#ifndef UNIFORM_DISCRETE_POLICY_H
2#define UNIFORM_DISCRETE_POLICY_H
3
5
6#include <vector>
7#include <utility>
8
9namespace cuberl{
10namespace rl {
11namespace policies {
12
17{
18public:
19
23 UniformDiscretePolicy(uint_t n_states, uint_t n_actions);
24
28 UniformDiscretePolicy(uint_t n_states, uint_t n_actions, real_t val);
29
35 std::vector<std::pair<uint_t, real_t>> operator()(uint_t sidx)const{return (*this)[sidx];}
36
40 std::vector<std::pair<uint_t, real_t>> operator[](uint_t sidx)const;
41
45 void update(uint_t sidx, const std::vector<std::pair<uint_t, real_t>>& vals);
46
50 bool equals(const UniformDiscretePolicy& other)const;
51
56 std::vector<std::vector<std::pair<uint_t, real_t>>>& state_actions_values(){return state_actions_prob_;}
57
62 std::pair<uint_t, uint_t> shape()const{return {n_states_, n_actions_};}
63
68 void update(const UniformDiscretePolicy& other);
69
75 std::ostream& print(std::ostream& out)const;
76
77private:
78
82 uint_t n_states_;
83
87 uint_t n_actions_;
88
92 real_t val_;
93
97 std::vector<std::vector<std::pair<uint_t, real_t>>> state_actions_prob_;
98
102 void init_();
103};
104
105inline
107 return p1.equals(p2);
108}
109
110inline
112 return !(p1 == p2);
113}
114
115}
116}
117}
118
119#endif // UNIFORM_DISCRETE_POLICY_H
The UniformDiscretePolicy class.
Definition uniform_discrete_policy.h:17
void update(uint_t sidx, const std::vector< std::pair< uint_t, real_t > > &vals)
Update the policy for state with index sidx.
std::ostream & print(std::ostream &out) const
print
UniformDiscretePolicy(uint_t n_states, uint_t n_actions)
UniformDiscretePolicy.
std::vector< std::pair< uint_t, real_t > > operator[](uint_t sidx) const
operator []
UniformDiscretePolicy(uint_t n_states, uint_t n_actions, real_t val)
UniformDiscretePolicy.
bool equals(const UniformDiscretePolicy &other) const
equals
void update(const UniformDiscretePolicy &other)
update
std::pair< uint_t, uint_t > shape() const
shape
Definition uniform_discrete_policy.h:62
std::vector< std::pair< uint_t, real_t > > operator()(uint_t sidx) const
operator ()
Definition uniform_discrete_policy.h:35
std::vector< std::vector< std::pair< uint_t, real_t > > > & state_actions_values()
state_actions_values
Definition uniform_discrete_policy.h:56
double real_t
real_t
Definition bitrl_types.h:23
std::size_t uint_t
uint_t
Definition bitrl_types.h:43
bool operator==(const UniformDiscretePolicy &p1, const UniformDiscretePolicy &p2)
Definition uniform_discrete_policy.h:106
bool operator!=(const UniformDiscretePolicy &p1, const UniformDiscretePolicy &p2)
Definition uniform_discrete_policy.h:111
Various utilities used when working with RL problems.
Definition cuberl_types.h:16