【问题标题】:How can I create an AI for tic tac toe in Python using ANN and genetic algorithm?如何使用 ANN 和遗传算法在 Python 中为井字游戏创建 AI?
【发布时间】:2016-08-31 14:18:29
【问题描述】:

我对机器学习领域非常感兴趣,最近我有了一个关于接下来几周的项目的想法。
基本上,我想创建一个可以在井字游戏中击败所有人的 AI。对于每个 n*n 棋盘尺寸,算法必须可扩展,甚至可能适用于其他尺寸(例如,对于游戏的 3D 模拟)。
另外我不希望算法提前知道游戏的任何内容:它必须自己学习。所以没有硬编码的 if,也没有监督学习。
我的想法是对主要算法本身使用人工神经网络,并通过使用遗传算法对其进行训练。所以我只需要编写游戏规则,然后每个与自己战斗的群体都应该从头开始学习
这是一个大项目,我不是这个领域的专家,但我希望,带着这样的目标,能学到很多东西。

  • 首先,这可能吗?我的意思是,是否有可能在合理的时间内达到一个好的结果?
  • Python 中有没有可以用于这个项目的好的库? Python 是否适合此类项目?

【问题讨论】:

  • tic-tac-toe 是zero sum game,因此它可能不是您想要完成的游戏的最佳选择。如果双方都知道自己在做什么,井字游戏总是以平局告终。

标签: python neural-network artificial-intelligence genetic-algorithm tic-tac-toe


【解决方案1】:

是的,这是可能的。但是你必须事先告诉你的 AI 游戏规则(嗯,这是有争议的,但如果你这样做,表面上会更好——它会更好地定义你的搜索空间)。

现在,原版井字游戏太简单了 - 一个 minmax 搜索就足够了。扩大维数或棋盘大小确实为更高级的算法提供了条件,但即便如此,搜索空间还是相当简单(维数增加的代数性质导致搜索空间的轻微变换,这仍然应该可以通过更简单的方法来处理)。

如果您真的想在某个问题上投入大量的机器学习技术,请再看一下国际象棋(深蓝真的只是蛮力逼出傻瓜)。 Arimaa 对这个应用程序也很感兴趣。你也可以考虑看看围棋(也许从 AlphaGo 上的一些工作开始)

这是我的两分钱

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多