该算法的搜索策略是考虑双方若干步之后,从可能的步中选择相对较好的走发来走。
以MAX表示程序方,MIN表示对手方,P表示局势,f§是根据当前局势做出的估计函数。
则
F§>0表示对MAX有利的局势
F§<0表示对MIN有利的局势
F§=0表示局势均衡
该算法的基本思想是:
(1) 轮到MIN走时,MAX应考虑最坏的情况,也即f(p)取极小的情况
(2) 轮到MAX走时,MAX应考虑最好的情况,也即f(p)取极大的情况
(3) 当评价往回倒推,相应于两位棋手的对抗策略,不同层交替的使用(1)(2)两种方法向上传递倒推值。
算法优化
α-β剪枝算法
在上述的极大极小算法中,MIN和MAX过程将所有的可能性省搜索树,然后再从端点的估计值倒推计算,这样的效率非常低下。而α-β算法的引入可以提高运算效率,对一些非必要的估计值进行舍弃。其策略是进行深度优先搜索,当生成结点到达规定深度时,立即进行静态估计,一旦某一个非端点的节点可以确定倒推值的时候立即赋值,节省下其他分支拓展到节点的开销。
剪枝规则:
(1) α剪枝,任一极小层节点的β值不大于他任一前驱极大值层节点的α值,即α(前驱层)≥β(后继层),则可以终止该极小层中这个MIN节点以下的搜索过程。这个MIN节点的倒推值确定为这个β值。
(2)β剪枝,任一极大层节点的α值不小于它任一前驱极小值层节点的β值,即β(前驱层)≤α(后继层),则可以终止该极大值层中这个MAX节点以下的搜索过程。这个MAX节点的倒推值确定为这个α值。
作者:William
来源:CSDN