aGrUM 3.0.0
a C++ library for (probabilistic) graphical models
gum::SDYNA Class Reference

The general SDyna architecture abstract class. More...

#include <agrum/FMDP/SDyna/sdyna.h>

Collaboration diagram for gum::SDYNA:

Public Member Functions

std::string toString ()
 Returns.
std::string optimalPolicy2String ()
Problem specification methods
void addAction (const Idx actionId, std::string_view actionName)
 Inserts a new action in the SDyna instance.
void addVariable (const DiscreteVariable *var)
 Inserts a new variable in the SDyna instance.
Initialization
void initialize ()
 Initializes the Sdyna instance.
void initialize (const Instantiation &initialState)
 Initializes the Sdyna instance at given state.
Incremental methods
void setCurrentState (const Instantiation &currentState)
 Sets last state visited to the given state.
Idx takeAction (const Instantiation &curState)
Idx takeAction ()
void feedback (const Instantiation &originalState, const Instantiation &reachedState, Idx performedAction, double obtainedReward)
 Performs a feedback on the last transition.
void feedback (const Instantiation &reachedState, double obtainedReward)
 Performs a feedback on the last transition.
void makePlanning (Idx nbStep)
 Starts a new planning.
Size methods

just to get the size of the different data structure for performance evaluation purposes only

Size learnerSize ()
 learnerSize
Size modelSize ()
 modelSize
Size valueFunctionSize ()
 valueFunctionSize
Size optimalPolicySize ()
 optimalPolicySize

Static Public Member Functions

static SDYNAspitiInstance (double attributeSelectionThreshold=0.99, double discountFactor=0.9, double epsilon=1, Idx observationPhaseLenght=100, Idx nbValueIterationStep=10)
 @
static SDYNAspimddiInstance (double attributeSelectionThreshold=0.99, double similarityThreshold=0.3, double discountFactor=0.9, double epsilon=1, Idx observationPhaseLenght=100, Idx nbValueIterationStep=10)
 @
static SDYNARMaxMDDInstance (double attributeSelectionThreshold=0.99, double similarityThreshold=0.3, double discountFactor=0.9, double epsilon=1, Idx observationPhaseLenght=100, Idx nbValueIterationStep=10)
 @
static SDYNARMaxTreeInstance (double attributeSelectionThreshold=0.99, double discountFactor=0.9, double epsilon=1, Idx observationPhaseLenght=100, Idx nbValueIterationStep=10)
 @
static SDYNARandomMDDInstance (double attributeSelectionThreshold=0.99, double similarityThreshold=0.3, double discountFactor=0.9, double epsilon=1, Idx observationPhaseLenght=100, Idx nbValueIterationStep=10)
 @
static SDYNARandomTreeInstance (double attributeSelectionThreshold=0.99, double discountFactor=0.9, double epsilon=1, Idx observationPhaseLenght=100, Idx nbValueIterationStep=10)
 @

Protected Attributes

FMDP< double > * fmdp_
 The learnt Markovian Decision Process.
Instantiation lastState_
 The state in which the system is before we perform a new action.

Private Attributes

ILearningStrategy_learner_
 The learner used to learn the FMDP.
IPlanningStrategy< double > * _planer_
 The planer used to plan an optimal strategy.
IDecisionStrategy_decider_
 The decider.
Idx _observationPhaseLenght_
 The number of observation we make before using again the planer.
Idx _nbObservation_
 The total number of observation made so far.
Idx _nbValueIterationStep_
 The number of Value Iteration step we perform.
Idx _lastAction_
 The last performed action.
Set< Observation * > _bin_
 Since SDYNA made these observation, it has to delete them on quitting.
bool _actionReward_
bool verbose_

Constructor & destructor.

 SDYNA (ILearningStrategy *learner, IPlanningStrategy< double > *planer, IDecisionStrategy *decider, Idx observationPhaseLenght, Idx nbValueIterationStep, bool actionReward, bool verbose=true)
 Constructor.
 ~SDYNA ()
 Destructor.

Detailed Description

The general SDyna architecture abstract class.

Instance of SDyna architecture should inherit

Definition at line 77 of file sdyna.h.

Constructor & Destructor Documentation

◆ SDYNA()

gum::SDYNA::SDYNA ( ILearningStrategy * learner,
IPlanningStrategy< double > * planer,
IDecisionStrategy * decider,
Idx observationPhaseLenght,
Idx nbValueIterationStep,
bool actionReward,
bool verbose = true )
private

Constructor.

Returns
an instance of SDyna architecture

Definition at line 81 of file sdyna.cpp.

87 :
88 _learner_(learner), _planer_(planer), _decider_(decider),
89 _observationPhaseLenght_(observationPhaseLenght),
90 _nbValueIterationStep_(nbValueIterationStep), _actionReward_(actionReward),
91 verbose_(verbose) {
92 GUM_CONSTRUCTOR(SDYNA);
93
94 fmdp_ = new FMDP< double >();
95
97 }
ILearningStrategy * _learner_
The learner used to learn the FMDP.
Definition sdyna.h:368
Idx _nbValueIterationStep_
The number of Value Iteration step we perform.
Definition sdyna.h:384
IPlanningStrategy< double > * _planer_
The planer used to plan an optimal strategy.
Definition sdyna.h:371
FMDP< double > * fmdp_
The learnt Markovian Decision Process.
Definition sdyna.h:361
Idx _nbObservation_
The total number of observation made so far.
Definition sdyna.h:381
bool _actionReward_
Definition sdyna.h:392
IDecisionStrategy * _decider_
The decider.
Definition sdyna.h:374
bool verbose_
Definition sdyna.h:394
Idx _observationPhaseLenght_
The number of observation we make before using again the planer.
Definition sdyna.h:378
SDYNA(ILearningStrategy *learner, IPlanningStrategy< double > *planer, IDecisionStrategy *decider, Idx observationPhaseLenght, Idx nbValueIterationStep, bool actionReward, bool verbose=true)
Constructor.
Definition sdyna.cpp:81

References SDYNA(), _actionReward_, _decider_, _learner_, _nbObservation_, _nbValueIterationStep_, _observationPhaseLenght_, _planer_, fmdp_, and verbose_.

Referenced by SDYNA(), ~SDYNA(), RandomMDDInstance(), RandomTreeInstance(), RMaxMDDInstance(), RMaxTreeInstance(), spimddiInstance(), and spitiInstance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~SDYNA()

gum::SDYNA::~SDYNA ( )

Destructor.

Definition at line 102 of file sdyna.cpp.

102 {
103 delete _decider_;
104
105 delete _learner_;
106
107 delete _planer_;
108
109 for (auto obsIter = _bin_.beginSafe(); obsIter != _bin_.endSafe(); ++obsIter)
110 delete *obsIter;
111
112 delete fmdp_;
113
114 GUM_DESTRUCTOR(SDYNA);
115 }
Set< Observation * > _bin_
Since SDYNA made these observation, it has to delete them on quitting.
Definition sdyna.h:390

References SDYNA(), _bin_, _decider_, _learner_, _planer_, and fmdp_.

Here is the call graph for this function:

Member Function Documentation

◆ addAction()

INLINE void gum::SDYNA::addAction ( const Idx actionId,
std::string_view actionName )

Inserts a new action in the SDyna instance.

Warning
Without effect until method initialize is called
Parameters
actionId: an id to identify the action
actionName: its human name

Definition at line 144 of file sdyna_inl.h.

144 {
145 fmdp_->addAction(actionId, std::string(actionName));
146 }

References fmdp_.

◆ addVariable()

INLINE void gum::SDYNA::addVariable ( const DiscreteVariable * var)

Inserts a new variable in the SDyna instance.

Warning
Without effect until method initialize is called
Parameters
var: the var to be added. Note that variable may or may not have all its modalities given. If not they will be discovered by the SDyna architecture during the process

Definition at line 148 of file sdyna_inl.h.

148{ fmdp_->addVariable(var); }

References fmdp_.

◆ feedback() [1/2]

void gum::SDYNA::feedback ( const Instantiation & originalState,
const Instantiation & reachedState,
Idx performedAction,
double obtainedReward )

Performs a feedback on the last transition.

Incremental methods.

In extenso, learn from the transition.

Parameters
originalState: the state we were in before the transition
reachedState: the state we reached after
performedAction: the action we performed
obtainedReward: the reward we obtained

Definition at line 153 of file sdyna.cpp.

156 {
157 _lastAction_ = lastAction;
158 lastState_ = prevState;
159 feedback(curState, reward);
160 }
Idx _lastAction_
The last performed action.
Definition sdyna.h:387
Instantiation lastState_
The state in which the system is before we perform a new action.
Definition sdyna.h:364
void feedback(const Instantiation &originalState, const Instantiation &reachedState, Idx performedAction, double obtainedReward)
Performs a feedback on the last transition.
Definition sdyna.cpp:153

References _lastAction_, feedback(), and lastState_.

Referenced by feedback().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ feedback() [2/2]

void gum::SDYNA::feedback ( const Instantiation & reachedState,
double obtainedReward )

Performs a feedback on the last transition.

In extenso, learn from the transition.

Parameters
reachedState: the state reached after the transition
obtainedReward: the reward obtained during the transition
Warning
Uses the originalState and performedAction stored in cache If you want to specify the original state and the performed action, see below

Definition at line 173 of file sdyna.cpp.

173 {
174 Observation* obs = new Observation();
175
176 for (auto varIter = lastState_.variablesSequence().beginSafe();
177 varIter != lastState_.variablesSequence().endSafe();
178 ++varIter)
179 obs->setModality(*varIter, lastState_.val(**varIter));
180
181 for (auto varIter = newState.variablesSequence().beginSafe();
182 varIter != newState.variablesSequence().endSafe();
183 ++varIter) {
184 obs->setModality(fmdp_->main2prime(*varIter), newState.val(**varIter));
185
186 if (this->_actionReward_) obs->setRModality(*varIter, lastState_.val(**varIter));
187 else obs->setRModality(*varIter, newState.val(**varIter));
188 }
189
190 obs->setReward(reward);
191
192 _learner_->addObservation(_lastAction_, obs);
193 _bin_.insert(obs);
194
195 setCurrentState(newState);
196 _decider_->checkState(lastState_, _lastAction_);
197
199
201 }
void setCurrentState(const Instantiation &currentState)
Sets last state visited to the given state.
Definition sdyna_inl.h:150
void makePlanning(Idx nbStep)
Starts a new planning.
Definition sdyna.cpp:210

References _actionReward_, _bin_, _decider_, _lastAction_, _learner_, _nbObservation_, _nbValueIterationStep_, _observationPhaseLenght_, fmdp_, lastState_, makePlanning(), setCurrentState(), gum::Observation::setModality(), gum::Observation::setReward(), gum::Observation::setRModality(), gum::Instantiation::val(), and gum::Instantiation::variablesSequence().

Here is the call graph for this function:

◆ initialize() [1/2]

void gum::SDYNA::initialize ( )

Initializes the Sdyna instance.

Definition at line 121 of file sdyna.cpp.

121 {
122 _learner_->initialize(fmdp_);
123 _planer_->initialize(fmdp_);
124 _decider_->initialize(fmdp_);
125 }

References _decider_, _learner_, _planer_, and fmdp_.

Referenced by initialize().

Here is the caller graph for this function:

◆ initialize() [2/2]

void gum::SDYNA::initialize ( const Instantiation & initialState)

Initializes the Sdyna instance at given state.

Parameters
initialState: the state of the studied system from which we will begin the explore, learn and exploit process

Definition at line 134 of file sdyna.cpp.

134 {
135 initialize();
136 setCurrentState(initialState);
137 }
void initialize()
Initializes the Sdyna instance.
Definition sdyna.cpp:121

References initialize(), and setCurrentState().

Here is the call graph for this function:

◆ learnerSize()

INLINE Size gum::SDYNA::learnerSize ( )

learnerSize

Returns

Definition at line 156 of file sdyna_inl.h.

156{ return _learner_->size(); }

References _learner_.

◆ makePlanning()

void gum::SDYNA::makePlanning ( Idx nbStep)

Starts a new planning.

Parameters
nbStep: the maximal number of value iteration performed in this planning

Definition at line 210 of file sdyna.cpp.

210 {
211 if (verbose_) std::cout << "Updating decision trees ..." << std::endl;
212 _learner_->updateFMDP();
213 // std::cout << << "Done" << std::endl;
214
215 if (verbose_) std::cout << "Planning ..." << std::endl;
216 _planer_->makePlanning(nbValueIterationStep);
217 // std::cout << << "Done" << std::endl;
218
219 _decider_->setOptimalStrategy(_planer_->optimalPolicy());
220 }

References _decider_, _learner_, _planer_, and verbose_.

Referenced by feedback().

Here is the caller graph for this function:

◆ modelSize()

INLINE Size gum::SDYNA::modelSize ( )

modelSize

Returns

Definition at line 158 of file sdyna_inl.h.

158{ return fmdp_->size(); }

References fmdp_.

◆ optimalPolicy2String()

INLINE std::string gum::SDYNA::optimalPolicy2String ( )

Definition at line 154 of file sdyna_inl.h.

154{ return _planer_->optimalPolicy2String(); }

References _planer_.

◆ optimalPolicySize()

INLINE Size gum::SDYNA::optimalPolicySize ( )

optimalPolicySize

Returns

Definition at line 162 of file sdyna_inl.h.

162{ return _planer_->optimalPolicySize(); }

References _planer_.

◆ RandomMDDInstance()

INLINE SDYNA * gum::SDYNA::RandomMDDInstance ( double attributeSelectionThreshold = 0.99,
double similarityThreshold = 0.3,
double discountFactor = 0.9,
double epsilon = 1,
Idx observationPhaseLenght = 100,
Idx nbValueIterationStep = 10 )
static

@

Definition at line 112 of file sdyna_inl.h.

117 {
118 bool actionReward = true;
119 ILearningStrategy* ls
120 = new FMDPLearner< GTEST, GTEST, IMDDILEARNER >(attributeSelectionThreshold,
121 actionReward,
122 similarityThreshold);
123 IPlanningStrategy< double >* ps
124 = StructuredPlaner< double >::spumddInstance(discountFactor, epsilon);
125 IDecisionStrategy* ds = new RandomDecider();
126 return new SDYNA(ls, ps, ds, observationPhaseLenght, nbValueIterationStep, actionReward);
127 }
static StructuredPlaner< GUM_ELEMENT > * spumddInstance(GUM_ELEMENT discountFactor=0.9, GUM_ELEMENT epsilon=0.00001, bool verbose=true)

References SDYNA(), and gum::StructuredPlaner< GUM_ELEMENT >::spumddInstance().

Here is the call graph for this function:

◆ RandomTreeInstance()

INLINE SDYNA * gum::SDYNA::RandomTreeInstance ( double attributeSelectionThreshold = 0.99,
double discountFactor = 0.9,
double epsilon = 1,
Idx observationPhaseLenght = 100,
Idx nbValueIterationStep = 10 )
static

@

Definition at line 129 of file sdyna_inl.h.

133 {
134 bool actionReward = true;
135 ILearningStrategy* ls
136 = new FMDPLearner< CHI2TEST, CHI2TEST, ITILEARNER >(attributeSelectionThreshold,
137 actionReward);
138 IPlanningStrategy< double >* ps
139 = StructuredPlaner< double >::sviInstance(discountFactor, epsilon);
140 IDecisionStrategy* ds = new RandomDecider();
141 return new SDYNA(ls, ps, ds, observationPhaseLenght, nbValueIterationStep, actionReward);
142 }
static StructuredPlaner< GUM_ELEMENT > * sviInstance(GUM_ELEMENT discountFactor=0.9, GUM_ELEMENT epsilon=0.00001, bool verbose=true)

References SDYNA(), and gum::StructuredPlaner< GUM_ELEMENT >::sviInstance().

Here is the call graph for this function:

◆ RMaxMDDInstance()

INLINE SDYNA * gum::SDYNA::RMaxMDDInstance ( double attributeSelectionThreshold = 0.99,
double similarityThreshold = 0.3,
double discountFactor = 0.9,
double epsilon = 1,
Idx observationPhaseLenght = 100,
Idx nbValueIterationStep = 10 )
static

@

Definition at line 80 of file sdyna_inl.h.

85 {
86 bool actionReward = true;
87 ILearningStrategy* ls
88 = new FMDPLearner< GTEST, GTEST, IMDDILEARNER >(attributeSelectionThreshold,
89 actionReward,
90 similarityThreshold);
91 AdaptiveRMaxPlaner* rm
92 = AdaptiveRMaxPlaner::ReducedAndOrderedInstance(ls, discountFactor, epsilon);
93 IPlanningStrategy< double >* ps = rm;
94 IDecisionStrategy* ds = rm;
95 return new SDYNA(ls, ps, ds, observationPhaseLenght, nbValueIterationStep, actionReward);
96 }
static AdaptiveRMaxPlaner * ReducedAndOrderedInstance(const ILearningStrategy *learner, double discountFactor=0.9, double epsilon=0.00001, bool verbose=true)

References SDYNA(), and gum::AdaptiveRMaxPlaner::ReducedAndOrderedInstance().

Here is the call graph for this function:

◆ RMaxTreeInstance()

INLINE SDYNA * gum::SDYNA::RMaxTreeInstance ( double attributeSelectionThreshold = 0.99,
double discountFactor = 0.9,
double epsilon = 1,
Idx observationPhaseLenght = 100,
Idx nbValueIterationStep = 10 )
static

@

Definition at line 98 of file sdyna_inl.h.

102 {
103 bool actionReward = true;
104 ILearningStrategy* ls
105 = new FMDPLearner< GTEST, GTEST, ITILEARNER >(attributeSelectionThreshold, actionReward);
106 AdaptiveRMaxPlaner* rm = AdaptiveRMaxPlaner::TreeInstance(ls, discountFactor, epsilon);
107 IPlanningStrategy< double >* ps = rm;
108 IDecisionStrategy* ds = rm;
109 return new SDYNA(ls, ps, ds, observationPhaseLenght, nbValueIterationStep, actionReward);
110 }
static AdaptiveRMaxPlaner * TreeInstance(const ILearningStrategy *learner, double discountFactor=0.9, double epsilon=0.00001, bool verbose=true)

References SDYNA(), and gum::AdaptiveRMaxPlaner::TreeInstance().

Here is the call graph for this function:

◆ setCurrentState()

INLINE void gum::SDYNA::setCurrentState ( const Instantiation & currentState)

Sets last state visited to the given state.

During the learning process, we will consider that were in this state before the transition.

Parameters
currentState: the state

Definition at line 150 of file sdyna_inl.h.

150 {
151 lastState_ = currentState;
152 }

References lastState_.

Referenced by feedback(), and initialize().

Here is the caller graph for this function:

◆ spimddiInstance()

INLINE SDYNA * gum::SDYNA::spimddiInstance ( double attributeSelectionThreshold = 0.99,
double similarityThreshold = 0.3,
double discountFactor = 0.9,
double epsilon = 1,
Idx observationPhaseLenght = 100,
Idx nbValueIterationStep = 10 )
static

@

Definition at line 63 of file sdyna_inl.h.

68 {
69 bool actionReward = false;
70 ILearningStrategy* ls
71 = new FMDPLearner< GTEST, GTEST, IMDDILEARNER >(attributeSelectionThreshold,
72 actionReward,
73 similarityThreshold);
74 IPlanningStrategy< double >* ps
75 = StructuredPlaner< double >::spumddInstance(discountFactor, epsilon, false);
76 IDecisionStrategy* ds = new E_GreedyDecider();
77 return new SDYNA(ls, ps, ds, observationPhaseLenght, nbValueIterationStep, actionReward, false);
78 }

References SDYNA(), and gum::StructuredPlaner< GUM_ELEMENT >::spumddInstance().

Here is the call graph for this function:

◆ spitiInstance()

INLINE SDYNA * gum::SDYNA::spitiInstance ( double attributeSelectionThreshold = 0.99,
double discountFactor = 0.9,
double epsilon = 1,
Idx observationPhaseLenght = 100,
Idx nbValueIterationStep = 10 )
static

@

Definition at line 48 of file sdyna_inl.h.

52 {
53 bool actionReward = false;
54 ILearningStrategy* ls
55 = new FMDPLearner< CHI2TEST, CHI2TEST, ITILEARNER >(attributeSelectionThreshold,
56 actionReward);
57 IPlanningStrategy< double >* ps
58 = StructuredPlaner< double >::sviInstance(discountFactor, epsilon);
59 IDecisionStrategy* ds = new E_GreedyDecider();
60 return new SDYNA(ls, ps, ds, observationPhaseLenght, nbValueIterationStep, actionReward);
61 }

References SDYNA(), and gum::StructuredPlaner< GUM_ELEMENT >::sviInstance().

Here is the call graph for this function:

◆ takeAction() [1/2]

Idx gum::SDYNA::takeAction ( )
Returns
the id of the action the SDyna instance wish to be performed

Definition at line 238 of file sdyna.cpp.

238 {
239 ActionSet actionSet = _decider_->stateOptimalPolicy(lastState_);
240 if (actionSet.size() == 1) {
241 _lastAction_ = actionSet[0];
242 } else {
243 Idx randy = randomValue(actionSet.size());
244 _lastAction_ = actionSet[randy == actionSet.size() ? 0 : randy];
245 }
246 return _lastAction_;
247 }
Size Idx
Type for indexes.
Definition types.h:79
Idx randomValue(const Size max=2)
Returns a random Idx between 0 and max-1 included.

References _decider_, _lastAction_, lastState_, gum::randomValue(), and gum::ActionSet::size().

Referenced by takeAction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ takeAction() [2/2]

Idx gum::SDYNA::takeAction ( const Instantiation & curState)
Returns
actionId the id of the action the SDyna instance wish to be performed
Parameters
curStatethe state in which we currently are

Definition at line 228 of file sdyna.cpp.

228 {
229 lastState_ = curState;
230 return takeAction();
231 }
Idx takeAction()
Definition sdyna.cpp:238

References lastState_, and takeAction().

Here is the call graph for this function:

◆ toString()

std::string gum::SDYNA::toString ( )

Returns.

Returns
a string describing the learned FMDP, and the associated optimal policy. Both in DOT language.

Definition at line 252 of file sdyna.cpp.

252 {
253 return fmdp_->toString() + '\n' + _planer_->optimalPolicy2String() + '\n';
254 }

References _planer_, and fmdp_.

◆ valueFunctionSize()

INLINE Size gum::SDYNA::valueFunctionSize ( )

valueFunctionSize

Returns

Definition at line 160 of file sdyna_inl.h.

160{ return _planer_->vFunctionSize(); }

References _planer_.

Member Data Documentation

◆ _actionReward_

bool gum::SDYNA::_actionReward_
private

Definition at line 392 of file sdyna.h.

Referenced by SDYNA(), and feedback().

◆ _bin_

Set< Observation* > gum::SDYNA::_bin_
private

Since SDYNA made these observation, it has to delete them on quitting.

Definition at line 390 of file sdyna.h.

Referenced by ~SDYNA(), and feedback().

◆ _decider_

IDecisionStrategy* gum::SDYNA::_decider_
private

The decider.

Definition at line 374 of file sdyna.h.

Referenced by SDYNA(), ~SDYNA(), feedback(), initialize(), makePlanning(), and takeAction().

◆ _lastAction_

Idx gum::SDYNA::_lastAction_
private

The last performed action.

Definition at line 387 of file sdyna.h.

Referenced by feedback(), feedback(), and takeAction().

◆ _learner_

ILearningStrategy* gum::SDYNA::_learner_
private

The learner used to learn the FMDP.

Definition at line 368 of file sdyna.h.

Referenced by SDYNA(), ~SDYNA(), feedback(), initialize(), learnerSize(), and makePlanning().

◆ _nbObservation_

Idx gum::SDYNA::_nbObservation_
private

The total number of observation made so far.

Definition at line 381 of file sdyna.h.

Referenced by SDYNA(), and feedback().

◆ _nbValueIterationStep_

Idx gum::SDYNA::_nbValueIterationStep_
private

The number of Value Iteration step we perform.

Definition at line 384 of file sdyna.h.

Referenced by SDYNA(), and feedback().

◆ _observationPhaseLenght_

Idx gum::SDYNA::_observationPhaseLenght_
private

The number of observation we make before using again the planer.

Definition at line 378 of file sdyna.h.

Referenced by SDYNA(), and feedback().

◆ _planer_

IPlanningStrategy< double >* gum::SDYNA::_planer_
private

The planer used to plan an optimal strategy.

Definition at line 371 of file sdyna.h.

Referenced by SDYNA(), ~SDYNA(), initialize(), makePlanning(), optimalPolicy2String(), optimalPolicySize(), toString(), and valueFunctionSize().

◆ fmdp_

FMDP< double >* gum::SDYNA::fmdp_
protected

The learnt Markovian Decision Process.

Definition at line 361 of file sdyna.h.

Referenced by SDYNA(), ~SDYNA(), addAction(), addVariable(), feedback(), initialize(), modelSize(), and toString().

◆ lastState_

Instantiation gum::SDYNA::lastState_
protected

The state in which the system is before we perform a new action.

Definition at line 364 of file sdyna.h.

Referenced by feedback(), feedback(), setCurrentState(), takeAction(), and takeAction().

◆ verbose_

bool gum::SDYNA::verbose_
private

Definition at line 394 of file sdyna.h.

Referenced by SDYNA(), and makePlanning().


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