AIToolbox
A library that offers tools for AI problem solving.
QGreedyPolicy.hpp
Go to the documentation of this file.
1 #ifndef AI_TOOLBOX_BANDIT_Q_GREEDY_POLICY_HEADER_FILE
2 #define AI_TOOLBOX_BANDIT_Q_GREEDY_POLICY_HEADER_FILE
3 
6 
7 namespace AIToolbox::Bandit {
14  class QGreedyPolicy : public PolicyInterface {
15  public:
21  QGreedyPolicy(const QFunction & q);
22 
31  virtual size_t sampleAction() const override;
32 
44  virtual double getActionProbability(const size_t & a) const override;
45 
53  virtual Vector getPolicy() const override;
54 
55  private:
56  const QFunction & q_;
57  // To avoid reallocating a vector every time for sampling.
58  mutable std::vector<size_t> bestActions_;
59  };
60 }
61 
62 #endif
63 
AIToolbox::Bandit::QGreedyPolicy::getActionProbability
virtual double getActionProbability(const size_t &a) const override
This function returns the probability of taking the specified action.
AIToolbox::Bandit::QFunction
Vector QFunction
Definition: Types.hpp:16
AIToolbox::Bandit::QGreedyPolicy::sampleAction
virtual size_t sampleAction() const override
This function chooses the greediest action.
AIToolbox::Bandit::PolicyInterface
Simple typedef for most of a normal Bandit's policy needs.
Definition: PolicyInterface.hpp:11
AIToolbox::Bandit::QGreedyPolicy::QGreedyPolicy
QGreedyPolicy(const QFunction &q)
Basic constructor.
AIToolbox::Vector
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
Definition: Types.hpp:16
AIToolbox::Bandit
Definition: Experience.hpp:6
AIToolbox::Bandit::QGreedyPolicy::getPolicy
virtual Vector getPolicy() const override
This function returns a vector containing all probabilities of the policy.
PolicyInterface.hpp
Types.hpp
AIToolbox::Bandit::QGreedyPolicy
This class implements a simple greedy policy.
Definition: QGreedyPolicy.hpp:14