猿问

Alpha Beta 修剪算法的捆绑根

我无法理解为什么 alpha-beta 修剪算法不应该在这里修剪 C?


这是我的终端输出:


eval A

min 2 min1 -9223372036854775807 10.0

eval B

min 2 min2 10.0 10.0

*** FAIL: test_cases/q3/6-tied-root.test

***     Incorrect generated nodes for depth=3

***         Student generated nodes: A B max min1 min2

***         Correct generated nodes: A B C max min1 min2

***     Tree:

***         max

***        /   \

***     min1    min2

***      |      /  \

***      A      B   C

***     10     10   0

我的理解是,一旦 B 被评估,min2 将看到 max 不会选择任何低于 10 的值,因此,即使找到较小的值 (x<=10) 也不会产生影响。在这种情况下,只有当 B 大于 10 时,min2 才会被激励查看 C。


月关宝盒
浏览 100回答 1
1回答

Cats萌萌

我的理解是,一旦 B 被评估,min2 将看到 max 不会选择任何低于 10 的值,因此,即使找到较小的值 (x<=10) 也不会产生影响。这是正确的,可以使用在线模拟器进行验证(例如http://homepage.ufp.pt/jtorres/ensino/ia/alfabeta.html或https://raphsilva.github.io/utilities/minimax_simulator/):只有当 B 大于 10 时,min2 才会被激励查看 C。同样正确:min2还必须检查CA 是否小于10。会不会是错误的测试用例?
随时随地看视频慕课网APP

相关分类

Python
我要回答