# nA为动作空间数量, T为进行的总时间步
def epsilon_greedy(nA, R, T, epsilon=0.6):
r = 0 # 初始化累计奖励r
N = [0] * nA # 对动作空间进行全零初始化
for _ in range(T):
if np.random.rand() < epsilon:
a = np.random.randint(q_value.shape[0])
else:
a = np.argmax(q_value)
v = R(a)
r = r + v
q_value[a] = (q_value[a] * N[a] + v) / (N[a] + 1)
N[a] += 1
return r
2021-10-17 2.1
最新推荐文章于 2024-07-22 22:58:19 发布