5xt tictactoe ai的最佳算法,连续使用4个

时间:2016-12-14 05:53:20

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

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

2 个答案:

答案 0 :(得分:0)

由于您已经提到过minimax算法,我想建议一个稍微复杂的minimax变体,称为alpha-beta pruning。 Alpha-beta修剪避免了一部分称为修剪的搜索空间。我鼓励你阅读article

您可以浏览搜索树直到深度5或您的时间允许的任何时间。请注意,我不是说alpha-beta修剪是最好的,但我建议修剪技术可以在时间复杂度方面优于minimax。

其他资源:

答案 1 :(得分:0)

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

首先,当然是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)个可能的状态,所以使用一台体面的动力机器,你可以解决游戏,为你提供完美的评估功能。