71#define RECAST(x) reinterpret_cast< const MultiDimFunctionGraph< GUM_ELEMENT >* >(x)
87 template <
typename GUM_ELEMENT >
95 template <
typename GUM_ELEMENT >
115 template <
typename GUM_ELEMENT >
123 qAction->
copy(*Vold);
146 template <
typename GUM_ELEMENT >
158 template <
typename GUM_ELEMENT >
170 template <
typename GUM_ELEMENT >
182 template <
typename GUM_ELEMENT >
204 template <
typename GUM_ELEMENT >
220 template <
typename GUM_ELEMENT >
230 template <
typename GUM_ELEMENT >
236 template <
typename GUM_ELEMENT >
244 template <
typename GUM_ELEMENT >
250 template <
typename GUM_ELEMENT >
257 template <
typename GUM_ELEMENT >
A class to store the optimal actions.
Class to handle efficiently argMaxSet.
bool existsSecond(const T2 &second) const
const T1 & first(const T2 &second) const
Base class for discrete random variable.
This class is used to implement factored decision process.
const Bijection< const DiscreteVariable *, const DiscreteVariable * > & mapMainPrime() const
Returns the map binding main variables and prime variables.
const MultiDimImplementation< GUM_ELEMENT > * transition(Idx actionId, const DiscreteVariable *v) const
Returns transition associated to given in parameter variable and the given action.
void deleteFunctionGraph_(const MultiDimFunctionGraph< GUM_ELEMENT > *f1, const MultiDimFunctionGraph< GUM_ELEMENT > *f2, Idx del)
~MDDOperatorStrategy() override
Default destructor.
MultiDimFunctionGraph< ArgMaxSet< GUM_ELEMENT, Idx >, SetTerminalNodePolicy > * getArgMaxFunctionInstance() override
const DiscreteVariable * lastVar_(const MultiDimFunctionGraph< GUM_ELEMENT > *function)
Returns the last var in the var order for given graph function Called by the evalQaction.
bool shouldEleminateVar_(const DiscreteVariable *v, const FMDP< GUM_ELEMENT > *fmdp)
Indicates if whether or not given var is to be eliminated. Called by the evalQaction.
MultiDimFunctionGraph< ActionSet, SetTerminalNodePolicy > * getAggregatorInstance() override
MultiDimFunctionGraph< GUM_ELEMENT > * regress(const MultiDimFunctionGraph< GUM_ELEMENT > *Vold, Idx actionId, const FMDP< GUM_ELEMENT > *fmdp, const gum::VariableSet &elVarSeq) override
Computes Qaction for given actionid.
MultiDimFunctionGraph< GUM_ELEMENT > * minimize(const MultiDimFunctionGraph< GUM_ELEMENT > *f1, const MultiDimFunctionGraph< GUM_ELEMENT > *f2, Idx del=3) override
MultiDimFunctionGraph< GUM_ELEMENT > * maximize(const MultiDimFunctionGraph< GUM_ELEMENT > *f1, const MultiDimFunctionGraph< GUM_ELEMENT > *f2, Idx del=3) override
MultiDimFunctionGraph< ArgMaxSet< GUM_ELEMENT, Idx >, SetTerminalNodePolicy > * argmaximize(const MultiDimFunctionGraph< ArgMaxSet< GUM_ELEMENT, Idx >, SetTerminalNodePolicy > *f1, const MultiDimFunctionGraph< ArgMaxSet< GUM_ELEMENT, Idx >, SetTerminalNodePolicy > *f2, Idx del=3) override
MultiDimFunctionGraph< GUM_ELEMENT > * subtract(const MultiDimFunctionGraph< GUM_ELEMENT > *f1, const MultiDimFunctionGraph< GUM_ELEMENT > *f2, Idx del=0) override
Subtract current VFunction from old VFunction to see if threshold is reached or not.
MultiDimFunctionGraph< GUM_ELEMENT > * multiply(const MultiDimFunctionGraph< GUM_ELEMENT > *f1, const MultiDimFunctionGraph< GUM_ELEMENT > *f2, Idx del=3) override
MultiDimFunctionGraph< GUM_ELEMENT > * add(const MultiDimFunctionGraph< GUM_ELEMENT > *f1, const MultiDimFunctionGraph< GUM_ELEMENT > *f2, Idx del=1) override
Adds reward to given function( whether a qAction or vFunction).
MultiDimFunctionGraph< GUM_ELEMENT, ExactTerminalNodePolicy > * getFunctionInstance() override
MDDOperatorStrategy()
Default constructor.
Class used to perform Function Graph Operations.
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * compute()
Computes and builds the Function Graph that is the result of the operation.
Class implementingting a function graph.
void copy(const MultiDimContainer< GUM_ELEMENT > &src) override
static MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * getReducedAndOrderedInstance()
Returns a reduced and ordered instance.
const Sequence< const DiscreteVariable * > & variablesSequence() const override
Returns a const ref to the sequence of DiscreteVariable*.
Class used to perform Function Graph Operations in the FMDP Framework.
MultiDimFunctionGraph< GUM_ELEMENT, TerminalNodePolicy > * compute()
Computes and builds the Function Graph that is the result of the operation.
Implementation of a Terminal Node Policy that maps nodeid to a set of value.
This files contains several function objects that are not (yet) defined in the STL.
Size Idx
Type for indexes.
MultiDimFunctionGraph< T > * multiply2MultiDimFunctionGraphs(const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
a specialized function for multiplying two multiDimArrays
MultiDimFunctionGraph< T > * subtract2MultiDimFunctionGraphs(const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
a specialized function for subtracting two multiDimArrays
MultiDimFunctionGraph< T > * add2MultiDimFunctionGraphs(const MultiDimFunctionGraph< T > *t1, const MultiDimFunctionGraph< T > *t2)
a specialized function for summing two multiDimArrays
Headers of the MDDOperatorStrategy planer class.
#define RECAST(x)
For shorter line and hence more comprehensive code only.
Class used to compute the operation between two decision diagrams.
gum is the global namespace for all aGrUM entities
Set< const DiscreteVariable * > VariableSet
Class used to compute the operation between two decision diagrams.
<agrum/FMDP/planning/actionSet.h>
Header of the Tensor class.