Scheduler
sarsaLambda.cpp
Go to the documentation of this file.
1 
10 #include "sarsaLambda.h"
11 
12 #include <cassert>
13 #include <iostream>
14 
15 using namespace Mdp;
16 
17 
18 void SarsaLambda::updateActionValues(state_t previousState, state_t /*nextState*/, action_t previousAction, double reward)
19 {
20  double delta = previousReward + discountFactor * actionValues->getValue(previousState, previousAction);
22 
24  for (size_t i = 0; i < stateSize; i++)
25  {
26  for (size_t j = 0; j < actionSize; j++)
27  {
28  double av = actionValues->getValue(i, j);
29  double newValue = av + alpha*delta*e[i][j];
30  tabularAv->updateValue(i, j, newValue);
31  e[i][j] *= discountFactor*lambda;
32  }
33  }
34  updateState(previousState, previousAction, reward);
35 }
36 
37 
38 
39 
40 
41 
42 
virtual void updateActionValues(state_t previousState, state_t nextState, action_t previousAction, double reward)
Definition: sarsaLambda.cpp:18
virtual double getValue(state_t state, action_t action)=0
void updateState(state_t previousState, action_t previousAction, double reward)
void updateValue(state_t state, action_t action, double value)
std::vector< std::vector< double > > e
size_t action_t
Definition: action_impl.h:18
Definition: action.h:18
size_t state_t
Definition: state.h:19
ActionValuesFunction * actionValues
Definition: reward.py:1