【问题标题】:Artificial Intelligence for a 'Blokus' game (1-4 Player)用于“Blokus”游戏的人工智能(1-4 人)
【发布时间】:2015-07-24 16:55:01
【问题描述】:

我们正在开发一款基于 Blokus 游戏的小型 Java 游戏。 Blokus-Manual

我是一名 Java 初学者,并计划实施高级人工智能。我们已经有了一个随机 AI(选择一个随机的有效移动)和一个具有简单移动评级机制的 AI。我们还想要一个尽可能好(或至少非常好;))的 AI。

问题是:哪种人工智能概念适合我们的目的? minimax-algorithm 似乎是一个有效的选择,但你如何将它调整到 4 人游戏中呢?像blokus这样的游戏有更好的概念吗?

已经谢谢了:)

【问题讨论】:

标签: java artificial-intelligence


【解决方案1】:

Min-max 在 4 人游戏中很难实现,因为:

  • 决策树呈指数增长,因此您将受到内存和/或计算时间的限制,达到log(medMoves)=N 步骤。对于一个 4 人游戏,这下降到 N/4。例如,如果 N 为 8,您将只能看到每个玩家前进 2 步。
  • 玩家串通很难解释。在现实游戏中,一些玩家可能会互相帮助(即使他们不在同一支球队)。这将导致他们偏离个人的“最大”。

如果您想要 Minmax,您将不得不进行大量修剪以使其可行。我的建议是学习一些模式,以便人工智能知道如何做出反应。这可以通过神经网络或经过一些调整的强化学习来完成。

这些模式可以是静态的(您可以手动或以编程方式创建输入场景),也可以是动态的(创建所有有效的场景并随机选择得分最高的动作)。

【讨论】:

    【解决方案2】:

    从理论上讲,“尽可能好的 AI”是完美的 AI,即在游戏中的任何时刻都完全了解游戏状态的 AI(如果完整的游戏状态不为人类所知)球员)。对于每个人都拥有完整游戏状态知识的游戏(如 Blokus),一个尽可能好的 AI 是一种可以尝试预测最佳动作的 AI(如您所说,这里是 minimax)。您还可以搜索遗传算法和模拟退火,因为它们是有效的,这取决于您想要什么。此外,您可以对超过 2 名玩家使用 minimax。

    【讨论】:

      【解决方案3】:

      我会推荐极小极大算法。您可以添加一件事以使其更高效(这意味着您应该能够在未来更深入地进行更多操作)是 alpha-beta 修剪。

      极小极大搜索的问题在于,它必须检查的游戏状态数量在树的深度上呈指数增长。不幸的是,我们无法消除指数,但事实证明我们可以有效地将其减半。

      引用来自 Stuart Russel 和 Peter Norvig 的 Artificial Intelligence: A Modern Approach第三版 的第 5.3 章。它支撑着我的显示器,我在大学的一些课程中使用它。我知道人们不经常参考关于 SO 的书籍,但它非常相关。我已经广泛使用它,我非常推荐它,因为它既易于理解,又涵盖了广泛的 AI 内容。

      available on amazon 售价 104 美元,或者 * 咳咳 * 如果你没有那么多钱买一本随处可见的教科书,我相信你可以在网上找到它。在线查找 minimax 算法和 alpha beta 剪枝也应该会得到不错的结果。

      我认为,让 Minimax 成为一个糟糕选择的唯一情况是,游戏状态对于任何给定玩家来说只能部分观察到(他们并不知道正在发生的一切),或者如果游戏不是确定性(它具有随机元素)。因为 Blokus 都不是这种情况,所以我认为您选择 Minimax 是一个很好的选择。

      AI 领域在教科书(第 5 章:对抗性搜索)中称为对抗性搜索,因此使用该术语在线查找更多信息可能会为您提供更多有用的信息,或帮助您找到示例 Java 实现。我不认为这是初学者的任务,但如果你制作了游戏并且可以选择随机的有效动作,听起来你可以做到。继续努力!

      【讨论】:

        【解决方案4】:

        真的。 Blokus 的 Minimax。您知道仅第一步就有 400 万多种组合,对吧?

        在游戏早期忘记 Minimax。你需要别的东西。

        在游戏后期,您可以使用 Minimax 和游戏状态表数据库来粉碎对手。但在游戏初期,随着连接器数量的增加,你需要尝试一些不同的东西。

        你自己玩过 Blokus 吗?

        【讨论】:

          【解决方案5】:

          2011 年,此后进行了多次更新,一个名为 Pentobi 的程序 已经发布了,非常强大Blokus播放程序。

          事实上,迄今为止唯一已知的,它根本没有任何好处,而且它 远远超过其他所有。它将击败许多优秀的人类玩家,甚至可以为他们的钱提供最好的竞争。

          它的主要算法是蒙特卡洛搜索树,但它也使用了一本关于开口的“书”和一些启发式算法。

          有文档和下载信息在 http://pentobi.sourceforge.net/

          【讨论】:

            【解决方案6】:

            我发现使用非常简单的启发式方法可以提供相当智能的播放器,即使只使用 1 步前瞻。我实现了我所谓的“空间启发式”,它采用棋盘状态并通过将与每个放置的棋子相邻的所有方块着色为该棋子的颜色来填充它。然后,一旦泛滥终止,就会计算彩色方块的总数。空间启发式粗略估计了游戏要求或占用棋盘空间的程度,并且优于随机游戏。也可以与 minimax 或 MCTS 结合使用以变得更强大。

            【讨论】:

              猜你喜欢
              • 1970-01-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
              相关资源
              最近更新 更多