AIToolbox
A library that offers tools for AI problem solving.
EpsilonPolicy.hpp
Go to the documentation of this file.
1
#ifndef AI_TOOLBOX_FACTORED_MDP_EPSILON_POLICY_HEADER_FILE
2
#define AI_TOOLBOX_FACTORED_MDP_EPSILON_POLICY_HEADER_FILE
3
4
#include <
AIToolbox/Factored/MDP/Types.hpp
>
5
#include <
AIToolbox/EpsilonPolicyInterface.hpp
>
6
7
namespace
AIToolbox::Factored::MDP
{
11
class
EpsilonPolicy
:
public
EpsilonPolicyInterface
<State, State, Action> {
12
public
:
13
using
EpsilonBase
=
EpsilonPolicyInterface<State, State, Action>
;
14
27
EpsilonPolicy
(
const
EpsilonBase::Base
& p,
double
epsilon = 0.1);
28
29
protected
:
35
virtual
Action
sampleRandomAction
()
const
;
36
42
virtual
double
getRandomActionProbability
()
const
;
43
44
// Used to sampled random actions
45
mutable
std::vector<std::uniform_int_distribution<size_t>>
randomDistribution_
;
46
};
47
}
48
49
#endif
AIToolbox::Factored::MDP::EpsilonPolicy::sampleRandomAction
virtual Action sampleRandomAction() const
This function returns a random action in the Action space.
AIToolbox::Factored::MDP
Definition:
CooperativePrioritizedSweeping.hpp:13
AIToolbox::Factored::MDP::EpsilonPolicy::randomDistribution_
std::vector< std::uniform_int_distribution< size_t > > randomDistribution_
Definition:
EpsilonPolicy.hpp:45
AIToolbox::Factored::MDP::EpsilonPolicy::getRandomActionProbability
virtual double getRandomActionProbability() const
This function returns the probability of picking a random action.
AIToolbox::PolicyInterface< State, State, Action >
AIToolbox::Factored::MDP::EpsilonPolicy
This class represents an epsilon-greedy policy for Factored MDPs.
Definition:
EpsilonPolicy.hpp:11
AIToolbox::Factored::Action
Factors Action
Definition:
Types.hpp:69
AIToolbox::EpsilonPolicyInterface
This class is a policy wrapper for epsilon action choice.
Definition:
EpsilonPolicyInterface.hpp:29
AIToolbox::Factored::MDP::EpsilonPolicy::EpsilonPolicy
EpsilonPolicy(const EpsilonBase::Base &p, double epsilon=0.1)
Basic constructor.
Types.hpp
EpsilonPolicyInterface.hpp