Alpha-Beta 修剪特例?

Alpha-Beta Pruning special case?

我想了解 alpha-beta 剪枝算法,但有一个具体情况我不明白。

给出 this tree, this 应该是解决方案。 我不明白的是为什么标记为红色的节点应该具有值 19。显然这是一个 "special case" 并且较低的红色节点中的值是 19 因为 3 < 9 < 10 < 19(这是 alpha 的当前值)。然后导致上面的节点也具有值 19.

这对我来说毫无意义,因为这表明最右边的子树中有一个值为 19 的叶子。这完全是错误的,两个节点的值都应该是 10 吗?

这个节点是取值19(alpha的值)还是10(子节点中的最大值)取决于不同的alpha-beta算法中存在的变体。当最大值小于 alpha 时,一些算法将分配 alpha 的值,而其他算法将分配较小的值(因此位于 alpha-beta window 之外)。类似的事情发生在 beta 上。

无论采用哪种方法,都不影响最佳着法的选择。 alpha-beta window 表示任何从下方冒出且位于 alpha-beta window 之外的值都不重要。已经有一个更好的已知变体。

在这种情况下,最佳变体通过根的中间子节点运行。最大化玩家可以确定至少可以达到 19。通过将 10 或 19 分配给第三个选项可以得出相同的结论:这并不比我们已有的更好。