Skip to content

Commit 7275d93

Browse files
Vance JohnVance John
authored andcommitted
Adding table based agent
1 parent c0e26a0 commit 7275d93

2 files changed

Lines changed: 281 additions & 92 deletions

File tree

‎aima/agents.py‎

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -215,16 +215,84 @@ def TableDrivenVacuumAgent():
215215
>>> environment.status == {(1,0):'Clean' , (0,0) : 'Clean'}
216216
True
217217
"""
218-
table = {((loc_A, 'Clean'),): 'Right',
219-
((loc_A, 'Dirty'),): 'Suck',
220-
((loc_B, 'Clean'),): 'Left',
221-
((loc_B, 'Dirty'),): 'Suck',
222-
((loc_A, 'Dirty'), (loc_A, 'Clean')): 'Right',
223-
((loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
224-
((loc_B, 'Clean'), (loc_A, 'Dirty')): 'Suck',
225-
((loc_B, 'Dirty'), (loc_B, 'Clean')): 'Left',
226-
((loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
227-
((loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_A, 'Dirty')): 'Suck'}
218+
table = {
219+
((loc_A, 'Dirty'),): 'Suck',
220+
((loc_A, 'Clean'),): 'Right',
221+
((loc_B, 'Dirty'),): 'Suck',
222+
((loc_B, 'Clean'),): 'Down',
223+
((loc_D, 'Dirty'),): 'Suck',
224+
((loc_D, 'Clean'),): 'Left',
225+
((loc_C, 'Dirty'),): 'Suck',
226+
((loc_C, 'Clean'),): 'Up',
227+
228+
((loc_A, 'Dirty'), (loc_A, 'Clean')): 'Right',
229+
((loc_B, 'Dirty'), (loc_B, 'Clean')): 'Down',
230+
((loc_D, 'Dirty'), (loc_D, 'Clean')): 'Left',
231+
((loc_C, 'Dirty'), (loc_C, 'Clean')): 'Up',
232+
((loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
233+
((loc_B, 'Clean'), (loc_D, 'Dirty')): 'Suck',
234+
((loc_D, 'Clean'), (loc_C, 'Dirty')): 'Suck',
235+
((loc_C, 'Clean'), (loc_A, 'Dirty')): 'Suck',
236+
((loc_A, 'Clean'), (loc_B, 'Clean')): 'Down',
237+
((loc_B, 'Clean'), (loc_D, 'Clean')): 'Left',
238+
((loc_D, 'Clean'), (loc_C, 'Clean')): 'Up',
239+
((loc_C, 'Clean'), (loc_A, 'Clean')): 'Right',
240+
241+
((loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Clean')): 'Left',
242+
((loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Dirty')): 'Suck',
243+
((loc_A, 'Clean'), (loc_B, 'Dirty'), (loc_B, 'Clean')): 'Down',
244+
((loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Clean')): 'Down',
245+
((loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
246+
((loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Clean')): 'Up',
247+
((loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Dirty')): 'Suck',
248+
((loc_B, 'Clean'), (loc_D, 'Dirty'), (loc_D, 'Clean')): 'Left',
249+
((loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Clean')): 'Left',
250+
((loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Dirty')): 'Suck',
251+
((loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Clean')): 'Down',
252+
((loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
253+
((loc_C, 'Clean'), (loc_A, 'Dirty'), (loc_A, 'Clean')): 'Right',
254+
((loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Clean')): 'Right',
255+
((loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Dirty')): 'Suck',
256+
((loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Clean')): 'Right',
257+
((loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Dirty')): 'Suck',
258+
((loc_D, 'Clean'), (loc_C, 'Dirty'), (loc_C, 'Clean')): 'Up',
259+
((loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Clean')): 'Up',
260+
((loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Dirty')): 'Suck',
261+
262+
((loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Clean')): 'Up',
263+
((loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Dirty')): 'Suck',
264+
((loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Dirty'), (loc_D, 'Clean')): 'Left',
265+
((loc_A, 'Clean'), (loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Clean')): 'Left',
266+
((loc_A, 'Clean'), (loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Dirty')): 'Suck',
267+
((loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Clean')): 'Left',
268+
((loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Dirty')): 'Suck',
269+
((loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Dirty'), (loc_B, 'Clean')): 'Down',
270+
((loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Clean')): 'Right',
271+
((loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Dirty')): 'Suck',
272+
((loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Dirty'), (loc_C, 'Clean')): 'Up',
273+
((loc_B, 'Clean'), (loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Clean')): 'Up',
274+
((loc_B, 'Clean'), (loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Dirty')): 'Suck',
275+
((loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Clean')): 'Up',
276+
((loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Clean'), (loc_C, 'Dirty')): 'Suck',
277+
((loc_B, 'Dirty'), (loc_B, 'Clean'), (loc_D, 'Dirty'), (loc_D, 'Clean')): 'Left',
278+
((loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Clean')): 'Left',
279+
((loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Clean'), (loc_D, 'Dirty')): 'Suck',
280+
((loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Dirty'), (loc_B, 'Clean')): 'Down',
281+
((loc_C, 'Clean'), (loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Clean')): 'Down',
282+
((loc_C, 'Clean'), (loc_A, 'Dirty'), (loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
283+
((loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Clean')): 'Down',
284+
((loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
285+
((loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Dirty'), (loc_A, 'Clean')): 'Right',
286+
((loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Clean')): 'Down',
287+
((loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Clean'), (loc_B, 'Dirty')): 'Suck',
288+
((loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Dirty'), (loc_A, 'Clean')): 'Right',
289+
((loc_D, 'Clean'), (loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Clean')): 'Right',
290+
((loc_D, 'Clean'), (loc_C, 'Dirty'), (loc_C, 'Clean'), (loc_A, 'Dirty')): 'Suck',
291+
((loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Clean')): 'Right',
292+
((loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Clean'), (loc_A, 'Dirty')): 'Suck',
293+
((loc_D, 'Dirty'), (loc_D, 'Clean'), (loc_C, 'Dirty'), (loc_C, 'Clean')): 'Up',
294+
295+
}
228296
return Agent(TableDrivenAgentProgram(table))
229297

230298

0 commit comments

Comments
 (0)