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);
166 void chgNodeBoundVar_(NodeId chgedNodeId,
const DiscreteVariable* desiredVar);
210 return _insertTerminalNode_(src, Int2Type< isScalar >());
246 for (SetIteratorSafe<
const DiscreteVariable* > varIter =
this->setOfVars_.beginSafe();
247 varIter !=
this->setOfVars_.endSafe();
268 #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)
NodeId _insertTerminalNode_(NodeId src, Int2Type< false >)
Insert a terminal node in the target.
void updateGraph()
Updates the internal graph after a new observation has been added.
double _attributeSelectionThreshold_
The threshold above which we consider variables to be dependant.
void removeNode_(NodeId removedNodeId)
Removes a node from the internal graph.
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...
Idx _nbTotalObservation_
The total number of observation added to this tree.
void insertSetOfVars_(MultiDimFunctionGraph< double > *ret)
insertSetOfVars_
NodeId insertNode_(NodeDatabase< AttributeSelection, isScalar > *nDB, const DiscreteVariable *boundVar)
inserts a new node in internal graph
void updateNodeWithObservation_(const Observation *newObs, NodeId currentNodeId)
Will update internal graph's NodeDatabase of given node with the new observation. ...
HashTable< NodeId, bool > _staleTable_
Hashtable indicating if given node has been modified (upon receiving new exemple or through a transpo...
void chgNodeBoundVar_(NodeId chgedNodeId, const DiscreteVariable *desiredVar)
Changes the associated variable of a node.
NodeId _insertTerminalNode_(NodeId src)
Insert a terminal node in the target.
NodeId _insertNodeInFunctionGraph_(NodeId src)
Inserts an internal node in the target.
void addObservation(const Observation *obs)
Inserts a new observation.