MultiAgentDecisionProcess
MultiAgentDecisionProcessDiscreteInterface Class Referenceabstract

MultiAgentDecisionProcessDiscreteInterface is an abstract base class that defines publicly accessible member functions that a discrete multiagent decision process must implement. More...

#include <MultiAgentDecisionProcessDiscreteInterface.h>

Inheritance diagram for MultiAgentDecisionProcessDiscreteInterface:
[legend]

Public Member Functions

virtual
MultiAgentDecisionProcessDiscreteInterface
Clone () const =0
 Returns a pointer to a copy of this class. More...
 
virtual const ActionGetAction (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 StateDistributionGetISD () const =0
 Returns the complete initial state distribution. More...
 
virtual const JointActionGetJointAction (Index i) const =0
 Return a ref to the i-th joint action. More...
 
virtual const JointObservationGetJointObservation (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 ObservationGetObservation (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 OGetGetOGet () const =0
 
virtual const StateGetState (Index i) const =0
 Returns a pointer to state i. More...
 
virtual TGetGetTGet () 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< IndexJointToIndividualActionIndices (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< IndexJointToIndividualObservationIndices (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 ScopeGetAllAgentScope () 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...
 

Detailed Description

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. *

Constructor & Destructor Documentation

virtual MultiAgentDecisionProcessDiscreteInterface::~MultiAgentDecisionProcessDiscreteInterface ( )
inlinevirtual

Destructor.

Member Function Documentation

virtual const Action* MultiAgentDecisionProcessDiscreteInterface::GetAction ( Index  agentI,
Index  a 
) const
pure virtual
virtual bool MultiAgentDecisionProcessDiscreteInterface::GetEventObservability ( ) const
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().

virtual double MultiAgentDecisionProcessDiscreteInterface::GetInitialStateProbability ( Index  sI) const
pure virtual
virtual const JointAction* MultiAgentDecisionProcessDiscreteInterface::GetJointAction ( Index  i) const
pure virtual
virtual const JointObservation* MultiAgentDecisionProcessDiscreteInterface::GetJointObservation ( Index  i) const
pure virtual
virtual size_t MultiAgentDecisionProcessDiscreteInterface::GetNrActions ( Index  AgentI) const
pure virtual
virtual size_t MultiAgentDecisionProcessDiscreteInterface::GetNrJointActions ( ) const
pure virtual
virtual size_t MultiAgentDecisionProcessDiscreteInterface::GetNrJointActions ( const Scope agScope) const
pure virtual

Get the number of joint actions the agents in agScope can form.

Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.

virtual size_t MultiAgentDecisionProcessDiscreteInterface::GetNrJointObservations ( ) const
pure virtual
virtual size_t MultiAgentDecisionProcessDiscreteInterface::GetNrObservations ( Index  AgentI) const
pure virtual
virtual const Observation* MultiAgentDecisionProcessDiscreteInterface::GetObservation ( Index  agentI,
Index  a 
) const
pure virtual
virtual const ObservationModelDiscrete* MultiAgentDecisionProcessDiscreteInterface::GetObservationModelDiscretePtr ( ) const
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().

virtual double MultiAgentDecisionProcessDiscreteInterface::GetObservationProbability ( Index  jaI,
Index  sucSI,
Index  joI 
) const
pure virtual
virtual double MultiAgentDecisionProcessDiscreteInterface::GetObservationProbability ( Index  sI,
Index  jaI,
Index  sucSI,
Index  joI 
) const
inlinevirtual
virtual OGet* MultiAgentDecisionProcessDiscreteInterface::GetOGet ( ) const
pure virtual
virtual TGet* MultiAgentDecisionProcessDiscreteInterface::GetTGet ( ) const
pure virtual
virtual const TransitionModelDiscrete* MultiAgentDecisionProcessDiscreteInterface::GetTransitionModelDiscretePtr ( ) const
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().

virtual double MultiAgentDecisionProcessDiscreteInterface::GetTransitionProbability ( Index  sI,
Index  jaI,
Index  sucSI 
) const
pure virtual
virtual Index MultiAgentDecisionProcessDiscreteInterface::IndividualToJointActionIndices ( const Index AI_ar) const
pure virtual

Returns the joint action index that corresponds to the array of specified individual action indices.

Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.

virtual Index MultiAgentDecisionProcessDiscreteInterface::IndividualToJointActionIndices ( const std::vector< Index > &  indivActionIndices) const
pure virtual

Returns the joint action index that corresponds to the vector of specified individual action indices.

Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.

virtual Index MultiAgentDecisionProcessDiscreteInterface::IndividualToJointActionIndices ( const std::vector< Index > &  ja_e,
const Scope agSC 
) const
pure virtual
virtual Index MultiAgentDecisionProcessDiscreteInterface::IndividualToJointObservationIndices ( const std::vector< Index > &  indivObservationIndices) const
pure virtual

Returns the joint observation index that corresponds to the vector of specified individual observation indices.

Implemented in TransitionObservationIndependentMADPDiscrete, MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.

virtual Index MultiAgentDecisionProcessDiscreteInterface::IndividualToJointObservationIndices ( const std::vector< Index > &  jo_e,
const Scope agSC 
) const
inlinevirtual

indiv->joint for a restricted set (Scope) of agents

Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.

virtual const std::vector<Index>& MultiAgentDecisionProcessDiscreteInterface::JointToIndividualActionIndices ( Index  jaI) const
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().

virtual std::vector<Index> MultiAgentDecisionProcessDiscreteInterface::JointToIndividualActionIndices ( Index  ja_e,
const Scope agSC 
) const
pure virtual
virtual const std::vector<Index>& MultiAgentDecisionProcessDiscreteInterface::JointToIndividualObservationIndices ( Index  joI) const
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().

virtual std::vector<Index> MultiAgentDecisionProcessDiscreteInterface::JointToIndividualObservationIndices ( Index  jo_e,
const Scope agSC 
) const
inlinevirtual

joint->indiv for a restricted set (Scope) of agents

Reimplemented in MultiAgentDecisionProcessDiscreteFactoredStates, and MultiAgentDecisionProcessDiscrete.

virtual Index MultiAgentDecisionProcessDiscreteInterface::JointToRestrictedJointActionIndex ( Index  jaI,
const Scope agSc_e 
) const
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.

virtual Index MultiAgentDecisionProcessDiscreteInterface::JointToRestrictedJointObservationIndex ( Index  joI,
const Scope agSc_e 
) const
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.

virtual Index MultiAgentDecisionProcessDiscreteInterface::SampleJointObservation ( Index  jaI,
Index  sucI 
) const
pure virtual
virtual Index MultiAgentDecisionProcessDiscreteInterface::SampleJointObservation ( Index  sI,
Index  jaI,
Index  sucI 
) const
inlinevirtual
virtual Index MultiAgentDecisionProcessDiscreteInterface::SampleSuccessorState ( Index  sI,
Index  jaI 
) const
pure virtual
virtual std::string MultiAgentDecisionProcessDiscreteInterface::SoftPrintState ( Index  sI) const
pure virtual