关于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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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