连续使用 4 的 5x5 tictactoe ai 的最佳算法

Best algorithm for 5x5 tictactoe ai using 4 in a row

如果我使用 4 行创建 5x5 tictactoe ai,最好使用什么算法。我们原本应该使用的算法是极小极大算法,但每回合只给我们 10 秒的时间。

既然你提到了minimax算法,我想向你推荐一个稍微复杂的minimax变体,叫做alpha-beta pruning. Alpha-beta pruning avoids a part of the search space which is called pruning. I encourage you to read this article

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

其他资源:

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

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

其次,时间限制很重要,你应该加入迭代深化。也就是说,您首先搜索到深度 1,然后搜索到深度 2,依此类推。当您 运行 超时时,您会从先前完成的迭代中采取最佳移动。因为树呈指数增长,所以您实际上并没有从之前的迭代中丢失任何东西。 (分支因子为 2 时,开销是因子 2,但随着分支因子的进一步增加,此开销将降为零。)

第三,使用 history heuristic 来排序您的搜索。在小迭代中,您将学习更好的状态排序,以便在以后的迭代中更接近最佳排序(对于 alpha-beta p运行ing)。

第四,使用transposition table避免重复状态。搜索树时会发生许多换位,及早发现它们会节省大量资金。 (这可能会比历史启发式产生更大的影响。)

最后,尽可能构建最好的评估函数。您对状态的评估越好,您玩得就越好。 (在极限情况下,完美的评估只需要 1 层搜索就可以完美播放。)

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