【问题标题】:Best algorithm for 5x5 tictactoe ai using 4 in a row连续使用 4 个 5x5 tictactoe ai 的最佳算法
【发布时间】:2016-12-14 05:53:19
【问题描述】:

如果我使用 4 行创建 5x5 tictactoe ai,最好使用什么算法。我们应该使用的原始算法是极小极大,但我们每轮只有 10 秒。

【问题讨论】:

  • 使用 alpha-beta 和评估函数。将搜索树停止在深度为 5 或在那段时间内可能实现的任何目标。
  • 谁开局就有制胜法宝。

标签: algorithm artificial-intelligence tic-tac-toe


【解决方案1】:

如果您想构建一个高质量的播放器,您可以实施许多重要的增强功能。

首先当然是alpha-beta pruning,但还有其他几种技术可以使 alpha-beta 修剪更加有效。

其次,由于时间限制很重要,您应该添加迭代深化。也就是说,您首先搜索深度 1,然后搜索深度 2,依此类推。当时间用完时,您会从先前完成的迭代中采取最佳移动。因为树呈指数增长,所以您不会从之前的迭代中真正失去任何东西。 (分支因子为 2 时,开销是因子 2,但随着分支因子的进一步增加,此开销将降至零。)

第三,使用history heuristic 订购您的搜索。在小迭代中,您将学习到更好的状态排序,以便在以后的迭代中更接近最优排序(用于 alpha-beta 修剪)。

第四,使用transposition table 避免重复状态。搜索树时会发生许多转置,及早检测它们将导致显着节省。 (这可能会比历史启发式产生更大的影响。)

最后,构建可能的最佳评估函数。你在评估状态方面做得越好,你玩的就越好。 (在极限情况下,完美的评估只需要 1 层搜索即可完美播放。)

当然,如果你能解决游戏,那就去做吧。 5x5 tic-tac-toe 中只有 3^25 (847,288,609,443) 种可能的状态,因此使用动力强劲的机器可以解决游戏,为您提供完美的评估功能。

【讨论】:

    【解决方案2】:

    既然您提到了极小极大算法,我想向您推荐一个稍微复杂的极小极大变体,称为alpha-beta pruning。 Alpha-beta 剪枝避免了称为剪枝的搜索空间的一部分。我鼓励你阅读这个article

    您可以遍历搜索树直到深度 5 或您的时间允许的任何时间。请不要这样说,我并不是说 alpha-beta 剪枝是最好的,但我建议剪枝技术在时间复杂度方面可能比 minimax 更有优势。

    其他资源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-01
      • 2017-09-13
      • 2019-11-05
      • 2010-12-24
      相关资源
      最近更新 更多