【问题标题】:ideas regarding artificial intelligence in simple game (for ex : Tic Tac Toe) C++ [closed]关于简单游戏中人工智能的想法(例如:井字游戏)C++ [关闭]
【发布时间】:2011-07-07 20:23:35
【问题描述】:

我完全不知道如何在游戏中制作人工智能(我将把它应用到一个简单的井字游戏中)

我目前的想法是制定一系列可能的选择来赢得比赛(比如第 1 行中的 3 X = 获胜或其他东西) 然后让计算机尝试用其中一个数组填充网格,但是如何从其他选项中选择最合适的选项,以及如何使其变得聪明/愚蠢(困难) 如果可能的话,我需要一个算法来使用,如果可能的话,我需要一本书来填补我大脑的空白=P

最好的问候

【问题讨论】:

  • 我读到了一些基于 Alpha/Beta-Search 的井字游戏 AI 解决方案。不幸的是,我不记得我在哪里读到的。
  • 你能解释一下什么是 alpha/beta 搜索吗?我是自学的,数学对我来说不是问题,但是我所处的水平不允许我理解这样的事情(如果它是数学的话=P)
  • 很抱歉,但我不擅长教育他人 :) 但是您应该点击@Lirik 提供的 minimax 搜索链接,该链接使用 alpha/beta-search。
  • Tic/Tac/Toe 的问题游戏空间非常小,您实际上可以预先计算所有可能的游戏(大多数游戏都是另一个游戏的简单轮换)。这是解决方案:xkcd.com/832

标签: c++ algorithm artificial-intelligence


【解决方案1】:

查看Game trees上的wikipedia页面,tic-tac-toe实际上是用作示例。

【讨论】:

    【解决方案2】:

    这里有完整的解决方案:

    礼貌:xkcd

    【讨论】:

    • +1 仅用于 xkcd 参考;阅读问题时进入我脑海的第一件事,然后我向下滚动并在这里看到它:-)
    【解决方案3】:

    井字游戏是Zero-sum game 的一种类型,此类游戏的“常见”方法是Minimax algorithm。它非常高效和快速,尤其是与良好的启发式函数结合使用时。

    有一些不错的C++ implementation of Minimax for Tic-Tac-Toe

    更新

    尽管 Minimax 等搜索算法属于 AI 算法类别,但我并不认为它们是 AI 算法。我认为 Minimax 是有效的搜索算法,所以如果你想要一个真正的 AI 算法,我建议你研究机器学习概念,例如:支持向量机、神经网络、遗传算法、遗传编程等。然而,几乎所有的机器为了制作井字游戏代理/机器人,学习算法将是一种过度杀伤力。

    【讨论】:

    • Negamax 在零和游戏中比完全极小极大要好一些。
    • Lirik:它们肯定是人工智能算法。是什么让你认为搜索算法不属于人工智能算法的范畴。你认为深蓝用什么算法击败了卫冕世界象棋冠军?我认为您的困惑在于您将 ML 和 AI 组合在一起,就好像它们是同义词一样。你列出的所有算法都是 ML,搜索算法不是 ML,但 AI 肯定除了 ML 算法之外还有很多其他的东西。
    • @Jeremy,你是对的,所以我已经澄清了我的答案。 Minimax被认为是一种AI算法,但我觉得搜索算法和AI算法之间应该有更大的区别。这是我个人对此事的看法。
    • 好的,告诉我们什么是人工智能算法而不是搜索算法。
    • @Charlie,它们仍然是搜索算法,但我认为 ML 算法更好地模拟智能,因为它们在摆脱局部最大值/最小值时更加灵活,并且通常是不确定的。在 ML 中,相同的输入可能导致不同的算法。这种“行为”给人以创造力和智慧的印象,而像 Minimax 这样的搜索算法几乎可以保证为相同的输入提供完全相同的输出。
    【解决方案4】:

    井字游戏是博弈论中的“已解决”游戏。这意味着有能力判断一场或另一场比赛的输赢。

    我认为link 可能会对您有所帮助。

    【讨论】:

      【解决方案5】:

      像井字游戏这样的简单游戏的一种可能性是蛮力。如果你有一个获胜的举动,那就去做吧;否则,如果您的对手将有一个获胜的移动块;否则递归考虑所有可能的移动。

      【讨论】:

      • 想了想,这也是我的想法,如果井字游戏不能让我学习人工智能,我会搬过去
      【解决方案6】:

      看,几乎每个 AI 问题都归结为某种搜索。在井字游戏的情况下,您正在搜索所有可能的棋盘位置。有 9 个单元格和 3 个值,因此只有 39 个可能的板。如果您从一开始就生成它们,那么您的搜索将非常简单:从您当前的位置开始,查看所有为您的一方带来胜利的路径,然后选择它。

      【讨论】:

        猜你喜欢
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多