MultiAgentDecisionProcess  Release 0.2.1
MultiAgentDecisionProcessDiscreteInterface.h
Go to the documentation of this file.
1 
28 /* Only include this header file once. */
29 #ifndef _MULTIAGENTDECISIONPROCESSDISCRETEINTERFACE_H_
30 #define _MULTIAGENTDECISIONPROCESSDISCRETEINTERFACE_H_ 1
31 
32 /* the include directives */
33 #include <vector>
34 #include <string>
35 
37 
38 class Action;
39 class Observation;
40 class JointObservation;
41 class State;
42 class JointAction;
47 
50 
51 class TGet;
52 class OGet;
53 class StateDistribution;
54 
68 {
69  private:
70 
71  protected:
72 
73  public:
74 
77 
78  // 'get' functions:
79 
81  virtual size_t GetNrStates() const = 0;
83  virtual const State* GetState(Index i) const = 0;
84  virtual std::string SoftPrintState(Index sI) const = 0;
85 
87  virtual double GetInitialStateProbability(Index sI) const = 0;
89  virtual const StateDistribution* GetISD() const = 0;
90 
91 
92 
94  virtual const std::vector<size_t>& GetNrActions() const = 0;
96  virtual size_t GetNrActions(Index AgentI) const =0 ;
98  virtual size_t GetNrJointActions() const = 0;
99 
101  virtual const Action* GetAction(Index agentI, Index a) const = 0;
103  virtual const JointAction* GetJointAction(Index i) const = 0;
106  virtual Index IndividualToJointActionIndices(const Index* AI_ar)
107  const = 0;
110  virtual Index IndividualToJointActionIndices(const std::vector<Index>&
111  indivActionIndices) const = 0;
114  virtual const std::vector<Index>& JointToIndividualActionIndices(
115  Index jaI) const = 0;
116 
117 
119  virtual const std::vector<size_t>& GetNrObservations() const = 0;
121  virtual size_t GetNrObservations(Index AgentI) const = 0;
123  virtual size_t GetNrJointObservations() const = 0;
124 
126  virtual const Observation* GetObservation(Index agentI, Index a)
127  const = 0;
129  virtual const JointObservation* GetJointObservation(Index i) const = 0;
130 
134  const std::vector<Index>&
135  indivObservationIndices) const = 0;
138  virtual const std::vector<Index>&
140 
142  virtual double GetTransitionProbability(Index sI, Index jaI, Index
143  sucSI) const = 0;
144  virtual TGet* GetTGet() const = 0;
145 
147  virtual double GetObservationProbability(Index jaI, Index sucSI,
148  Index joI) const = 0;
149  virtual OGet* GetOGet() const = 0;
150 
151 
160  const = 0;
161 
169  virtual const ObservationModelDiscrete* GetObservationModelDiscretePtr() const = 0;
170 
171 
172  //sample functions:
173 
175  virtual Index SampleSuccessorState(Index sI, Index jaI) const = 0;
177  virtual Index SampleJointObservation(Index jaI, Index sucI) const =0;
179  virtual Index SampleInitialState(void) const = 0;
180 
183 
187  virtual std::string SoftPrint() const = 0;
188 
189 };
190 
191 #endif /* !_MULTIAGENTDECISIONPROCESSINTERFACE_H_ */
192 
193 
194 // Local Variables: ***
195 // mode:c++ ***
196 // End: ***