我正在为 2 人棋盘游戏实施 Q-Learning 算法。
我遇到了我认为可能是个问题。当需要用贝尔曼方程(上图)更新 Q 值时,最后一部分指出,为了获得最大的期望奖励,必须在s'
采取行动后找到达到的新状态中的最高 q 值a
。
但是,似乎 I 从来没有 state 的 q 值s'
。我怀疑s'
只能从 P2 移动。由于 P1 的操作,可能无法达到此状态。因此,棋盘状态s'
永远不会由 P2 评估,因此它的 Q 值永远不会被计算。
我将尝试描绘我的意思。假设 P1 是随机玩家,P2 是学习代理。
- P1 随机移动,导致 state
s
。 - P2 评估棋盘
s
,找到最佳动作并采取它,从而产生状态s'
。在更新 pair 的 Q 值的过程中(s,a)
,它发现maxQ'(s', a) = 0
,因为状态还没有遇到。 - 从
s'
,P1 再次随机移动。
如您所见,s'
P2 永远不会遇到 state,因为它是一种仅作为 P2 移动的结果出现的棋盘状态。因此等式的最后一部分将始终导致0 - current Q value
。
我看对了吗?这会影响学习过程吗?任何输入将不胜感激。
谢谢。