关于Alpha-Beta剪枝算法的根节点平局问题

我不明白为什么Alpha-Beta剪枝算法在这里不应该剪掉C?

这是我的终端输出:

eval Amin 2 min1 -9223372036854775807 10.0eval Bmin 2 min2 10.0 10.0*** FAIL: test_cases/q3/6-tied-root.test***     深度=3时生成的节点不正确***         学生生成的节点: A B max min1 min2***         正确生成的节点: A B C max min1 min2***     树:***         max***        /   \***     min1    min2***      |      /  \***      A      B   C***     10     10   0

我的理解是,一旦B被评估,min2会发现max不会选择低于10的任何值,因此,即使找到一个更小的值(x<=10),也不会有任何影响。在这种情况下,只有当B大于10时,min2才有动机去看C。

提前感谢


回答:

我的理解是,一旦B被评估,min2会发现max不会选择低于10的任何值,因此,即使找到一个更小的值(x<=10),也不会有任何影响。

这是正确的,可以通过在线模拟器验证(例如 http://homepage.ufp.pt/jtorres/ensino/ia/alfabeta.htmlhttps://raphsilva.github.io/utilities/minimax_simulator/):

tree_height=2;tree_number_nodes=6;Tree>0,0,2,1,-1000,393.75,30,-1000,1000,-1,-1,undefined,1,1,1,3,1000,225,295,undefined,undefined,0,-1,undefined,2,1,2,4,1000,562.5,295,undefined,undefined,0,-1,undefined,3,2,0,-1,10,225,560,undefined,undefined,1,undefined,undefined,4,2,0,-1,10,450,560,undefined,undefined,2,undefined,undefined,5,2,0,-1,0,675,560,undefined,undefined,2,undefined,undefined,<

只有当B大于10时,min2才有动机去看C。

同样正确:

tree_height=2;tree_number_nodes=6;Tree>0,0,2,1,-1000,393.75,30,-1000,1000,-1,-1,undefined,1,1,1,3,1000,225,295,undefined,undefined,0,-1,undefined,2,1,2,4,1000,562.5,295,undefined,undefined,0,-1,undefined,3,2,0,-1,10,225,560,undefined,undefined,1,undefined,undefined,4,2,0,-1,12,450,560,undefined,undefined,2,undefined,undefined,5,2,0,-1,0,675,560,undefined,undefined,2,undefined,undefined,<


min2 也必须检查 C,如果A小于 10 的话。

这会不会是一个错误的测试用例?

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注