33 #include <agrum/tools/core/multiPriorityQueue.h> 35 #include <agrum/tools/multidim/implementations/multiDimFunctionGraph.h> 37 #include <agrum/FMDP/learning/core/templateStrategy.h> 38 #include <agrum/FMDP/learning/datastructure/incrementalGraphLearner.h> 40 #include <agrum/tools/variables/discreteVariable.h> 60 template < TESTNAME AttributeSelection,
bool isScalar =
false >
81 ITI(MultiDimFunctionGraph<
double >* target,
82 double attributeSelectionThreshold,
83 Set<
const DiscreteVariable* > attributeListe,
84 const DiscreteVariable* learnedValue);
97 ITI(MultiDimFunctionGraph<
double >* target,
98 double attributeSelectionThreshold,
99 Set<
const DiscreteVariable* > attributeListe);
104 ~
ITI() { GUM_DESTRUCTOR(ITI); }
131 NodeId currentNodeId);
164 void chgNodeBoundVar_(NodeId chgedNodeId,
const DiscreteVariable* desiredVar);
208 return insertTerminalNode__(src, Int2Type< isScalar >());
244 for (SetIteratorSafe<
const DiscreteVariable* > varIter
245 =
this->setOfVars_.beginSafe();
246 varIter !=
this->setOfVars_.endSafe();
267 #include <agrum/FMDP/learning/datastructure/iti_tpl.h> void updateFunctionGraph()
Updates target to currently learned graph structure.
Learn a graphical representation of a function as a decision tree.
ITI(MultiDimFunctionGraph< double > *target, double attributeSelectionThreshold, Set< const DiscreteVariable * > attributeListe)
ITI constructeur for real functions.
~ITI()
Default destructor.
INLINE void emplace(Args &&... args)
void updateGraph()
Updates the internal graph after a new observation has been added.
void removeNode_(NodeId removedNodeId)
Removes a node from the internal graph.
double attributeSelectionThreshold__
The threshold above which we consider variables to be dependant.
ITI(MultiDimFunctionGraph< double > *target, double attributeSelectionThreshold, Set< const DiscreteVariable * > attributeListe, const DiscreteVariable *learnedValue)
ITI constructor for functions describing the behaviour of one variable according to a set of other va...
NodeId insertTerminalNode__(NodeId src, Int2Type< false >)
Insert a terminal node in the target.
void insertSetOfVars_(MultiDimFunctionGraph< double > *ret)
insertSetOfVars_
NodeId insertNode_(NodeDatabase< AttributeSelection, isScalar > *nDB, const DiscreteVariable *boundVar)
inserts a new node in internal graph
NodeId insertNodeInFunctionGraph__(NodeId src)
Inserts an internal node in the target.
void updateNodeWithObservation_(const Observation *newObs, NodeId currentNodeId)
Will update internal graph's NodeDatabase of given node with the new observation. ...
NodeId insertTerminalNode__(NodeId src)
Insert a terminal node in the target.
HashTable< NodeId, bool > staleTable__
Hashtable indicating if given node has been modified (upon receiving new exemple or through a transpo...
Idx nbTotalObservation__
The total number of observation added to this tree.
void chgNodeBoundVar_(NodeId chgedNodeId, const DiscreteVariable *desiredVar)
Changes the associated variable of a node.
void addObservation(const Observation *obs)
Inserts a new observation.