一、前言
人机博弈是人工智能的重要分支,人们在这一领域探索的过程中产生了大量的研究成果,而极小化极大算法(minimax)是其中最基础的算法,它由Shannon在1950年正式提出。Alpha-beta剪枝的本质就是一种基于极小化极大算法的改进方法。Knuth等人在1975年优化了算法,提出了负极大值(negamax)概念,这一概念的原理本质上与极小化极大值算法并无不同,但是却不需要系统区分取极大值者和极小值者,使得算法更加统一。此外,Knuth等人也对alpha-beta剪枝算法的搜索效率进行了深入的研究,Pearl也在1982年证明了alpha-beta剪枝原理的最优性。
二、极大极小值算法(Minimax Search)
1. 极大极小算法
在人机博弈中,双方回合制地进行走棋,己方考虑当自己在所有可行的走法中作出某一特定选择后,对方可能会采取的走法,从而选择最有利于自己的走法。这种对弈过程就构成了一颗博弈树,双方在博弈树中不断搜索,选择对自己最为有利的子节点走棋。在搜索的过程中,将取极大值的一方称为max,取极小值的一方称为min。max总是会选择价值最大的子节点走棋,而min则相反。这就是极小化极大算法的核心思想。
如果节点是终止节点:应用估值函数求值;
如果节点是max节点:找到每个子节点的值,将其中最大的子节点值作为该节点的值;
如果节点时min节点:找到每个子节点的值,将其中最小的子节点值作为该节点的值。
2. 估值函数
估值函数使用来给每一个局面给出一个估值,用判断博弈树中当前局面的形势。在传统的棋类游戏智能系统中,估值函数一般是人为指定的,对棋类游戏智能的水平有决定性作用。
估值函数的形式不是固定的,它的输入一般是一个局面的信息,输出是一个表明相应局面好坏程度的数值。为了说明极小化极大算法,例如规定井字棋的估值函数为:玩家X还存在可能性的行、列、斜线数减去玩家O还存在可能性的行、列、斜线数。
3. α-β pruning search
3.1. alpha-beta剪枝原理
极小化极大算法最大的缺点就是会造成数据冗余,而这种冗余有两种情况:①极大值冗余;②极小值冗余。相对应地,alpha剪枝用来解决极大值冗余问题,beta剪枝则用来解决极小值冗余问题,这就构成了完整的Alpha-beta剪枝算法。接下来对极大极小值冗余和具体剪枝过程作简要介绍。
Alpha剪枝:极大值冗余如图所示,这是一颗博弈树的某一部分,节点下的数据为该节点的值,节点B的值为20,节点D的值为15,这里,C为取极小值的min节点,因此节点C的值将小于等于15;而节点A为取最大值max的节点,因此A只可能取到B的值,也是就说不再需要搜索C的其他子节点E和F的值就可以得出节点A的值。这样将节点D的后继兄弟节点减去称为Alpha剪枝。
Beta剪枝:极小值冗余如图所示,这也是一颗博弈树的某一部分,节点B的值为10,节点D的值为19,这里,C节点为取最大值max节点。因此,C的值将大于等于19;节点A为取极小值的min节点,因此A的值只能取B的值10,也就是说不再需要求节点C的子节点E和F的值就可以得出节点A的值。这样将节点D的后继兄弟节点减去称为Beta剪枝。
3.2. α-β剪枝实现
alpha: 在MAX轮次会被更新,用来记录当前节点的各个子节点中的最大值,如果子节点被剪枝了,那就是抛去被裁剪部分之后的最大值。
beta: 在MIN轮次会被更新,用来记录当前节点的各个子节点中的最小值,如果子节点被剪枝了,那就是抛去被裁剪部分之后的最小值。
剪枝条件:α>=β
初始化:是递归调用,每一个节点的alpha的初始值均是负无穷,因为alpha要负责记录最大值;每一个节点的beta的初始值均是正无穷,因为beta要负责记录最小值。
最清晰易懂的MinMax算法和Alpha-Beta剪枝详解
3.3 α-β search
The α-value of a MAX-node is set to the current largest final backed-up value of itssuccessors. That is, you can not back up a node until you have finished looking at itschildren.
The β-value of a MIN-node is set to the current smallest final backed-up value of itssuccessors.
α cut-off – search is discontinued below a MIN-node whose β value is less than or equal to the α value of any of its MAX-node ancestors.
β cut-off – search is discontinued below a MAX-node whose α value is greater than or equal to the β value of any of its MIN-node ancestors.
References
https://www.w3cschoool.com/adversarial-search
Alpha-beta剪枝 -机器之心文章来源:https://www.toymoban.com/news/detail-765378.html
Minimax Search以及alpha-beta剪枝文章来源地址https://www.toymoban.com/news/detail-765378.html
到了这里,关于计算机博弈算法(Adversarial Search)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!