Alpha-Beta剪枝算法原理

1. 前言

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

2. 算法原理

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

2.1 Alpha剪枝

如图1所示,在对max节点的子节点进行搜索时,子节点是否需要进一步展开搜索受到其兄弟节点值的影响。
在这里插入图片描述

图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节点的子节点进行搜索时,子节点是否需要进一步展开搜索也受到其兄弟节点值的影响。
在这里插入图片描述

图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 算法过程图解

图3
图4
图5
图6
图7

  • 35
    点赞
  • 137
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RuizhiHe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值