@@ -437,34 +437,35 @@ def __init__(self, problem):
437
437
self .result = {}
438
438
439
439
def __call__ (self , percept ):
440
- current_state = self .update_state (percept )
441
- if self .problem .goal_test (current_state ):
440
+ s1 = self .update_state (percept )
441
+ if self .problem .goal_test (s1 ):
442
442
self .a = None
443
443
else :
444
- if current_state not in self .untried .keys ():
445
- self .untried [current_state ] = self .problem .actions (
446
- current_state )
444
+ if s1 not in self .untried .keys ():
445
+ self .untried [s1 ] = self .problem .actions (s1 )
447
446
if self .s is not None :
448
- if current_state != self .result [(self .s , self .a )]:
449
- self .result [(self .s , self .a )] = current_state
450
- unbacktracked [current_state ].insert (0 , self .s )
451
- if len (self .untried [current_state ]) == 0 :
452
- if len (self .unbacktracked [current_state ]) == 0 :
447
+ if s1 != self .result [(self .s , self .a )]:
448
+ self .result [(self .s , self .a )] = s1
449
+ unbacktracked [s1 ].insert (0 , self .s )
450
+ if len (self .untried [s1 ]) == 0 :
451
+ if len (self .unbacktracked [s1 ]) == 0 :
453
452
self .a = None
454
453
else :
455
454
# else a <- an action b such that result[s', b] = POP(unbacktracked[s']) # noqa
456
- unbacktracked_pop = self .unbacktracked [current_state ].pop (0 ) # noqa
455
+ unbacktracked_pop = self .unbacktracked [s1 ].pop (0 ) # noqa
457
456
for (s , b ) in self .result .keys ():
458
457
if self .result [(s , b )] == unbacktracked_pop :
459
458
self .a = b
460
459
break
461
460
else :
462
- self .a = self .untried [current_state ].pop (0 )
463
- self .s = current_state
461
+ self .a = self .untried [s1 ].pop (0 )
462
+ self .s = s1
464
463
return self .a
465
464
466
465
def update_state (self , percept ):
467
- raise NotImplementedError
466
+ ''' To be overriden in most cases. The default case
467
+ assumes th percept to be of type state'''
468
+ raise percept
468
469
469
470
# ______________________________________________________________________________
470
471
0 commit comments