30 #ifndef GUM_FMDP_LEARNER_H 31 #define GUM_FMDP_LEARNER_H 33 #include <agrum/tools/core/hashTable.h> 35 #include <agrum/FMDP/SDyna/Strategies/ILearningStrategy.h> 36 #include <agrum/FMDP/fmdp.h> 37 #include <agrum/FMDP/learning/datastructure/imddi.h> 38 #include <agrum/FMDP/learning/datastructure/iti.h> 39 #include <agrum/FMDP/learning/observation.h> 41 #include <agrum/tools/variables/discreteVariable.h> 56 template < TESTNAME VariableAttributeSelection,
57 TESTNAME RewardAttributeSelection,
58 LEARNERNAME LearnerSelection >
85 double similarityThreshold = 0.05);
108 return instantiateFunctionGraph__(Int2Type< LearnerSelection >());
113 return MultiDimFunctionGraph<
double, ExactTerminalNodePolicy >::
114 getReducedAndOrderedInstance();
119 return MultiDimFunctionGraph<
double,
120 ExactTerminalNodePolicy >::getTreeInstance();
131 return instantiateVarLearner__(target,
134 Int2Type< LearnerSelection >());
142 return new VariableLearnerType(target,
144 similarityThreshold__,
154 return new VariableLearnerType(target,
167 return instantiateRewardLearner__(target,
169 Int2Type< LearnerSelection >());
176 return new RewardLearnerType(target,
178 similarityThreshold__,
186 return new RewardLearnerType(target, learningThreshold__, mainVariables);
237 return actionLearners__[actionId]->getWithDefault(var,
nullptr);
271 #include <agrum/FMDP/learning/fmdpLearner_tpl.h> RewardLearnerType * rewardLearner__
void initialize(FMDP< double > *fmdp)
Initializes the learner.
INLINE void emplace(Args &&... args)
MultiDimFunctionGraph< double > * instantiateFunctionGraph__(Int2Type< ITILEARNER >)
Initializes the learner.
const IVisitableGraphLearner * varLearner(Idx actionId, const DiscreteVariable *var) const
extractCount
VariableLearnerType * instantiateVarLearner__(MultiDimFunctionGraph< double > *target, Set< const DiscreteVariable * > &mainVariables, const DiscreteVariable *learnedVar)
Initializes the learner.
HashTable< Idx, VarLearnerTable *> actionLearners__
FMDPLearner(double learningThreshold, bool actionReward, double similarityThreshold=0.05)
Default constructor.
double modaMax__
learnerSize
~FMDPLearner()
Default destructor.
VariableLearnerType * instantiateVarLearner__(MultiDimFunctionGraph< double > *target, Set< const DiscreteVariable * > &mainVariables, const DiscreteVariable *learnedVar, Int2Type< ITILEARNER >)
Initializes the learner.
bool addObservation(Idx actionId, const Observation *obs)
Gives to the learner a new transition.
virtual double modaMax() const
learnerSize
RewardLearnerType * instantiateRewardLearner__(MultiDimFunctionGraph< double > *target, Set< const DiscreteVariable * > &mainVariables, Int2Type< ITILEARNER >)
Initializes the learner.
HashTable< const DiscreteVariable *, VariableLearnerType *> VarLearnerTable
MultiDimFunctionGraph< double > * instantiateFunctionGraph__()
Initializes the learner.
RewardLearnerType * instantiateRewardLearner__(MultiDimFunctionGraph< double > *target, Set< const DiscreteVariable * > &mainVariables)
Initializes the learner.
LearnerSelect< LearnerSelection, IMDDI< RewardAttributeSelection, true >, ITI< RewardAttributeSelection, true > >::type RewardLearnerType
void updateFMDP()
Starts an update of datastructure in the associated FMDP.
const double similarityThreshold__
virtual double rMax() const
learnerSize
FMDP< double > * fmdp__
The FMDP to store the learned model.
const double learningThreshold__
HashTable< Idx, RewardLearnerType *> actionRewardLearners__