32 #ifndef GUM_SDYNA_DECISION_STRATEGY_H 33 #define GUM_SDYNA_DECISION_STRATEGY_H 35 #include <agrum/tools/core/types.h> 37 #include <agrum/FMDP/planning/actionSet.h> 39 #include <agrum/tools/variables/discreteVariable.h> 74 if (allActions_.size() == 0)
75 for (
auto actionIter = fmdp->beginActions(); actionIter != fmdp->endActions(); ++actionIter)
76 allActions_ += *actionIter;
86 virtual void checkState(
const Instantiation& newState, Idx actionId) = 0;
90 optPol_ =
const_cast< MultiDimFunctionGraph< ActionSet, SetTerminalNodePolicy >* >(optPol);
94 return (optPol_ && optPol_->realSize() != 0) ? optPol_->get(curState) : allActions_;
virtual void initialize(const FMDP< double > *fmdp)
Initializes the learner.
virtual ActionSet stateOptimalPolicy(const Instantiation &curState)
<agrum/FMDP/SDyna/IDecisionStrategy.h>
INLINE void emplace(Args &&... args)
virtual void checkState(const Instantiation &newState, Idx actionId)=0
const MultiDimFunctionGraph< ActionSet, SetTerminalNodePolicy > * optPol_
virtual ~IDecisionStrategy()
Destructor (virtual and empty since it's an interface)
void setOptimalStrategy(const MultiDimFunctionGraph< ActionSet, SetTerminalNodePolicy > *optPol)