Alpha-Beta 剪枝算法用于减小极大极小算法所搜索的节点数目,Alpha-Beta 剪枝算法的效率很大依赖于节点的排列,在理想的排序下,算法复杂度为O(b^(d/2)),可以使搜索节点的数量减小一半,从而使在相同时间下的搜索深度增加一倍。在随机排序下,算法复杂度平均为O(b^(d*3/4))
算法使用了两个值,分别为alpha和beta,分别代表最佳得分的最小下界和最大上界,最初alpha,beta被设为无穷大和无穷小,随着搜索的进行,这个上界和下界逐渐收敛。
1) 任何max节点的alpha值大于其父节点的beta值,则把该节点剩余的枝剪去,因为这说明在该节点之前至少有一个节点的alpha值比它的上界要小,而父节点是min节点,所以这个节点明显不是min节点所想要的。或者说这个节点对对手有利。
2) 同理任何min节点的beta值小于其父节点的alpha值,则把该节点剩余的枝剪去。
下面引用一个wiki上的例子
上图中第4层的4 beta =