Q-Learn
参考:https://blog.csdn.net/weixin_44732379/article/details/127812712
1 使用

检测到游戏画面处于s1,就从a1,a2,a3种, 从这3个动作中,选一个Q值最大的动作。
选完动作后,输入给游戏执行。
游戏执行后,游戏画面会处于新的状态。
在这个新的状态下,从a1,a2,a3中,选一个Q值最大的动作 ,我们称这个动作为下一次动作的最大Q值。公式为:

2 训练
一开始设置Q-table为0,然后用一下公式更新Q-table 中的Q值,直到Q-table中的值不再发生变化。

alpha 是学习率,可取0.3.
gama是前瞻率,可取0.4.
rt+1是游戏的奖励分。
公式中的

就是下一次动作的最大Q值。
gama为什么是前瞻率,就是因为它乘的是 下一次动作的最大Q值,下一次。
3 总结:
训练移动步数后,Q-table应该会趋于不变,这便是收敛了。
如果没有收敛,可调整学习率,前瞻率等。
还可以适当的增加一些随机性,即并不是每次都取Q值最大的动作,而是以一定概率来随机取动作,以让Q-table得到更加丰富的更新。
在一开始的时候,这个概率可以大些,后面逐渐调小,直到为0.