我试图了解alpha-beta-pruning算法,但有一个我不理解的具体案例。
鉴于 this tree, this应该是解决方案。 我不知道的是为什么标记为红色的节点应该具有值19.显然这是一个"特殊情况"并且下部红色节点中的值是19,因为3< 9< 10< 19(这是alpha的当前值)。然后,这导致上面的节点也具有值19。
这对我没有意义,因为这表明在最右边的子树中有一个值为19的叶子。这是完全错误的,两个节点都应该具有值10?
答案 0 :(得分:4)
此节点是获得值19(alpha值)还是10(子项中最大值)是不同alpha-beta算法中存在的变体问题。当最大化值小于alpha时,某些算法将分配alpha值,而其他算法将分配较小值(因此位于alpha-beta窗口之外)。测试版也会发生类似的情况。
无论使用哪种方法,它都不会影响最佳移动的选择。 alpha-beta窗口用于指示从alpha-beta窗口之外的下方冒泡的任何值都不重要。已经有一个更好的变种。
在这种情况下,最佳变体通过根的中间子节点运行。最大化玩家可以确定至少可以达到19个。通过为第三个选项分配10或19得出相同的结论:这不是一个比我们已经拥有的更好的举动。