49#ifndef GUM_FACTORED_MARKOV_DECISION_PROCESS_H
50#define GUM_FACTORED_MARKOV_DECISION_PROCESS_H
72 template <
typename GUM_SCALAR >
74 template <
typename GUM_SCALAR_O >
87 FMDP(
bool onDestructionDeleteVar =
false);
304#ifndef GUM_NO_EXTERN_TEMPLATE_CLASS
Set of pairs of elements with fast search for both elements.
Base class for discrete random variable.
bool _onDestructionDeleteVars_
Boolean indicates whether or not main variables should be deleted on destruction of this instance Usu...
const std::string & actionName(Idx actionId) const
Returns name of action given in parameter.
Sequence< Idx > _actionSeq_
Sequence< const DiscreteVariable * > _varSeq_
Sequence de variables and its iterator.
HashTable< Idx, VarTransitionTable< GUM_SCALAR > * > _actionTransitionTable_
Table which give for each action a table containing variables transition cpt.
void addCostForAction(Idx actionId, const MultiDimImplementation< GUM_SCALAR > *cost)
Adds a cost table to specified action.
const MultiDimImplementation< GUM_SCALAR > * transition(Idx actionId, const DiscreteVariable *v) const
Returns transition associated to given in parameter variable and the given action.
Idx actionId(const std::string &) const
Returns action id.
HashTable< Idx, const MultiDimImplementation< GUM_SCALAR > * > _actionRewardTable_
Table which give for each action reward table.
INLINE const Bijection< const DiscreteVariable *, const DiscreteVariable * > & mapMainPrime() const
Returns the map binding main variables and prime variables.
const DiscreteVariable * main2prime(const DiscreteVariable *mainVar) const
Returns the primed variable associate to the given main variable.
HashTable< Idx, const MultiDimImplementation< GUM_SCALAR > * > _actionCostTable_
Table which give for each action cost table.
const MultiDimImplementation< GUM_SCALAR > * cost(Idx actionId=0) const
Returns the reward table of mdp.
SequenceIteratorSafe< const DiscreteVariable * > endVariables() const
Returns an iterator reference to the end of the list of variables.
SequenceIteratorSafe< Idx > beginActions() const
Returns an iterator reference to he beginning of the list of actions.
const MultiDimImplementation< GUM_SCALAR > * reward(Idx actionId=0) const
Returns the reward table of mdp.
SequenceIteratorSafe< const DiscreteVariable * > beginVariables() const
Returns an iterator reference to he beginning of the list of variables.
FMDP(bool onDestructionDeleteVar=false)
Default constructor.
Bijection< Idx, const std::string * > _actionMap_
Bijection mapping an action name to its id.
void addTransition(const DiscreteVariable *var, const MultiDimImplementation< GUM_SCALAR > *transition)
Adds a default variable transition.
void addCost(const MultiDimImplementation< GUM_SCALAR > *cost)
Adds a default variable cost.
~FMDP()
Default destructor.
void addTransitionForAction(Idx actionId, const DiscreteVariable *var, const MultiDimImplementation< GUM_SCALAR > *transition)
Adds a variable transition table to specified action.
Bijection< const DiscreteVariable *, const DiscreteVariable * > _main2primed_
Mapping from a main variable to its associated primed version.
std::string toString() const
Displays the FMDP in a Dot format.
Size size() const
Returns the map binding main variables and prime variables.
void addReward(const MultiDimImplementation< GUM_SCALAR > *reward)
Adds a default variable reward.
void addAction(Idx actionId, const std::string &action)
Adds an action to FMDP description.
SequenceIteratorSafe< Idx > endActions() const
Returns an iterator reference to the end of the list of actions.
HashTable< const DiscreteVariable *, const MultiDimImplementation< GUM_SCALAR_O > * > VarTransitionTable
void addVariable(const DiscreteVariable *var)
Adds a variable to FMDP description.
void addRewardForAction(Idx actionId, const MultiDimImplementation< GUM_SCALAR > *reward)
Adds a default variable reward.
The class for generic Hash Tables.
<agrum/base/multidim/multiDimImplementation.h>
Safe iterators for Sequence.
The generic class for storing (ordered) sequences of objects.
Template implementation of FMDP/FMDP.h classes.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Size Idx
Type for indexes.
Headers of MultiDimFunctionGraph.
gum is the global namespace for all aGrUM entities