【发布时间】:2014-05-30 02:56:07
【问题描述】:
我已经为这个问题苦苦挣扎了一段时间。我需要通过蛮力解决井字游戏——也就是说,让计算机通过自己玩几百万次来“学习”。
现在,“设置”有效 - 我将简要介绍一下。我的电脑通过生成随机动作来玩自己,直到一方或另一方获胜。然后它存储代表游戏的列表,并将该列表与 1、0 或 -1 相关联,以表示获胜、平局或失败。
我目前使用的算法很简单;在当前棋盘可能产生的所有游戏中,我发现棋盘上的走法与最多赢和最少输有关,然后我就移到那里。
这几乎适用于任何情况;除了重要的:叉子之外的所有东西。
在这样的情况下:
o - - o - x o - x
- x - > - x - > - x -
- - o - - o o - o
计算机有下一步动作的地方,计算机总是进入一个角落,然后被分叉。
有没有办法仅通过“蛮力”解决井字游戏(不使用最小/最大、启发式、硬编码等)?
【问题讨论】:
-
您确定要在井字游戏上实现机器学习吗?一段时间后,当计算机学会了最优动作时,它永远无法战胜自己:如果两个玩家都做出最优动作,那么结果总是平局。在我看来,您应该将机器学习应用到其他游戏中,例如国际象棋或跳棋。
标签: python artificial-intelligence tic-tac-toe