AIToolbox
A library that offers tools for AI problem solving.
AIToolbox::Bandit::RandomPolicy Class Reference

This class represents a random policy. More...

#include <AIToolbox/Bandit/Policies/RandomPolicy.hpp>

Inheritance diagram for AIToolbox::Bandit::RandomPolicy:
AIToolbox::Bandit::PolicyInterface AIToolbox::PolicyInterface< void, void, size_t >

Public Member Functions

 RandomPolicy (size_t a)
 Basic constructor. More...
 
virtual size_t sampleAction () const override
 This function chooses a random action for state s, following the policy distribution. More...
 
virtual double getActionProbability (const size_t &a) const override
 This function returns the probability of taking the specified action in the specified state. More...
 
virtual Vector getPolicy () const override
 This function returns a vector containing all probabilities of the policy. More...
 
- Public Member Functions inherited from AIToolbox::PolicyInterface< void, void, size_t >
 PolicyInterface (void s, size_t a)
 Basic constructor. More...
 
virtual ~PolicyInterface ()
 Basic virtual destructor. More...
 
virtual size_t sampleAction (const void &s) const=0
 This function chooses a random action for state s, following the policy distribution. More...
 
virtual double getActionProbability (const void &s, const size_t &a) const=0
 This function returns the probability of taking the specified action in the specified state. More...
 
const void & getS () const
 This function returns the number of states of the world. More...
 
const size_t & getA () const
 This function returns the number of available actions to the agent. More...
 

Additional Inherited Members

- Public Types inherited from AIToolbox::Bandit::PolicyInterface
using Base = AIToolbox::PolicyInterface< void, void, size_t >
 
- Protected Attributes inherited from AIToolbox::PolicyInterface< void, void, size_t >
void S
 
size_t A
 
RandomEngine rand_
 

Detailed Description

This class represents a random policy.

This class simply returns a random action every time it is polled.

Constructor & Destructor Documentation

◆ RandomPolicy()

AIToolbox::Bandit::RandomPolicy::RandomPolicy ( size_t  a)

Basic constructor.

Parameters
aThe number of actions available to the agent.

Member Function Documentation

◆ getActionProbability()

virtual double AIToolbox::Bandit::RandomPolicy::getActionProbability ( const size_t &  a) const
overridevirtual

This function returns the probability of taking the specified action in the specified state.

Parameters
aThe selected action.
Returns
The probability of taking the selected action in the specified state.

◆ getPolicy()

virtual Vector AIToolbox::Bandit::RandomPolicy::getPolicy ( ) const
overridevirtual

This function returns a vector containing all probabilities of the policy.

Note that this may be expensive to compute, and should not be called often (aside from the fact that it needs to allocate a new Vector each time).

Ideally this function can be called only when there is a repeated need to access the same policy values in an efficient manner.

Implements AIToolbox::Bandit::PolicyInterface.

◆ sampleAction()

virtual size_t AIToolbox::Bandit::RandomPolicy::sampleAction ( ) const
overridevirtual

This function chooses a random action for state s, following the policy distribution.

Returns
The chosen action.

The documentation for this class was generated from the following file: