aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
gum::IOperatorStrategy< GUM_SCALAR > Class Template Referenceabstract

<agrum/FMDP/SDyna/IOperatorStrategy.h> More...

#include <IOperatorStrategy.h>

+ Inheritance diagram for gum::IOperatorStrategy< GUM_SCALAR >:

Public Member Functions

Constructor & destructor.
virtual ~IOperatorStrategy ()
 Destructor (virtual and empty since it's an interface) More...
 
virtual MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy > * getFunctionInstance ()=0
 
virtual MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > * getArgMaxFunctionInstance ()=0
 
virtual MultiDimFunctionGraph< ActionSet, SetTerminalNodePolicy > * getAggregatorInstance ()=0
 
Graph Function Operations Methods
virtual MultiDimFunctionGraph< GUM_SCALAR > * regress (const MultiDimFunctionGraph< GUM_SCALAR > *Vold, Idx actionId, const FMDP< GUM_SCALAR > *fmdp, const Set< const DiscreteVariable * > &elVarSeq)=0
 Performs a multiplication/projection on given qAction. More...
 
virtual MultiDimFunctionGraph< GUM_SCALAR > * maximize (const MultiDimFunctionGraph< GUM_SCALAR > *f1, const MultiDimFunctionGraph< GUM_SCALAR > *f2, Idx del=3)=0
 
virtual MultiDimFunctionGraph< GUM_SCALAR > * minimize (const MultiDimFunctionGraph< GUM_SCALAR > *f1, const MultiDimFunctionGraph< GUM_SCALAR > *f2, Idx del=3)=0
 
virtual MultiDimFunctionGraph< GUM_SCALAR > * multiply (const MultiDimFunctionGraph< GUM_SCALAR > *f1, const MultiDimFunctionGraph< GUM_SCALAR > *f2, Idx del=3)=0
 
virtual MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > * argmaximize (const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *f1, const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *f2, Idx del=3)=0
 
virtual MultiDimFunctionGraph< GUM_SCALAR > * add (const MultiDimFunctionGraph< GUM_SCALAR > *f1, const MultiDimFunctionGraph< GUM_SCALAR > *f2, Idx del=1)=0
 
virtual MultiDimFunctionGraph< GUM_SCALAR > * subtract (const MultiDimFunctionGraph< GUM_SCALAR > *f1, const MultiDimFunctionGraph< GUM_SCALAR > *f2, Idx del=0)=0
 

Protected Member Functions

INLINE void deleteFunctionGraph_ (const MultiDimFunctionGraph< GUM_SCALAR > *f1, const MultiDimFunctionGraph< GUM_SCALAR > *f2, Idx del)
 
INLINE void deleteFunctionGraph_ (const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *f1, const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *f2, Idx del)
 

Detailed Description

template<typename GUM_SCALAR>
class gum::IOperatorStrategy< GUM_SCALAR >

<agrum/FMDP/SDyna/IOperatorStrategy.h>

Interface for manipulating Operator center

Definition at line 52 of file IOperatorStrategy.h.

Constructor & Destructor Documentation

◆ ~IOperatorStrategy()

template<typename GUM_SCALAR>
virtual gum::IOperatorStrategy< GUM_SCALAR >::~IOperatorStrategy ( )
inlinevirtual

Destructor (virtual and empty since it's an interface)

Definition at line 61 of file IOperatorStrategy.h.

61 {}

Member Function Documentation

◆ add()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR >* gum::IOperatorStrategy< GUM_SCALAR >::add ( const MultiDimFunctionGraph< GUM_SCALAR > *  f1,
const MultiDimFunctionGraph< GUM_SCALAR > *  f2,
Idx  del = 1 
)
pure virtual
Warning
given function is deleted, returns the new one

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.

◆ argmaximize()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy >* gum::IOperatorStrategy< GUM_SCALAR >::argmaximize ( const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *  f1,
const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *  f2,
Idx  del = 3 
)
pure virtual
Warning
given vFunction and qAction are deleted, returns the new one

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.

◆ deleteFunctionGraph_() [1/2]

template<typename GUM_SCALAR>
INLINE void gum::IOperatorStrategy< GUM_SCALAR >::deleteFunctionGraph_ ( const MultiDimFunctionGraph< GUM_SCALAR > *  f1,
const MultiDimFunctionGraph< GUM_SCALAR > *  f2,
Idx  del 
)
inlineprotected

Definition at line 156 of file IOperatorStrategy.h.

158  {
159  if (del == 1 || del == 3) delete f1;
160  if (del >= 2) delete f2;
161  }

◆ deleteFunctionGraph_() [2/2]

template<typename GUM_SCALAR>
INLINE void gum::IOperatorStrategy< GUM_SCALAR >::deleteFunctionGraph_ ( const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *  f1,
const MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy > *  f2,
Idx  del 
)
inlineprotected

Definition at line 163 of file IOperatorStrategy.h.

Referenced by gum::IOperatorStrategy< double >::deleteFunctionGraph_().

166  {
167  if (del == 1 || del == 3) delete f1;
168  if (del >= 2) delete f2;
169  }
+ Here is the caller graph for this function:

◆ getAggregatorInstance()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< ActionSet, SetTerminalNodePolicy >* gum::IOperatorStrategy< GUM_SCALAR >::getAggregatorInstance ( )
pure virtual

◆ getArgMaxFunctionInstance()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< ArgMaxSet< GUM_SCALAR, Idx >, SetTerminalNodePolicy >* gum::IOperatorStrategy< GUM_SCALAR >::getArgMaxFunctionInstance ( )
pure virtual

◆ getFunctionInstance()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR, ExactTerminalNodePolicy >* gum::IOperatorStrategy< GUM_SCALAR >::getFunctionInstance ( )
pure virtual

◆ maximize()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR >* gum::IOperatorStrategy< GUM_SCALAR >::maximize ( const MultiDimFunctionGraph< GUM_SCALAR > *  f1,
const MultiDimFunctionGraph< GUM_SCALAR > *  f2,
Idx  del = 3 
)
pure virtual
Warning
given vFunction and qAction are deleted, returns the new one

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.

◆ minimize()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR >* gum::IOperatorStrategy< GUM_SCALAR >::minimize ( const MultiDimFunctionGraph< GUM_SCALAR > *  f1,
const MultiDimFunctionGraph< GUM_SCALAR > *  f2,
Idx  del = 3 
)
pure virtual
Warning
Minimze the two given functions

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.

◆ multiply()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR >* gum::IOperatorStrategy< GUM_SCALAR >::multiply ( const MultiDimFunctionGraph< GUM_SCALAR > *  f1,
const MultiDimFunctionGraph< GUM_SCALAR > *  f2,
Idx  del = 3 
)
pure virtual
Warning
given f1 and f2 are deleted, returns the new one

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.

◆ regress()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR >* gum::IOperatorStrategy< GUM_SCALAR >::regress ( const MultiDimFunctionGraph< GUM_SCALAR > *  Vold,
Idx  actionId,
const FMDP< GUM_SCALAR > *  fmdp,
const Set< const DiscreteVariable * > &  elVarSeq 
)
pure virtual

Performs a multiplication/projection on given qAction.

Returns
qAction : the computed Q(s,a)
Warning
given qAction is deleted, return the new one

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.

◆ subtract()

template<typename GUM_SCALAR>
virtual MultiDimFunctionGraph< GUM_SCALAR >* gum::IOperatorStrategy< GUM_SCALAR >::subtract ( const MultiDimFunctionGraph< GUM_SCALAR > *  f1,
const MultiDimFunctionGraph< GUM_SCALAR > *  f2,
Idx  del = 0 
)
pure virtual
Warning
this time, nothing is deleted

Implemented in gum::MDDOperatorStrategy< GUM_SCALAR >, and gum::TreeOperatorStrategy< GUM_SCALAR >.


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