QFunctionsDiscreteNonStationary AlphaVectorPlanning::ImportValueFunction(const string & filename, size_t nr, size_t nrA, size_t nrS) { QFunctionsDiscreteNonStationary Q; for(Index t=0;t!=nr;++t) { stringstream filenameT; filenameT << filename << "_t" << t; Q.push_back(ValueFunctionToQ( ImportValueFunction(filenameT.str()),nrA,nrS)); } return(Q); }
double BeliefValue::GetValue(const BeliefInterface &Belief, const QFunctionsDiscreteNonStationary &Q, Index t) { #if 0 double x,maxVal=-DBL_MAX; for(QFDNScit i=Q.begin();i!=Q.end();++i) { x=GetValue(Belief,*i); if(x>maxVal) maxVal=x; } return(maxVal); #endif return(GetValue(Belief,Q.at(t))); }
void AlphaVectorPlanning:: ExportValueFunction(const string & filename, const QFunctionsDiscreteNonStationary &Q) { for(Index t=0;t!=Q.size();++t) { stringstream filenameT; filenameT << filename << "_t" << t; ExportValueFunction(filenameT.str(),Q[t]); } }
vector<double> BeliefValue::GetValues(const BeliefSetNonStationary &Beliefs, const QFunctionsDiscreteNonStationary &Q) { vector<double> values(Beliefs.Size()); Index i=0; for(Index t=0;t!=Q.size();++t) { vector<double> valuesT=GetValues(Beliefs.Get(t), Q[t]); for(Index k=0;k!=valuesT.size();++k) { values[i]=valuesT[k]; i++; } } return(values); }