MultiAgentDecisionProcess
|
MultiAgentDecisionProcessDiscreteInterface is an abstract base class that defines publicly accessible member functions that a discrete multiagent decision process must implement. More...
#include <MultiAgentDecisionProcessDiscreteInterface.h>
Public Member Functions | |
virtual MultiAgentDecisionProcessDiscreteInterface * | Clone () const =0 |
Returns a pointer to a copy of this class. More... | |
virtual const Action * | GetAction (Index agentI, Index a) const =0 |
Return a ref to the a-th action of agent agentI. More... | |
virtual bool | GetEventObservability () const |
Whether observation models are P(o|s,a) or P(o|s,a,s'). More... | |
virtual double | GetInitialStateProbability (Index sI) const =0 |
virtual StateDistribution * | GetISD () const =0 |
Returns the complete initial state distribution. More... | |
virtual const JointAction * | GetJointAction (Index i) const =0 |
Return a ref to the i-th joint action. More... | |
virtual const JointObservation * | GetJointObservation (Index i) const =0 |
Return a ref to the i-th joint observation. More... | |
virtual const std::vector < size_t > & | GetNrActions () const =0 |
Return the number of actions vector. More... | |
virtual size_t | GetNrActions (Index AgentI) const =0 |
Return the number of actions of agent agentI. More... | |
virtual size_t | GetNrJointActions () const =0 |
Return the number of joint actions. More... | |
virtual size_t | GetNrJointActions (const Scope &agScope) const =0 |
Get the number of joint actions the agents in agScope can form. More... | |
virtual size_t | GetNrJointObservations () const =0 |
Return the number of joint observations. More... | |
virtual const std::vector < size_t > & | GetNrObservations () const =0 |
Return the number of observations vector. More... | |
virtual size_t | GetNrObservations (Index AgentI) const =0 |
Return the number of observations of agent agentI. More... | |
virtual size_t | GetNrStates () const =0 |
Return the number of states. More... | |
virtual const Observation * | GetObservation (Index agentI, Index a) const =0 |
Return a ref to the a-th observation of agent agentI. More... | |
virtual const ObservationModelDiscrete * | GetObservationModelDiscretePtr () const =0 |
Returns a pointer to the underlying observation model. More... | |
virtual double | GetObservationProbability (Index jaI, Index sucSI, Index joI) const =0 |
Return the probability of joint observation joI: P(joI|jaI,sucSI). More... | |
virtual double | GetObservationProbability (Index sI, Index jaI, Index sucSI, Index joI) const |
virtual OGet * | GetOGet () const =0 |
virtual const State * | GetState (Index i) const =0 |
Returns a pointer to state i. More... | |
virtual TGet * | GetTGet () const =0 |
virtual const TransitionModelDiscrete * | GetTransitionModelDiscretePtr () const =0 |
Returns a pointer to the underlying transition model. More... | |
virtual double | GetTransitionProbability (Index sI, Index jaI, Index sucSI) const =0 |
Return the probability of successor state sucSI: P(sucSI|sI,jaI). More... | |
virtual Index | IndividualToJointActionIndices (const Index *AI_ar) const =0 |
Returns the joint action index that corresponds to the array of specified individual action indices. More... | |
virtual Index | IndividualToJointActionIndices (const std::vector< Index > &indivActionIndices) const =0 |
Returns the joint action index that corresponds to the vector of specified individual action indices. More... | |
virtual Index | IndividualToJointActionIndices (const std::vector< Index > &ja_e, const Scope &agSC) const =0 |
indiv->joint for a restricted set (Scope) of agents More... | |
virtual Index | IndividualToJointObservationIndices (const std::vector< Index > &indivObservationIndices) const =0 |
Returns the joint observation index that corresponds to the vector of specified individual observation indices. More... | |
virtual Index | IndividualToJointObservationIndices (const std::vector< Index > &jo_e, const Scope &agSC) const |
indiv->joint for a restricted set (Scope) of agents More... | |
virtual const std::vector < Index > & | JointToIndividualActionIndices (Index jaI) const =0 |
Returns a vector of indices to indiv. More... | |
virtual std::vector< Index > | JointToIndividualActionIndices (Index ja_e, const Scope &agSC) const =0 |
joint->indiv for a restricted set (Scope) of agents More... | |
virtual const std::vector < Index > & | JointToIndividualObservationIndices (Index joI) const =0 |
Returns a vector of indices to indiv. More... | |
virtual std::vector< Index > | JointToIndividualObservationIndices (Index jo_e, const Scope &agSC) const |
joint->indiv for a restricted set (Scope) of agents More... | |
virtual Index | JointToRestrictedJointActionIndex (Index jaI, const Scope &agSc_e) const =0 |
Converts a global joint action index jaI to a restricted joint action index ja_e, for agents scope agSc_e Returns a vector of indices to indiv. More... | |
virtual Index | JointToRestrictedJointObservationIndex (Index joI, const Scope &agSc_e) const |
Converts a global joint observation index joI to a restricted joint observation index jo_e, for agents scope agSc_e Returns a vector of indices to indiv. More... | |
virtual Index | SampleInitialState () const =0 |
Sample a state according to the initial state PDF. More... | |
virtual Index | SampleJointObservation (Index jaI, Index sucI) const =0 |
Sample an observation - needed for simulations. More... | |
virtual Index | SampleJointObservation (Index sI, Index jaI, Index sucI) const |
virtual Index | SampleSuccessorState (Index sI, Index jaI) const =0 |
Sample a successor state - needed by simulations. More... | |
virtual std::string | SoftPrint () const =0 |
Prints some information on the MultiAgentDecisionProcessDiscreteInterface. More... | |
virtual std::string | SoftPrintState (Index sI) const =0 |
virtual | ~MultiAgentDecisionProcessDiscreteInterface () |
Destructor. More... | |
Public Member Functions inherited from MultiAgentDecisionProcessInterface | |
virtual const Scope & | GetAllAgentScope () const =0 |
virtual size_t | GetNrAgents () const =0 |
Return the number of agents. More... | |
virtual std::string | GetUnixName () const =0 |
Returns the base part of the problem filename. More... | |
virtual | ~MultiAgentDecisionProcessInterface () |
Destructor. More... | |
MultiAgentDecisionProcessDiscreteInterface is an abstract base class that defines publicly accessible member functions that a discrete multiagent decision process must implement.
This interface is currently implemented by MultiAgentDecisionProcessDiscrete and MultiAgentDecisionProcessDiscreteFactoredStates.
The functions this interface defines relate to actions, observations, transition and observation probabilities. *
|
inlinevirtual |
Destructor.
|
pure virtual |
Returns a pointer to a copy of this class.
Implements MultiAgentDecisionProcessInterface.
Implemented in FactoredDecPOMDPDiscrete, MultiAgentDecisionProcessDiscrete, TOIDecPOMDPDiscrete, DecPOMDPDiscrete, FactoredDecPOMDPDiscreteInterface, MultiAgentDecisionProcessDiscreteFactoredStatesInterface, ProblemFireFightingFactored, ProblemAloha, POSGDiscrete, ProblemFOBSFireFightingFactored, TOICompactRewardDecPOMDPDiscrete, DecPOMDPDiscreteInterface, TOIFactoredRewardDecPOMDPDiscrete, POSGDiscreteInterface, and FactoredMMDPDiscrete.
|
pure virtual |
Return a ref to the a-th action of agent agentI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile().
|
inlinevirtual |
Whether observation models are P(o|s,a) or P(o|s,a,s').
This is here since model-independent structures(such as joint beliefs) need this information. It should be overriden by derived classes.
Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by JointBelief::Update(), JointBeliefEventDriven::Update(), JointBeliefSparse::Update(), and JointBeliefSparse::UpdateSlow().
|
pure virtual |
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by DecPOMDPDiscrete::CompareModels().
|
pure virtual |
Returns the complete initial state distribution.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), AlphaVectorPlanning::ExportPOMDPFile(), PlanningUnitMADPDiscrete::GetNewJointBeliefFromISD(), and PlanningUnitMADPDiscrete::InitializeJointActionObservationHistories().
|
pure virtual |
Return a ref to the i-th joint action.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by AlphaVectorPlanning::ExportPOMDPFile().
|
pure virtual |
Return a ref to the i-th joint observation.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by AlphaVectorPlanning::ExportPOMDPFile().
|
pure virtual |
Return the number of actions vector.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by AgentBG::AgentBG(), AlphaVectorBG::AlphaVectorBG(), DecPOMDPDiscrete::CompareModels(), MADPDiscreteStatistics::ComputeNrJointActionObservationHistories(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), PlanningUnitMADPDiscrete::InitializeActionHistories(), PlanningUnitMADPDiscrete::InitializeActionObservationHistories(), TwoStageDynamicBayesianNetwork::InitializeIIs(), DICEPSPlanner::Plan(), and DICEPSPlanner::UpdateCEProbDistribution().
|
pure virtual |
Return the number of actions of agent agentI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Return the number of joint actions.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by DecPOMDPDiscrete::CompareModels(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), and AlphaVectorPlanning::ExportPOMDPFile().
|
pure virtual |
Get the number of joint actions the agents in agScope can form.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Return the number of joint observations.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by DecPOMDPDiscrete::CompareModels(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), and AlphaVectorPlanning::ExportPOMDPFile().
|
pure virtual |
Return the number of observations vector.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by AlphaVectorBG::AlphaVectorBG(), DecPOMDPDiscrete::CompareModels(), MADPDiscreteStatistics::ComputeNrJointActionObservationHistories(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), TwoStageDynamicBayesianNetwork::GetOProbabilitiesExactScopes(), PlanningUnitMADPDiscrete::InitializeActionObservationHistories(), TwoStageDynamicBayesianNetwork::InitializeIIs(), PlanningUnitMADPDiscrete::InitializeObservationHistories(), and TwoStageDynamicBayesianNetwork::InitializeStorage().
|
pure virtual |
Return the number of observations of agent agentI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Return the number of states.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by DecPOMDPDiscrete::CompareModels(), MADPDiscreteStatistics::ComputeEstimatedSizeForCachingJointBeliefs(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), AlphaVectorPlanning::ExportPOMDPFile(), PlanningUnitMADPDiscrete::GetNrStates(), JointBelief::Update(), and JointBeliefEventDriven::Update().
|
pure virtual |
Return a ref to the a-th observation of agent agentI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile().
|
pure virtual |
Returns a pointer to the underlying observation model.
If speed is required (for instance when looping through all states) the pointer can be requested by an algorithm. It can than obtain a pointer to the actual implementation type by runtime type identification. (i.e., using typeid and dynamic_cast).
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by JointBeliefEventDriven::Update(), and JointBeliefSparse::Update().
|
pure virtual |
Return the probability of joint observation joI: P(joI|jaI,sucSI).
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by DecPOMDPDiscrete::CompareModels(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), AlphaVectorPlanning::ExportPOMDPFile(), GetObservationProbability(), SimulationDecPOMDPDiscrete::Step(), JointBelief::Update(), and JointBeliefSparse::UpdateSlow().
|
inlinevirtual |
Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
References GetObservationProbability().
|
pure virtual |
|
pure virtual |
Returns a pointer to state i.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), AlphaVectorPlanning::ExportPOMDPFile(), SimulationDecPOMDPDiscrete::RunSimulations(), SimulationFactoredDecPOMDPDiscrete::Step(), and SimulationDecPOMDPDiscrete::Step().
|
pure virtual |
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by JointBelief::Update(), and JointBeliefSparse::Update().
|
pure virtual |
Returns a pointer to the underlying transition model.
If speed is required (for instance when looping through all states) the pointer can be requested by an algorithm. It can than obtain a pointer to the actual implementation type by runtime type identification. (i.e., using typeid and dynamic_cast).
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by JointBeliefEventDriven::Update().
|
pure virtual |
Return the probability of successor state sucSI: P(sucSI|sI,jaI).
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by DecPOMDPDiscrete::CompareModels(), PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile(), AlphaVectorPlanning::ExportPOMDPFile(), SimulationDecPOMDPDiscrete::Step(), JointBelief::Update(), and JointBeliefSparse::UpdateSlow().
|
pure virtual |
Returns the joint action index that corresponds to the array of specified individual action indices.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Returns the joint action index that corresponds to the vector of specified individual action indices.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
indiv->joint for a restricted set (Scope) of agents
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Returns the joint observation index that corresponds to the vector of specified individual observation indices.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
inlinevirtual |
indiv->joint for a restricted set (Scope) of agents
Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Returns a vector of indices to indiv.
action indicies corr. to joint action index jaI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile().
|
pure virtual |
joint->indiv for a restricted set (Scope) of agents
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Returns a vector of indices to indiv.
observation indicies corr. to joint observation index joI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by PlanningUnitDecPOMDPDiscrete::ExportDecPOMDPFile().
|
inlinevirtual |
joint->indiv for a restricted set (Scope) of agents
Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Converts a global joint action index jaI to a restricted joint action index ja_e, for agents scope agSc_e Returns a vector of indices to indiv.
action indicies corr. to joint action index jaI.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
inlinevirtual |
Converts a global joint observation index joI to a restricted joint observation index jo_e, for agents scope agSc_e Returns a vector of indices to indiv.
observation indicies corr. to joint observation index joI.
Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
|
pure virtual |
Sample a state according to the initial state PDF.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by SimulationDecPOMDPDiscrete::RunSimulation(), SimulationDecPOMDPDiscrete::RunSimulationClusteredBG(), SimulationDecPOMDPDiscrete::RunSimulations(), AlphaVectorPlanning::SampleBeliefs(), and AlphaVectorPlanning::SampleBeliefsNonStationary().
|
pure virtual |
Sample an observation - needed for simulations.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by AlphaVectorPlanning::SampleBeliefs(), AlphaVectorPlanning::SampleBeliefsNonStationary(), SampleJointObservation(), and SimulationDecPOMDPDiscrete::Step().
|
inlinevirtual |
Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
References SampleJointObservation().
|
pure virtual |
Sample a successor state - needed by simulations.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.
Referenced by AlphaVectorPlanning::SampleBeliefs(), AlphaVectorPlanning::SampleBeliefsNonStationary(), and SimulationDecPOMDPDiscrete::Step().
|
pure virtual |
Prints some information on the MultiAgentDecisionProcessDiscreteInterface.
Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, MultiAgentDecisionProcessDiscrete, FactoredDecPOMDPDiscreteInterface, TOIDecPOMDPDiscrete, FactoredDecPOMDPDiscrete, DecPOMDPDiscrete, POSGDiscrete, TOICompactRewardDecPOMDPDiscrete, TOIFactoredRewardDecPOMDPDiscrete, and FactoredMMDPDiscrete.
Referenced by PlanningUnitMADPDiscrete::SetProblem().
|
pure virtual |