alpha-beta p运行ing 如何降低 运行 时间复杂度?

How does alpha-beta pruning reduce run-time complexity?

我对 alpha-beta p运行ing 如何帮助减少 minimax 算法的 运行 时间感到有点困惑。也许我对 minimax 算法的理解是错误的,但我知道 O(b^d) 中的原始版本 运行s 其中 b 是分支因子,d 是搜索深度。现在使用 alpha-beta p运行ing 我们平均将其减少到 O(b^(3/4)d)。但是生成游戏状态所花费的时间不是仍然需要 O(b^d) 时间吗?是所有状态的生成都没有计入minimax的运行时间,还是我对minimax算法的理解有误?

你是对的,Alpha-Beta 不会降低移动生成的速度。

然而,我们所做的是减少通过 Alpha-Beta-Cutoffs 搜索的游戏分支数量。由于只有在确定搜索到分支后才生成走法,因此不必计算alpha-beta子分支的走法,从而降低了时间复杂度。

在上图中我标记了不需要生成的动作。可以看到,虽然最右边的分支在第2层被截断了,但是leading到层的移动还是会产生。但是 的移动被保存。这是降低复杂性的地方。