【发布时间】:2016-04-30 07:28:34
【问题描述】:
在 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
我在一个四人连线游戏中运行了一个小样本,它似乎运行得更快了一点,但是当我实际计算有和没有随机性的截止值时,会有更多没有随机性的截止值。这有点奇怪。
是否有可能证明它更快(或更慢)?
【问题讨论】:
标签: algorithm random artificial-intelligence alpha-beta-pruning minmax