AIToolbox
A library that offers tools for AI problem solving.
|
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... | |
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.
using AIToolbox::Factored::Bandit::UCVE::Factor = std::vector<Entry> |
using AIToolbox::Factored::Bandit::UCVE::Result = std::tuple<Action, V> |
using AIToolbox::Factored::Bandit::UCVE::V = Eigen::Vector2d |
|
inline |
This function is the entry point for the solving process.
Iterable | An iterable object containing a series of Entry. |
A | The size of the action space |
logtA | The precomputed value for logtA for this timestep. |
inputRules | The rules on which the Variable Elimination process will work. |
Result AIToolbox::Factored::Bandit::UCVE::operator() | ( | const Action & | A, |
const double | logtA, | ||
GVE::Graph & | graph | ||
) |
This function performs the actual agent elimination process.
A | The size of the action space |
logtA | The precomputed value for logtA for this timestep. |
graph | The graph to perform UCVE on. |