理解Alpha-Beta 剪枝算法

Alpha-Beta剪枝算法是一种优化极小化极大算法的搜索策略,通过裁剪无用分支提高运算效率。本文详细解释了算法原理,并通过实例演示了如何在搜索树中应用Alpha-Beta剪枝。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Alpha-beta剪枝是一种搜索算法,用以减少极小化极大算法(Minimax算法)搜索树的节点数。裁剪搜索树中没有意义的不需要搜索的树枝,提高运算速度。

搜索中传递两个值。
第一个值是Alpha,即搜索到的最好值,任何比它更小的值就没用了。(本方最少要得到的值)
第二个值是Beta,即对于对手来说最坏的值。(对方最多能给的值)

下面通过一个例子来说明Alpha-Beta剪枝算法。

在这里插入图片描述

上图为整颗搜索树。这里使用极小极大算法配合Alpha-Beta剪枝算法,正方形为自己(A),圆为对手(B)。

初始设置α为负无穷大,β为正无穷大。

在这里插入图片描述
对于B(第四层)而已,尽量使得A获利最小,因此当遇到使得A获利更小的情况,则需要修改β。这里3小于正无穷大,所以β修改为3。在这里插入图片描述
(第四层)这里17大于3,不用修改β。
在这里插入图片描述
对于A(第三层)而言,自己获利越大越好,因此遇到利益值大于α的时候,需要α进行修改,这里3大于负无穷大,所以α修改为3。
在这里插入图片描述
B(第四层)拥有一个方案使得A获利只有2,α=3, β=2, α > β, 说明A(第三层)只要选择第二个方案, 则B必然可以使得A的获利少于A(第三层)的第一个方案。

这样就不再需要考虑B(第四层)的其他候选方案了,因为A(第三层)根本不会选取第二个方案,多考虑也是浪费。

在这里插入图片描述
根据第三层A的3,修改第二层B的β值。

B(第二层)要使得A利益最小,则B(第二层)的第二个方案不能使得A的获利大于β, 也就是3. 但是若B(第二层)选择第二个方案, A(第三层)可以选择第一个方案使得A获利为15, α=15, β=3, α > β, 故不需要再考虑A(第三层)的第二个方案, 因为B(第二层)不会选择第二个方案。

在这里插入图片描述
当A(第三层)考虑第二个方案时,发现获得利益为3,和A(第一层)使用第一个方案利益一样。

如果根据上面的分析A(第一层)优先选择了第一个方案,那么B不再需要考虑第二种方案,如果A(第一层)还想进一步评估两个方案的优劣的话, B(第二层)则还需要考虑第二个方案。

若B(第二层)的第二个方案使得A获利小于3,则A(第一层)只能选择第一个方案,若B(第二层)的第二个方案使得A获利大于3,则A(第一层)还需要根据其他因素来考虑最终选取哪种方案。


α裁剪 与 β裁剪
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值