如果我们暂时忘记健康,只看位置,我们有 6 个玩家,每个玩家都可能在 100 个位置中的任何一个,所以我们的位置状态空间将是 100^6。
是的,这是正确的,加上健康,并假设它是一个从 1 到 20 的整数,那么你会有206×1006离散状态。
我的理解是,您需要枚举该游戏的所有可能状态才能成功实施 Q-learning。这将如何完成?
对于具有足够资源的枚举案例,理论上可以保证 Q 学习(和其他 RL 方法)将收敛于最优结果。然而,在这种情况下 - 以及许多其他情况 - 显然有太多的状态需要详细计算或存储值。所以答案是你不这样做。相反,您需要研究计算近似计算动作值的方法,您希望这些值也可以推广到以前看不见的状态/动作对,至少可以推广到与真实游戏相关的看不见的状态和动作。
有许多方法可以构建状态和动作表示,以帮助 RL 中的近似。Sutton & Barto 的强化学习:简介将第二部分(共三部分)的全部内容用于一般近似,第 9 章第 5 部分回顾了一些流行的表示方法,这些方法与更简单的线性函数近似配合得很好。
这种近似也是“深度”Q-learning (DQN) 背后的主要驱动力,DQN 本质上是使用神经网络逼近动作值表的 Q-learning。有一些细节需要添加以使其正常工作 - 但互联网上有大量资源可用于帮助解决此问题:教程、示例和完全编码的代理,可用于设置和解决问题。
所以我建议当状态/动作空间对于简单的表格方法来说太大时转移到 DQN,并且不清楚其他更简单的近似可以更有效地完成工作。如果你这样做,那么状态和动作表示将成为神经网络的输入。为此需要遵循一些规则。首先,所有的投入都应该在适当的范围内。神经网络喜欢处理样本总体上均值为 0、标准差为 1 的输入。对于 RL 问题,您通常不知道这一点,因此您可以进行下一个最好的事情 - 缩放以适应范围,例如 0..1 或 -1..1
我还写了一个答案,涵盖了状态表示和特征工程的选择方法,以解决另一个问题 强化学习:易于学习的状态表示,这可能会有所帮助。