在 alpha beta 算法中随机选择一个节点的子节点会比按顺序选择它们更有可能被截断吗?
这是我的添加标记为 *** 的伪代码。
function alphabeta(node, depth, α, β, maximizingPlayer)
if depth = 0 or node is a terminal node
return the heuristic value of node
arrange childs of node randomly ***
if maximizingPlayer
v := -∞
for each child of node
v := max(v, alphabeta(child, depth - 1, α, β, FALSE))
α := max(α, v)
if β ≤ α
break (* β cut-off*)
return v
else
v := ∞
for each child of node
v := min(v, alphabeta(child, depth - 1, α, β, TRUE))
β := min(β, v)
if β ≤ α
break (* α cut-off*)
return v
我在一个四人连接游戏中运行了一个小样本,它似乎运行得更快一些,但是当我实际计算有和没有随机性的截止时,有更多没有随机性的截止。这有点奇怪。
是否有可能证明它更快(或更慢)?