1 from teamwork.agent.AgentClasses import *
2 from teamwork.dynamics.pwlDynamics import *
3
4 from UAIDynamics import *
5
6 classHierarchy['character'] = {
7 'parent': [],
8 'horizon':2,
9 'depth':4,
10 'dynamics':[DynFun['basicDyn']],
11 'state':{\
12 'NS':0.0,
13 'init-norm':0.0,
14 'resp-norm':0.0,
15 'being-offered':0.0,
16 'being-enquired':0.0,
17 'topic':0.0,
18 },
19 }
20
21 classHierarchy['vc1'] = {
22 'parent': ['character'],
23 'state':{\
24 'positive-force':0.0,
25 'negative-force':0.0,
26 'offered-drink':0.0,
27 },
28 'goals':[\
29 {'entity':['self'],'direction':'max','type':'state',
30 'key':'NS','weight':5.},
31
32 {'entity':['usr1'],'direction':'max','type':'state',
33 'key':'NS','weight':1.},
34
35 {'entity':['usr1'],'direction':'max','type':'state',
36 'key':'positive-force','weight':.5},
37
38 {'entity':['usr1'],'direction':'min','type':'state',
39 'key':'negative-force','weight':.5},
40
41 {'entity':['self'],'direction':'max','type':'state',
42 'key':'init-norm','weight':5.},
43
44 {'entity':['self'],'direction':'max','type':'state',
45 'key':'resp-norm','weight':5.},
46
47 ],
48
49 'actions': {'type':'OR',
50 'values':[{'type':'decision',
51 'value':{'type':'XOR',
52 'key':'object',
53 'values':[{'type':'generic','value':'usr1'}],
54 'base': {'type':'XOR',
55 'key':'type',
56 'values':[\
57 {'type':'literal','value':'offer-drink'},
58 {'type':'literal','value':'accept-drink'},
59 {'type':'literal','value':'reject-drink'},
60 {'type':'literal','value':'offer-physicaltouch'},
61 {'type':'literal','value':'accept-physicaltouch'},
62 {'type':'literal','value':'reject-physicaltouch'},
63 {'type':'literal','value':'enquiry'},
64 {'type':'literal','value':'inform'},
65 {'type':'literal','value':'inform-negHistory'},
66
67
68 ],
69 },
70 },
71 },
72
73 {'type':'decision',
74 'value':{'type':'XOR',
75 'key':'type',
76 'values':[\
77 {'type':'literal','value':'wait'},
78 ],
79 },
80 },
81
82 ],
83 },
84
85 }
86
87
88 classHierarchy['usr1'] = {
89 'parent': ['character'],
90 'state':{\
91 'positive-force':0.0,
92 'negative-force':0.0,
93 'offered-drink':0.0,
94 },
95 'goals':[\
96 {'entity':['self'],'direction':'max','type':'state',
97 'key':'NS','weight':5.},
98
99 {'entity':['vc1'],'direction':'max','type':'state',
100 'key':'NS','weight':1.},
101
102 {'entity':['vc1'],'direction':'max','type':'state',
103 'key':'positive-force','weight':.5},
104
105 {'entity':['vc1'],'direction':'min','type':'state',
106 'key':'negative-force','weight':.5},
107
108 {'entity':['self'],'direction':'max','type':'state',
109 'key':'init-norm','weight':5.},
110
111 {'entity':['self'],'direction':'max','type':'state',
112 'key':'resp-norm','weight':5.},
113 ],
114
115 'actions': {'type':'OR',
116 'values':[{'type':'decision',
117 'value':{'type':'XOR',
118 'key':'object',
119 'values':[{'type':'generic','value':'vc1'}],
120 'base': {'type':'XOR',
121 'key':'type',
122 'values':[\
123 {'type':'literal','value':'offer-drink'},
124 {'type':'literal','value':'accept-drink'},
125 {'type':'literal','value':'reject-drink'},
126 {'type':'literal','value':'offer-physicaltouch'},
127 {'type':'literal','value':'accept-physicaltouch'},
128 {'type':'literal','value':'reject-physicaltouch'},
129 {'type':'literal','value':'enquiry'},
130 {'type':'literal','value':'inform'},
131 {'type':'literal','value':'inform-negHistory'},
132
133 ],
134 },
135 },
136 },
137
138 {'type':'decision',
139 'value':{'type':'XOR',
140 'key':'type',
141 'values':[\
142 {'type':'literal','value':'wait'},
143
144 ],
145 },
146 },
147
148 ],
149 },
150
151 }
152
153
154
155 classHierarchy['vc2'] = {
156 'parent': ['character'],
157 'state':{\
158 'health':0.0,
159 'friendship':0.0,
160 'pleasure':0.0,
161 },
162 'goals':[\
163 {'entity':['self'],'direction':'max','type':'state',
164 'key':'NS','weight':5.},
165
166 {'entity':['usr2'],'direction':'max','type':'state',
167 'key':'NS','weight':1.},
168
169 {'entity':['self'],'direction':'max','type':'state',
170 'key':'health','weight':1.},
171
172 {'entity':['self'],'direction':'max','type':'state',
173 'key':'friendship','weight':5.},
174
175 {'entity':['self'],'direction':'max','type':'state',
176 'key':'pleasure','weight':5.},
177
178 {'entity':['self'],'direction':'max','type':'state',
179 'key':'init-norm','weight':5.},
180
181 {'entity':['self'],'direction':'max','type':'state',
182 'key':'resp-norm','weight':5.},
183
184 ],
185
186 'actions': {'type':'OR',
187 'values':[{'type':'decision',
188 'value':{'type':'XOR',
189 'key':'object',
190 'values':[{'type':'generic','value':'usr2'}],
191 'base': {'type':'XOR',
192 'key':'type',
193 'values':[\
194 {'type':'literal','value':'offer-unsafesex'},
195 {'type':'literal','value':'accept-unsafesex'},
196 {'type':'literal','value':'reject-unsafesex'},
197 {'type':'literal','value':'offer-safesex'},
198 {'type':'literal','value':'accept-safesex'},
199 {'type':'literal','value':'reject-safesex'},
200
201 ],
202 },
203 },
204 },
205
206 {'type':'decision',
207 'value':{'type':'XOR',
208 'key':'type',
209 'values':[\
210 {'type':'literal','value':'wait'},
211 ],
212 },
213 },
214
215 ],
216 },
217
218 }
219
220 classHierarchy['usr2'] = {
221 'parent': ['character'],
222 'state':{\
223 'health':0.0,
224 'friendship':0.0,
225 'pleasure':0.0,
226 },
227 'goals':[\
228 {'entity':['self'],'direction':'max','type':'state',
229 'key':'NS','weight':5.},
230
231 {'entity':['vc2'],'direction':'max','type':'state',
232 'key':'NS','weight':1.},
233
234 {'entity':['self'],'direction':'max','type':'state',
235 'key':'health','weight':5.},
236
237 {'entity':['self'],'direction':'max','type':'state',
238 'key':'friendship','weight':5.},
239
240 {'entity':['self'],'direction':'max','type':'state',
241 'key':'pleasure','weight':3.},
242
243 {'entity':['self'],'direction':'max','type':'state',
244 'key':'init-norm','weight':5.},
245
246 {'entity':['self'],'direction':'max','type':'state',
247 'key':'resp-norm','weight':5.},
248
249 ],
250
251 'actions': {'type':'OR',
252 'values':[{'type':'decision',
253 'value':{'type':'XOR',
254 'key':'object',
255 'values':[{'type':'generic','value':'vc2'}],
256 'base': {'type':'XOR',
257 'key':'type',
258 'values':[\
259 {'type':'literal','value':'offer-unsafesex'},
260 {'type':'literal','value':'accept-unsafesex'},
261 {'type':'literal','value':'reject-unsafesex'},
262 {'type':'literal','value':'offer-safesex'},
263 {'type':'literal','value':'accept-safesex'},
264 {'type':'literal','value':'reject-safesex'},
265
266 ],
267 },
268 },
269 },
270
271 {'type':'decision',
272 'value':{'type':'XOR',
273 'key':'type',
274 'values':[\
275 {'type':'literal','value':'wait'},
276
277 ],
278 },
279 },
280
281 ],
282 },
283
284 }
285