关于alpha beta修剪的随机性和minmax算法

时间:2016-04-30 07:28:34

标签: algorithm random artificial-intelligence alpha-beta-pruning minmax

在alpha beta算法中随机选择一个节点的子节点比按顺序选择节点有更好的机会吗?

这是伪代码,我的添加标有***。

SELECT DISTINCT ld.ProductId, ld.UnitPrice FROM LandingDetails ld JOIN LandingHeaders lh ON ld.LandingId = lh.LandingId
WHERE EXISTS (SELECt 1 From LandingDetails ldx WHERE ldx.ProductId = ld.ProductId AND ldx.UnitPrice != ld.UnitPrice)

我在连接四游戏中运行了一个小样本,它似乎运行得更快一点,但是当我实际计算有无随机性的截止值时,有更多的截止值没有随机性。这有点奇怪。

是否有可能证明它更快(或更慢)?

1 个答案:

答案 0 :(得分:1)

  

在alpha beta算法中随机选择一个节点的子节点比按顺序选择节点有更好的机会吗?

这取决于。没有明确随机化的孩子在什么顺序?

当移动列表已按分数排序时,会发生最佳截止(最高量的alpha-beta修剪) - 也就是说,最佳移动首先发生,然后发生第二次,依此类推。

当然,如果我们已经知道最好的举动是什么,我们就不需要首先搜索它。

然后,有多少游戏引擎会缓存先前对特定位置的评估,并根据之前的分数对移动表进行排序(假设先前已评估过该位置)。这样的缓存分数通常不再准确,因为事件视界现在更进一步,但使用它们可以作为一个很好的搜索指南。