Alpha-Beta剪枝(Alpha Beta Pruning)
Alpha-Beta剪枝算法(Alpha Beta Pruning)
[说明] 本文基于<<CS 161 Recitation Notes - Minimax with Alpha Beta Pruning>>,文中的图片均来源于此笔记。
Alpha-Beta剪枝用于裁剪搜索树中没有意义的不需要搜索的树枝,以提高运算速度。
假设α为下界,β为上界,对于α ≤ N ≤ β:
若 α ≤ β 则N有解。
若 α > β 则N无解。
下面通过一个例子来说明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(第三层)根本不会选取第二个方案,多考虑也是浪费.
B(第二层)要使得A利益最小,则B(第二层)的第二个方案不能使得A的获利大于β, 也就是3. 但是若B(第二层)选择第二个方案, A(第三层)可以选择第一个方案使得A获利为15, α=15, β=3, α > β, 故不需要再考虑A(第三层)的第二个方案, 因为B(第二层)不会选择第二个方案.
A(第一层)使自己利益最大,也就是A(第一层)的第二个方案不能差于第一个方案, 但是A(第三层)的一个方案会导致利益为2, 小于3, 所以A(第三层)不会选择第一个方案, 因此B(第四层)也不用考虑第二个方案.
当A(第三层)考虑第二个方案时,发现获得利益为3,和A(第一层)使用第一个方案利益一样.如果根据上面的分析A(第一层)优先选择了第一个方案,那么B不再需要考虑第二种方案,如果A(第一层)还想进一步评估两个方案的优劣的话, B(第二层)则还需要考虑第二个方案,若B(第二层)的第二个方案使得A获利小于3,则A(第一层)只能选择第一个方案,若B(第二层)的第二个方案使得A获利大于3,则A(第一层)还需要根据其他因素来考虑最终选取哪种方案.
Alpha-Beta剪枝(Alpha Beta Pruning)相关推荐
- 五子棋AI算法第三篇-Alpha Beta剪枝
剪枝是必须的 五子棋AI教程第二版发布啦,地址:https://github.com/lihongxun945/myblog/labels/%E4%BA%94%E5%AD%90%E6%A3%8BAI% ...
- alpha-beta剪枝五子棋c语言,五子棋AI算法第三篇-Alpha Beta剪枝
剪枝是必须的 上一篇讲了极大极小值搜索,其实单纯的极大极小值搜索算法并没有实际意义. 可以做一个简单的计算,平均一步考虑 50 种可能性的话,思考到第四层,那么搜索的节点数就是 50^4 = 6250 ...
- 基于python的AI五子棋实现(极大极小值搜索和alpha beta剪枝)
1.极大极小值搜索介绍 人机博弈是人工智能的重要分支,人们在这一领域探索的过程中产生了大量的研究成果,而极小化极大算法(minimax)是其中最基础的算法,它由Shannon在1950年正式提出. M ...
- 五子棋AI算法-Alpha Beta剪枝
上一篇讲了极大极小值搜索,其实单纯的极大极小值搜索算法并没有实际意义. 可以做一个简单的计算,平均一步考虑 50 种可能性的话,思考到第四层,那么搜索的节点数就是 50^4 = 6250000,在我的 ...
- alpha,beta剪枝详解
α,β剪枝详解\alpha,\beta剪枝详解α,β剪枝详解 示例图 步骤详解 基础原理 这里我们先要理解什么是α,β\alpha,\betaα,β剪枝:α\alphaα是下界,β\betaβ是上界. ...
- Java中Beta、Alpha、RC、RELEASE、GA、SNAPSHOT等版本分别代表什么意思?
这两天 Apache Log4j2 的漏洞被闹的沸沸扬扬,一方面是大家热衷于炒作,另一方面是好久没有热闹的消息了,沉寂了太久,需要爆发一波! 回归理性来看,Apache 这波漏洞修复,来来回回发了好几 ...
- 测试中的Alpha(α)、Beta(β)和Gamma(γ)
Alpha(α).Beta(β)和Gamma(γ) Beta,目前普遍认为是"测试"的意思.广义上对测试有着三个传统的称呼:Alpha(α).Beta(β)和Gamma(γ),用来 ...
- 【博弈论】极小极大搜索(Minimax Algorithm)与α-β剪枝(Alpha-Beta Pruning)
文章目录 一.极大极小搜索(Minimax Algorithm) 二.α-β剪枝(Alpha-Beta Pruning) 三.解题技巧 一.极大极小搜索(Minimax Algorithm) 在零和博 ...
- R语言并行计算 deviation of null beta diversity(beta多样性零偏差)
群落构建分析是微生物生态学分析的重要组成部分,成为目前文章发表的热点技术.之前我们介绍了计算beta-NTI(beta nearest taxon index)来进行群落构建分析(https:// ...
- Beta分布(Beta Distribution)
定义: beta分布可以看作一个概率的概率分布,当你不知道一个东西的具体概率是多少时,它可以给出了所有概率出现的可能性大小. 举一个简单的例子,熟悉棒球运动的都知道有一个指标就是棒球击球率(batti ...
最新文章
- windowskb2685811补丁_KB898461补丁
- MongoDB 计划从“Data Sprawl”中逃脱
- 【转】Go Micro(2)——微服务工具箱
- 初三中考比一模能提高多少分?
- oracle用户密码规则,使用Oracle自带profile以及函数简单设定Oracle用户名密码规则...
- MFC m_pMainWnd
- surface 3安装android x86,Android-x86 9.0-r2稳定版发布 修复Microsoft Surface 3音频问题
- 17. PHP 表单处理
- 深度学习图像分类(五): ResNet
- Simscape Multibody 多体动力学仿真教程(一)
- 超分算法之SRCNN
- 008 解决问题的策略 转化(苏教版 五下)
- flask自定义过滤器,flash,form表单
- 在微信小游戏中开发一个贪食蛇
- 序列化Serializable serialVersionUID的作用
- 10招教你练就“最强大脑“”
- ping命令简单总结
- php模式设计之 适配器模式
- 甲方乙方项目管理的差别
- 杰理之开FM会串linein【篇】
热门文章
- App界面交互设计规范
- 用函数递归的方法解决汉诺塔问题
- 公司以最低工资标准缴纳五险一金,工资分成2次发放合法吗?
- 李弘毅机器学习:第四章—梯度下降法
- python文件打不开 环境变量错误,《自拍教程27》环境变量的常见错误,环境变量错误...
- Vue3 UI组件库对比,Naive UI、Element Plus、 Ant Design Vue
- qq邮箱服务器连接不上,无法登录
- WebRTC Native M96 回调音频裸数据IAudioFrameObserver--采集和播放语音混音后的数据(onMixedAudioFrame)
- Bellhop 海底地形起伏条件下的传播特性
- Matlab:Matlab软件之Simulink的简介、特点、使用方法、界面介绍之详细攻略