MultiAgentDecisionProcess
Release 0.2.1
Main Page
Namespaces
Classes
Files
File List
File Members
JointPolicyPureVector.h
Go to the documentation of this file.
1
28
/* Only include this header file once. */
29
#ifndef _JOINTPOLICYPUREVECTOR_H_
30
#define _JOINTPOLICYPUREVECTOR_H_ 1
31
32
/* the include directives */
33
#include <iostream>
34
#include <vector>
35
#include "
Globals.h
"
36
#include "
JointPolicyDiscretePure.h
"
37
#include "
JPolComponent_VectorImplementation.h
"
38
39
41
51
class
JointPolicyPureVector
:
52
//virtual <- this leads to pain in the ass...
53
public
JointPolicyDiscretePure
,
54
private
JPolComponent_VectorImplementation
// use private inheritance for composition
55
56
{
57
private
:
58
61
void
ClearIndividualPolicies
();
62
64
66
Index
*
_m_indivActionIndices
;
67
68
protected
:
69
std::vector<PolicyPureVector*>
_m_indivPols_PolicyPureVector
;
70
71
public
:
72
// Constructor, destructor and copy assignment.
73
82
JointPolicyPureVector
(
const
Interface_ProblemToPolicyDiscretePure
& pu)
83
:
84
JointPolicyDiscretePure
( pu , pu.GetDefaultIndexDomCat() ),
85
JPolComponent_VectorImplementation
(pu, pu.GetDefaultIndexDomCat() )
86
{};
96
JointPolicyPureVector
(
const
Interface_ProblemToPolicyDiscretePure
& pu,
97
PolicyGlobals::IndexDomainCategory
idc )
98
:
99
JointPolicyDiscretePure
(pu, idc),
100
JPolComponent_VectorImplementation
(pu, idc)
101
{};
102
104
JointPolicyPureVector
(
const
JointPolicyPureVector
& a)
105
:
106
JointPolicyDiscretePure
(a)
107
,
JPolComponent_VectorImplementation
(a)
108
{};
110
JointPolicyPureVector
(
const
JointPolicyDiscretePure
& a)
111
:
112
JointPolicyDiscretePure
(a),
113
JPolComponent_VectorImplementation
(
114
dynamic_cast<const
JointPolicyPureVector
&>( a ) )
115
{};
117
JointPolicyPureVector
(
const
JointPolicyDiscretePure
& a1,
118
const
JPolComponent_VectorImplementation
& a2)
119
:
120
JointPolicyDiscretePure
(a1),
121
JPolComponent_VectorImplementation
( a2 )
122
{};
123
private
:
124
public
:
126
virtual
~JointPolicyPureVector
() {};
129
virtual
JointPolicyPureVector
&
operator=
(
const
JointPolicyPureVector
& jp);
132
virtual
JointPolicyPureVector
&
operator=
(
const
JointPolicyDiscretePure
& jp);
133
135
136
void
SetDepth
(
size_t
d)
137
{
138
JointPolicy::SetDepth
(d);
139
JPolComponent_VectorImplementation::SetDepthForIndivPols
(d);
140
};
141
143
virtual
std::string
SoftPrint
()
const
;
145
virtual
std::string
SoftPrintBrief
()
const
;
146
void
PrintBrief
()
const
147
{ std::cout <<
SoftPrintBrief
();}
148
151
JointPolicyPureVector
*
ToJointPolicyPureVector
()
const
;
152
153
//relay the following functions to the JPolComponent_VectorImplementation:
154
156
bool
operator++
() {
return
( this->
Increment
() ); };
157
158
bool
Increment
(
Index
agentI)
159
{
return
this->
JPolComponent_VectorImplementation::Increment
(agentI); }
160
bool
Increment
()
161
{
return
this->
JPolComponent_VectorImplementation::Increment
(); }
162
164
LIndex
GetIndex
()
const
165
{
return
this->
JPolComponent_VectorImplementation::GetIndex
(); }
167
void
SetIndex
(
LIndex
i)
168
{ this->
JPolComponent_VectorImplementation::SetIndex
(i); }
169
170
172
virtual
Index
GetJointActionIndex
(
Index
i)
const
173
{
return
JPolComponent_VectorImplementation::GetJointActionIndex
(i); }
175
virtual
Index
GetActionIndex
(
Index
agI ,
Index
domainI)
const
176
{
return
JPolComponent_VectorImplementation::GetActionIndex
(agI , domainI);}
177
178
virtual
PolicyDiscrete
*
GetIndividualPolicyDiscrete
(
Index
i)
const
179
{
return
JPolComponent_VectorImplementation::GetIndividualPolicyDiscrete
(i) ;}
181
183
std::vector<PolicyPureVector*>&
GetIndividualPolicies
()
184
{
return
this->
JPolComponent_VectorImplementation::GetIndividualPolicies
();}
185
187
189
virtual
void
ZeroInitialization
()
190
{
JPolComponent_VectorImplementation::ZeroInitialization
();}
192
194
virtual
void
ZeroInitialization
(
Index
i)
195
{
JPolComponent_VectorImplementation::ZeroInitialization
(i);}
197
virtual
void
RandomInitialization
()
198
{
JPolComponent_VectorImplementation::RandomInitialization
();}
200
virtual
void
RandomInitialization
(
Index
i)
201
{
JPolComponent_VectorImplementation::RandomInitialization
(i);}
202
virtual
void
SetAction
(
Index
agentI,
Index
domainI,
Index
aI)
203
{
JPolComponent_VectorImplementation::SetAction
(agentI, domainI, aI);}
204
206
virtual
JointPolicyPureVector
*
Clone
()
const
207
{
return
new
JointPolicyPureVector
(*
this
); }
208
209
210
211
};
212
213
214
#endif
/* !_JOINTPOLICYPUREVECTOR_H_ */
215
216
217
// Local Variables: ***
218
// mode:c++ ***
219
;
// End: ***
src
support
JointPolicyPureVector.h
Generated on Mon Sep 23 2013 14:50:06 for MultiAgentDecisionProcess by
1.8.1.2