MultiAgentDecisionProcess  Release 0.2.1
Interface_ProblemToPolicyDiscrete.h
Go to the documentation of this file.
1 
28 /* Only include this header file once. */
29 #ifndef _INTERFACE_PROBLEMTOPOLICYDISCRETE_H_
30 #define _INTERFACE_PROBLEMTOPOLICYDISCRETE_H_ 1
31 
32 /* the include directives */
33 #include <iostream>
34 #include <vector>
35 #include <cmath>
36 #include "Globals.h"
37 #include "PolicyGlobals.h"
38 
49 {
50  private:
51 
52  protected:
53 
54  public:
55  // Constructor, destructor and copy assignment.
58  {}
61 
63  virtual bool AreCachedJointToIndivIndices(
64  const PolicyGlobals::IndexDomainCategory pdc) const = 0;
65 
67  virtual size_t GetNrAgents() const = 0;
69  size_t GetNrJointActions() const
70  {
71  size_t nrJA = 1;
72  for(Index i=0; i < GetNrAgents(); i++)
73  nrJA *= GetNrActions(i);
74  return(nrJA);
75  }
76 
78  virtual size_t GetNrActions(Index agentI) const = 0;
80  virtual size_t GetNrPolicyDomainElements(Index agentI,
82  size_t depth=MAXHORIZON) const = 0;
83 
85 
88  const Index* indivIndices) const = 0;
91  const std::vector<Index>& indivIndices) const = 0;
92 
95  const = 0;
96 
98 
103  virtual std::vector<Index> JointToIndividualPolicyDomainIndices(Index jdI,
104  PolicyGlobals::IndexDomainCategory cat) const = 0;
106 
111  virtual const std::vector<Index>& JointToIndividualPolicyDomainIndicesRef(
112  Index jdI, PolicyGlobals::IndexDomainCategory cat) const = 0;
116  virtual std::string SoftPrintPolicyDomainElement(Index agentI, Index dIndex,
118  const=0;
122  virtual std::string SoftPrintAction(Index agentI, Index actionI) const =0;
123 
124  //operators:
125 
126  //data manipulation (set) functions:
127 
128  //get (data) functions:
129 };
130 
131 
132 #endif /* !_INTERFACE_PROBLEMTOPOLICYDISCRETE_H_ */
133 
134 // Local Variables: ***
135 // mode:c++ ***
136 // End: ***