Alpha-Beta剪枝算法原理

1. 前言

前文:极小化极大(Minimax)算法原理
极小化极大算法在完全信息零和博弈中,基于己方努力使得在N步后优势最大化(即评估函数输出值最大化)和对方努力使得N步后己方优势最小化这两个出发点,构建决策树。在决策树上通过这两个出发点的内在逻辑进行搜索,最后给出行动策略。
显然,极小化极大算法需要展开整个决策树,对于局面复杂的问题,其搜索空间将会非常大。
同时,我们可以清晰地看到有部分节点是否被搜索不会影响最后的结果,因此,无需展开此类节点以及计算此类节点的子节点的估值。
通过上述方法,可节省算法的搜索时间。这种不展开搜索不必要节点的算法,被称为——Alpha-Beta剪枝算法。

2. 算法原理

Alpha-Beta剪枝算法可加速极小化极大算法的搜索过程。在构建和搜索决策树时,每个节点除存储局面估值之外,还存储可能取值的上下界。下界即为Alpha值,上界即为Beta值。

2.1 Alpha剪枝

如图1所示,在对max节点的子节点进行搜索时,子节点是否需要进一步展开搜索受到其兄弟节点值的影响。
Alpha-Beta剪枝算法原理_第1张图片

图1中每个矩形节点为max节点,圆形节点为min节点。节点b的minimax值为3,节点d的minimax值为8,节点e的minimax值为2。因为节点c为一个min节点,其minimax值为其所有子节点minimax值中的最小值。又因为节点a为max节点,其minimax值为其所有子节点minimax值中的最大值。因此,当搜索到节点c的子节点e时,节点c的其余子节点不用展开搜索。
节点e的minimax值为2,节点c为min节点,因此节点c的minimax值必然小于或等于2。又因为节点a为max节点,且其子节点b的minimax值为3,因此节点a的minimax值必然大于或等于3。
反过来考虑:若按照极小化极大算法逻辑,将节点c的子节点全部展开搜索完毕,节点c的minimax值必然不会大于2。又因为节点b的minimax值为3,因此不论搜索完毕后节点c的minimax值取任何不大于2的值,均不会影响节点a的minimax值。最终不会影响决策树根节点的minimax值和相应的行动策略。

2.2 Beta剪枝

如图2所示,在对min节点的子节点进行搜索时,子节点是否需要进一步展开搜索也受到其兄弟节点值的影响。
Alpha-Beta剪枝算法原理_第2张图片

图2中每个矩形节点为max节点,圆形节点为min节点。节点b的minimax值为4,节点d的minimax值为8。因为节点c为一个max节点,其minimax值为其所有子节点minimax值中的最大值。又因为节点a为min节点,其minimax值为其所有子节点minimax值中的最小值。因此,当搜索到节点c的子节点d时,节点c的其余子节点不用展开搜索。
节点d的minimax值为8,节点c为max节点,因此节点c的minimax值必然大于或等于8。又因为节点a为min节点,且其子节点b的minimax值为4,因此节点a的minimax值必然小于或等于4。
反过来考虑:若按照极小化极大算法逻辑,将节点c的子节点全部展开搜索完毕,节点c的minimax值必然不会小于8。又因为节点b的minimax值为4,因此不论搜索完毕后节点c的minimax值取任何不小于8的值,均不会影响节点a的minimax值。最终不会影响决策树根节点的minimax值和相应的行动策略。

3. 算法过程

根据上述原理,Alpha-Beta剪枝算法过程可描述如下:

  1. 开始构建决策树;
  2. 将估值函数应用于叶子节点;
  3. 使用深度优先搜索顺序构建和搜索决策树,传递并更新 α 、 β 、 节 点 m i n i m a x 值 \alpha、\beta、节点minimax值 αβminimax

max结点更新α值(下限),Min结点更新β值(上限)。

  1. 从根结点选择评估值最大的分支,作为行动策略。

3.1 算法过程图解

Alpha-Beta剪枝算法原理_第3张图片
Alpha-Beta剪枝算法原理_第4张图片
Alpha-Beta剪枝算法原理_第5张图片
Alpha-Beta剪枝算法原理_第6张图片
Alpha-Beta剪枝算法原理_第7张图片

你可能感兴趣的:(高级算法)