MultiAgentDecisionProcess
|
ValueFunctionDecPOMDPDiscrete represents and calculates the value function of a (pure) joint policy for a discrete Dec-POMDP. More...
#include <ValueFunctionDecPOMDPDiscrete.h>
Public Member Functions | |
template<bool CACHED> | |
double | CalculateV () |
Calculates the value function, which is stored and returns V(0). call with "CalculateV<true>()" for the cached version or call with "CalculateV<false>()" for the non-cached version. More... | |
ValueFunctionDecPOMDPDiscrete (PlanningUnitDecPOMDPDiscrete &p, JointPolicyDiscretePure &jp) | |
Constructor. More... | |
ValueFunctionDecPOMDPDiscrete (PlanningUnitDecPOMDPDiscrete *p, JointPolicyDiscretePure *jp) | |
Constructor. More... | |
ValueFunctionDecPOMDPDiscrete (const ValueFunctionDecPOMDPDiscrete &a) | |
Copy constructor. More... | |
~ValueFunctionDecPOMDPDiscrete () | |
Destructor. More... | |
Public Member Functions inherited from ValueFunction | |
virtual | ~ValueFunction () |
Destructor. More... | |
Private Types | |
typedef boost::numeric::ublas::matrix < double > | Matrix |
Private Member Functions | |
template<bool CACHED> | |
double | CalculateVsjohRecursively (Index sI, Index johI, unsigned int stage) |
Function used by CalculateV0Recursively. More... | |
double | CalculateVsjohRecursively_cached (Index sI, Index johI, unsigned int stage) |
Wraps and adds caching to method CalculateVsjohRecursively() More... | |
void | CreateV () |
Creates a brand new value function (deleting the current one if it exists). More... | |
void | DeleteV () |
Deletes the current value function. More... | |
Index | GetCombinedIndex (Index sI, Index JOHI) const |
JointPolicyDiscretePure * | GetJPol () const |
PlanningUnitDecPOMDPDiscrete * | GetPU () const |
Return a reference to the planning unit. More... | |
bool | IsCached (Index sI, Index JOHI) |
void | SetCached (Index sI, Index JOHI) |
Private Attributes | |
std::set< Index > | _m_cached |
size_t | _m_h |
JointPolicyDiscretePure * | _m_jointPolicyDiscretePure |
JointPolicyDiscretePure * | _m_jpol |
size_t | _m_nrJO |
size_t | _m_nrJOH |
size_t | _m_nrS |
Matrix * | _m_p_V |
PlanningUnitDecPOMDPDiscrete * | _m_planningUnitDecPOMDPDiscrete |
PlanningUnitDecPOMDPDiscrete * | _m_pu |
bool | _m_V_initialized |
ValueFunctionDecPOMDPDiscrete represents and calculates the value function of a (pure) joint policy for a discrete Dec-POMDP.
|
private |
ValueFunctionDecPOMDPDiscrete::ValueFunctionDecPOMDPDiscrete | ( | PlanningUnitDecPOMDPDiscrete & | p, |
JointPolicyDiscretePure & | jp | ||
) |
ValueFunctionDecPOMDPDiscrete::ValueFunctionDecPOMDPDiscrete | ( | PlanningUnitDecPOMDPDiscrete * | p, |
JointPolicyDiscretePure * | jp | ||
) |
ValueFunctionDecPOMDPDiscrete::ValueFunctionDecPOMDPDiscrete | ( | const ValueFunctionDecPOMDPDiscrete & | a | ) |
Copy constructor.
References _m_jpol, _m_nrJOH, _m_p_V, _m_pu, and _m_V_initialized.
ValueFunctionDecPOMDPDiscrete::~ValueFunctionDecPOMDPDiscrete | ( | ) |
Destructor.
References DeleteV().
template double ValueFunctionDecPOMDPDiscrete::CalculateV< false > | ( | ) |
Calculates the value function, which is stored and returns V(0). call with "CalculateV<true>()" for the cached version or call with "CalculateV<false>()" for the non-cached version.
References _m_nrS, _m_pu, CalculateVsjohRecursively_cached(), CreateV(), PlanningUnitMADPDiscrete::GetInitialStateProbability(), GetJPol(), Globals::INITIAL_JOHI, and JointPolicy::Print().
Referenced by JESPExhaustivePlanner::ExhaustiveBestResponse(), BruteForceSearchPlanner::Plan(), and DICEPSPlanner::Plan().
|
private |
Function used by CalculateV0Recursively.
This recursively Calculates the expected payoff of the joint policy starting from state sI and joint observation history johI.
References _m_h, _m_nrJO, _m_nrS, _m_pu, CalculateVsjohRecursively_cached(), JointPolicyDiscretePure::GetJointActionIndex(), GetJPol(), PlanningUnitMADPDiscrete::GetObservationProbability(), PlanningUnitDecPOMDPDiscrete::GetReward(), PlanningUnitMADPDiscrete::GetSuccessorJOHI(), and PlanningUnitMADPDiscrete::GetTransitionProbability().
|
inlineprivate |
Wraps and adds caching to method CalculateVsjohRecursively()
References _m_p_V, IsCached(), and SetCached().
Referenced by CalculateV(), and CalculateVsjohRecursively().
|
private |
Creates a brand new value function (deleting the current one if it exists).
References _m_nrJOH, _m_nrS, _m_p_V, _m_V_initialized, and DeleteV().
Referenced by CalculateV().
|
private |
Deletes the current value function.
References _m_cached, _m_p_V, and _m_V_initialized.
Referenced by CreateV(), and ~ValueFunctionDecPOMDPDiscrete().
Referenced by IsCached(), and SetCached().
|
inlineprivate |
References _m_jpol.
Referenced by CalculateV(), and CalculateVsjohRecursively().
|
inlineprivatevirtual |
References _m_cached, and GetCombinedIndex().
Referenced by CalculateVsjohRecursively_cached().
References _m_cached, and GetCombinedIndex().
Referenced by CalculateVsjohRecursively_cached().
|
private |
Referenced by DeleteV(), IsCached(), and SetCached().
|
private |
Referenced by CalculateVsjohRecursively(), and ValueFunctionDecPOMDPDiscrete().
|
private |
|
private |
Referenced by GetJPol(), and ValueFunctionDecPOMDPDiscrete().
|
private |
Referenced by CalculateVsjohRecursively(), and ValueFunctionDecPOMDPDiscrete().
|
private |
Referenced by CreateV(), and ValueFunctionDecPOMDPDiscrete().
|
private |
Referenced by CalculateV(), CalculateVsjohRecursively(), CreateV(), and ValueFunctionDecPOMDPDiscrete().
|
private |
Referenced by CalculateVsjohRecursively_cached(), CreateV(), DeleteV(), and ValueFunctionDecPOMDPDiscrete().
|
private |
|
private |
Referenced by CalculateV(), CalculateVsjohRecursively(), GetPU(), and ValueFunctionDecPOMDPDiscrete().
|
private |
Referenced by CreateV(), DeleteV(), and ValueFunctionDecPOMDPDiscrete().