极大极小算法原理

参考书籍《人工智能基础教程》

该算法的搜索策略是考虑双方若干步之后,从可能的步中选择相对较好的走发来走。

以MAX表示程序方,MIN表示对手方,P表示局势,f(P)是根据当前局势做出的估计函数。

F(p)>0表示对MAX有利的局势

F(p)<0表示对MIN有利的局势

F(p)=0表示局势均衡

 

该算法的基本思想是:

(1)      轮到MIN走时,MAX应考虑最坏的情况,也即f(p)取极小的情况

(2)      轮到MAX走时,MAX应考虑最好的情况,也即f(p)取极大的情况

(3)      当评价往回倒推,相应于两位棋手的对抗策略,不同层交替的使用(1)(2)两种方法向上传递倒推值。

 

算法优化

α-β剪枝算法

在上述的极大极小算法中,MIN和MAX过程将所有的可能性省搜索树,然后再从端点的估计值倒推计算,这样的效率非常低下。而α-β算法的引入可以提高运算效率,对一些非必要的估计值进行舍弃。其策略是进行深度优先搜索,当生成结点到达规定深度时,立即进行静态估计,一旦某一个非端点的节点可以确定倒推值的时候立即赋值,节省下其他分支拓展到节点的开销。

剪枝规则:

(1)      α剪枝,任一极小层节点的β值不大于他任一前驱极大值层节点的α值,即α(前驱层)≥β(后继层),则可以终止该极小层中这个MIN节点以下的搜索过程。这个MIN节点的倒推值确定为这个β值。

(2)      β剪枝,任一极大层节点的α值不小于它任一前驱极小值层节点的β值,即β(前驱层)≤α(后继层),则可以终止该极大值层中这个MAX节点以下的搜索过程。这个MAX节点的倒推值确定为这个α值。


你可能感兴趣的:(极大极小算法原理)