【发布时间】:2018-03-23 13:59:54
【问题描述】:
我正在尝试实施 Q Learning 代理来学习在井字游戏中与随机代理对战的最佳策略。
我制定了一个我认为可行的计划。只有一个部分我无法理解。这是因为环境中有两个参与者。
现在,Q Learning 代理应该对当前状态s、给定某些策略采取的操作a、给定操作的后续状态s' 以及从该后续状态收到的任何奖励采取行动,r。
让我们把它放到一个元组(s, a, r, s')
现在,代理通常会对在给定动作中遇到的每个状态采取行动,并使用 Q 学习方程来更新先前状态的值。
但是,由于井字游戏有两个玩家,我们可以将状态集划分为两个。一组状态可以是学习代理转向行动的状态。另一组状态可能是对手转而采取行动的地方。
那么,我们需要将状态分成两部分吗?或者学习代理是否需要更新游戏中访问的每个状态?
我觉得应该是后者,因为这可能会影响更新对手赢得比赛时的 Q 值。
对此的任何帮助都会很棒,因为似乎没有任何在线内容可以帮助解决我的困境。
【问题讨论】:
标签: python tic-tac-toe reinforcement-learning q-learning