def get_n_step_expected_rewards_mat(episode_rewards, estimates, discount=.99, n_step=1):
expected_reward = [0] * len(episode_rewards)
rewards_coef = np.fromfunction(lambda i,j: discount**(i-j) * (i >= j) * (i - j < n_step), (len(episode_rewards), len(episode_rewards)))
permut = np.fromfunction(lambda i,j: (i > j + n_step) * (i <= j + n_step), (len(episode_rewards), len(episode_rewards)))
return np.dot(episode_rewards, rewards_coef) + discount**(n_step) * np.dot(estimates, permut)
评论列表
文章目录