Package teamwork :: Package examples :: Package Thespian :: Module UAIClasses
[hide private]
[frames] | no frames]

Source Code for Module teamwork.examples.Thespian.UAIClasses

  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