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

This class represents the UCVE process. More...

#include <AIToolbox/Factored/Bandit/Algorithms/Utils/UCVE.hpp>

Classes

struct  Entry
 

Public Types

using V = Eigen::Vector2d
 
using Factor = std::vector< Entry >
 
using Result = std::tuple< Action, V >
 
using GVE = GenericVariableElimination< Factor >
 

Public Member Functions

template<typename Iterable >
Result operator() (const Action &A, const double logtA, const Iterable &inputRules)
 This function is the entry point for the solving process. More...
 
Result operator() (const Action &A, const double logtA, GVE::Graph &graph)
 This function performs the actual agent elimination process. More...
 

Detailed Description

This class represents the UCVE process.

This class implements variable elimination using bounds. It receives as input a series of rules, one per PartialAction, containing both an approximate value for the action, and a variance to keep track of how much the rule could be actually worth.

Internally, this uses a variation over MultiObjectiveVariableElimination, where the two objectives are the approximate value and the variance. Additionally, in order to be more efficient, the agent removal process during Variable Elimination computes an upper and lower variance bound for that agent, in order to remove actions which cannot possibly be optimal from the search.

As this class doesn't really do much cleanup after solving a process, it's probably best to create a separate instance for each solving process.

Member Typedef Documentation

◆ Factor

◆ GVE

◆ Result

◆ V

using AIToolbox::Factored::Bandit::UCVE::V = Eigen::Vector2d

Member Function Documentation

◆ operator()() [1/2]

template<typename Iterable >
Result AIToolbox::Factored::Bandit::UCVE::operator() ( const Action A,
const double  logtA,
const Iterable &  inputRules 
)
inline

This function is the entry point for the solving process.

Template Parameters
IterableAn iterable object containing a series of Entry.
Parameters
AThe size of the action space
logtAThe precomputed value for logtA for this timestep.
inputRulesThe rules on which the Variable Elimination process will work.
Returns
The optimal action to take, and its value.

◆ operator()() [2/2]

Result AIToolbox::Factored::Bandit::UCVE::operator() ( const Action A,
const double  logtA,
GVE::Graph graph 
)

This function performs the actual agent elimination process.

Parameters
AThe size of the action space
logtAThe precomputed value for logtA for this timestep.
graphThe graph to perform UCVE on.
Returns
The best action, randomly taken if multiple actions are eligible.

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