Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 59e3abb

Browse files
reachtarunherenorvig
authored andcommitted
Consistent Variable Naming (aimacode#220)
* Change variable names from s_prime to s1, current_state to s1 * Sane default for update_state
1 parent b3fa725 commit 59e3abb

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

rl.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,18 @@ def __init__(self, pi, mdp, alpha=None):
3939
self.alpha = lambda n: 1./(1+n) # udacity video
4040

4141
def __call__(self, percept):
42-
s_prime, r_prime = self.update_state(percept)
42+
s1, r1 = self.update_state(percept)
4343
pi, U, Ns, s, a, r = self.pi, self.U, self.Ns, self.s, self.a, self.r
4444
alpha, gamma, terminals = self.alpha, self.gamma, self.terminals
45-
if not Ns[s_prime]:
46-
U[s_prime] = r_prime
45+
if not Ns[s1]:
46+
U[s1] = r1
4747
if s is not None:
4848
Ns[s] += 1
49-
U[s] += alpha(Ns[s]) * (r + gamma * U[s_prime] - U[s])
50-
if s_prime in terminals:
49+
U[s] += alpha(Ns[s]) * (r + gamma * U[s1] - U[s])
50+
if s1 in terminals:
5151
self.s = self.a = self.r = None
5252
else:
53-
self.s, self.a, self.r = s_prime, pi[s_prime], r_prime
53+
self.s, self.a, self.r = s1, pi[s1], r1
5454
return self.a
5555

5656
def update_state(self, percept):

search.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -437,34 +437,35 @@ def __init__(self, problem):
437437
self.result = {}
438438

439439
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):
442442
self.a = None
443443
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)
447446
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:
453452
self.a = None
454453
else:
455454
# 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
457456
for (s, b) in self.result.keys():
458457
if self.result[(s, b)] == unbacktracked_pop:
459458
self.a = b
460459
break
461460
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
464463
return self.a
465464

466465
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
468469

469470
# ______________________________________________________________________________
470471

0 commit comments

Comments
 (0)