31 #define DEBUG_CALCV_CACHE 0
108 pair<map<Index,bool>::iterator,
bool> result =
_m_cached.insert( p );
109 if(result.second !=
true)
114 (*(result.first)).second =
true;
131 cout <<
"CalculateV0Recursively::creating a new value function"
143 cout <<
">>>ValueFunctionDecPOMDPDiscrete::CalculateV() -"
144 <<
" CalculateVsjohRecursively(sI=" << sI
145 <<
", INITIAL_JOHI, cache="<< cache<<
") = " << v_sI << endl; }
150 if(
DEBUG_CALCV) { cout <<
"This policy's V=" << val <<endl;}
170 cout <<
">>>ValueFunctionDecPOMDPDiscrete::CalculateV() -"
171 <<
" CalculateVsjohRecursively(sI=" << sI
172 <<
", INITIAL_JOHI, cache="<< cache<<
") = " << v_sI << endl; }
177 if(
DEBUG_CALCV) { cout <<
"This policy's V=" << val <<endl;}
189 {cout<<
"\nValueFunctionDecPOMDPDiscrete::CalculateVsjohRecursively("
190 << sI <<
", " << johI <<
") called"<<endl;}
200 return( (*
_m_p_V)(sI, johI) );
206 double ExpFutureR = 0.0;
212 if(stage >=
_m_h - 1 )
215 { cout <<
"ValueFunctionDecPOMDPDiscrete::CalculateVsjoh"
216 <<
"Recursively("<< sI <<
", " << johI <<
") - V="<<R<<endl;}
222 if(
DEBUG_CALCV){ cout <<
"Calculating future reward"<<endl;}
228 if(
DEBUG_CALCV){ cout <<
"P(s"<<sucSI<<
"|s"<<sI<<
",ja"<<jaI<<
")="<<
236 if(
DEBUG_CALCV){ cout <<
"P(jo"<<joI<<
"|ja"<<jaI<<
",s"<<sucSI<<
")="
242 thisSucV = (*_m_p_V)(sucSI, sucJohI);
245 ExpFutureR += probSucSI * probJOI * thisSucV;
248 double val = R + ExpFutureR;
249 (*_m_p_V)(sI, johI) = val;
253 cout <<
"ValueFunctionDecPOMDPDiscrete::CalculateVsjohRecursively("
254 << sI <<
", " << johI <<
") \n->immediate R="<<R<<
255 " \n->exp. future reward="<<ExpFutureR<<
"\n->V="<<val<<endl;}
265 {cout<<
"\nValueFunctionDecPOMDPDiscrete::CalculateVsjohRecursively("
266 << sI <<
", " << johI <<
") called"<<endl;}
271 double ExpFutureR = 0.0;
280 { cout <<
"ValueFunctionDecPOMDPDiscrete::CalculateVsjoh"
281 <<
"Recursively("<< sI <<
", " << johI <<
") - V="<<R<<endl;}
287 if(
DEBUG_CALCV){ cout <<
"Calculating future reward"<<endl;}
294 if(
DEBUG_CALCV){ cout <<
"P(s"<<sucSI<<
"|s"<<sI<<
",ja"<<jaI<<
")="<<
302 if(
DEBUG_CALCV){ cout <<
"P(jo"<<joI<<
"|ja"<<jaI<<
",s"<<sucSI<<
")="
308 ExpFutureR += probSucSI * probJOI * thisSucV;
311 double val = R + ExpFutureR;
314 cout <<
"ValueFunctionDecPOMDPDiscrete::CalculateVsjohRecursively("
315 << sI <<
", " << johI <<
") \n->immediate R="<<R<<
316 " \n->exp. future reward="<<ExpFutureR<<
"\n->V="<<val<<endl;}