我正在参加一个在线课程,在那里我发现提交了许多Q-Values。所以,我写了一个 Python 脚本来自动计算它。我使用了以下等式。 但是脚本没有按应有的方式执行。它给出了错误的答案。虽然我可以通过在纸上做同样的事情来得到正确的答案。
def Qvalue_iteration(T, R, gamma=0.5, n_iters=10):
nS = R.shape[0]
nA = T.shape[0]
Q = [[0]*nA]*nS # initially
for _ in range(n_iters):
for s in range(nS): # for all states s
for a in range(nA): # for all actions a
sum_sp = 0
for s_ in range(nS): # for all reachable states s'
sum_sp += (T[a][s][s_]*(R[s][s_][a] + gamma*max(Q[s_])))
Q[s][a] = sum_sp
return Q
这里,T 是转移概率,R 是奖励。谁能帮我从头开始编写这个 Q 值迭代算法。我是强化学习的初学者。虽然我已经提交了答案并且通过在纸上完成了所有正确的操作,但我想对其进行编码。