- added reward sum and reward mean
This commit is contained in:
+20
-7
@@ -18,6 +18,7 @@ class MachinePlayer(APlayer):
|
||||
self.with_debug = False
|
||||
self.values = values
|
||||
self.episode_history = None
|
||||
self.reward_sum = 0
|
||||
|
||||
def set_debug(self, with_debug):
|
||||
self.with_debug = with_debug
|
||||
@@ -44,31 +45,43 @@ class MachinePlayer(APlayer):
|
||||
|
||||
return result
|
||||
|
||||
def set_value(self, state: np.array, value):
|
||||
self.values[self.to_key(state)] = value
|
||||
def set_value(self, state: np.array, reward):
|
||||
self.values[self.to_key(state)] = reward
|
||||
self.reward_sum += reward
|
||||
if self.with_debug:
|
||||
print(f"{self.mark}: Rewarded {reward:0.3f}")
|
||||
|
||||
def end_game(self, state: np.array, value):
|
||||
self.set_value(self.state, value)
|
||||
if self.params.do_learn_from_history:
|
||||
self.learn_from_history()
|
||||
|
||||
r_sum = self.reward_sum
|
||||
r_mean = self.reward_sum/self.count
|
||||
|
||||
if self.with_debug:
|
||||
print(f"Reward sum : {r_sum}")
|
||||
print(f"Reward mean : {r_mean}")
|
||||
|
||||
return r_sum, r_mean
|
||||
|
||||
def new_game(self, state: np.array):
|
||||
self.state = state
|
||||
self.episode_history = []
|
||||
self.reward_sum = 0
|
||||
self.count = 0
|
||||
|
||||
def learn_from_history(self):
|
||||
rev_hist = list(reversed(self.episode_history))
|
||||
for hist in rev_hist:
|
||||
if not hist['is_exp']:
|
||||
d = self.calc_value(hist['state'], hist['next_state'])
|
||||
if not hist['is_exp']:
|
||||
self.set_value(hist['state'], d)
|
||||
self.set_value(hist['state'], d)
|
||||
|
||||
def calc_value(self, state: np.array, next_state: np.array):
|
||||
v0 = self.get_value(state)
|
||||
v1 = self.get_value(next_state)
|
||||
d = v0 + self.params.alpha*(v1-v0)
|
||||
if self.with_debug:
|
||||
print(f"{self.mark}: Learned {d:0.3f}")
|
||||
|
||||
return d
|
||||
|
||||
@@ -121,6 +134,6 @@ class MachinePlayer(APlayer):
|
||||
self.set_value(self.state, d)
|
||||
|
||||
self.state = next_state
|
||||
|
||||
self.count += 1
|
||||
return next_state, True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user