MultiAgentDecisionProcess  Release 0.2.1
PolicyDiscrete.h
Go to the documentation of this file.
1 
28 /* Only include this header file once. */
29 #ifndef _POLICYDISCRETE_H_
30 #define _POLICYDISCRETE_H_ 1
31 
32 /* the include directives */
33 #include <iostream>
34 #include "Globals.h"
35 #include "Policy.h"
37 #include "Referrer.h"
38 
39 using namespace PolicyGlobals;
40 
56 // public Referrer<Interface_ProblemToPolicyDiscrete>,
57  public Policy
58 {
59  private:
63 
64  protected:
65 
66  public:
67  // Constructor, destructor and copy assignment.
71  Index agentI ) :
72  Policy(agentI),
73  _m_I_PTPD(&iptpd),
74  _m_indexDomCat(idc){};
75 
78  Policy(a),
79  _m_I_PTPD(a._m_I_PTPD),
80  _m_indexDomCat(a._m_indexDomCat)
81  {};
82 
84  virtual ~PolicyDiscrete()
85  {};
86 
87  //operators:
88 
89  //data manipulation (set) functions:
93  void SetIndexDomainCategory(IndexDomainCategory idc)
94  {_m_indexDomCat = idc;};
95 
96  //get (data) functions:
100  IndexDomainCategory GetIndexDomainCategory() const
101  {return (_m_indexDomCat);};
102 
108  virtual double GetActionProb( Index i, Index ja ) const = 0;
109 
112  Index SampleAction( Index i ) const;
113 
117  const Interface_ProblemToPolicyDiscrete* GetInterfacePTPDiscrete() const
118  {return _m_I_PTPD;}
119 
121  virtual PolicyDiscrete* Clone() const = 0;
122 
123 };
124 
125 
126 #endif /* !_POLICYDISCRETE_H_ */
127 
128 
129 // Local Variables: ***
130 // mode:c++ ***
131 // End: ***