(网上讲的都不是很好理解,贡献一下之前听慕课做的笔记,适合初学者比较简洁明了。)

要想理解α-β剪枝算法,必须从最大最小法的博弈问题讲起!注意不要跳过第一节往下看。

  1. 最大最小法

场景:双方博弈

前提:假设看所有状态节点走完后的最终评估值结果,MAX一方在评估值越大越会赢(+ꝏ一定赢),MIN一方评估值越小越会赢(-ꝏ一定赢)。值为0时平手。当设定考察深度为向后3步时,MAX在s节点选择后继节点时,评估值分别是3,1,则MAX应选择更大的一条路即SA。

(如图,S层看AB第一层,第一层值又取决于第二层,第二层取决于第三层,第二层时MAX作出决定,必选值更大的,因此对应CDEFG的评估值分别为最大的53331;第一层必选值更小的,即AB评估值为3,1。

——这里的假设前提:博弈双方均会选择对自己最有利的方法去做。)

考察深度越深,算法博弈水平越高。不需要生成所有博弈树,只要到规定的深度即可。

2.最大最小法优化:α-β剪枝。

目的是减少博弈树扩展,减少使用内存,增加决策深度。

当前节点为MAX时,取左侧第一个评估值就是α值,为下限,若其他下层节点小于α则可直接剪枝;

当前节点为MIN时,取左侧第一个评估值就是β值,为上限,若其他下层节点大于β则可直接剪枝。

实际使用案例:

下面为自己看图推理的过程:

第四层,CFJLOR都是想取MIN值; 第三层,BIVW都是想取MAX值;

第二层AU想取MIN值; 第一层S想取MAX值。

一层一层来看:首先C想取MIN,就从根节点的DE中,找到MIN值为D(0),则C的值取0,此时将C的值=0,赋给上层的B作为其α值;

B 想取MAX值,就要比较下方的C、F两个结点,F值不知,需要再往F下层看。由于F想取MIN值,先看下层最左边G值为-3,将G的值= -3作为F的β值。

到这里就很明确了:由于B 想取下方结点CF中的最大值、F想取下方结点GH中的最小值,所以不论H的值是多少,最终F的取值一定是小于等于G值的,也就是F此时的β值,-3 ;

而此时再看B ,β= -3,小于α=0 , 所以接下来就没必要再看H 的值了,不论H是多少都改变不了C大于F的命运,因此可以直接把F这一枝直接剪枝!(唱一首destiny……~)

根据以上烦人的推理,总结出的结论就是前文所说的:

当前节点为MAX(此处指B)时,取左侧第一个评估值(此处指C)就是α值,为下限,若其他下层节点(此处指F)小于α则可直接剪枝;

同理推理A\B\I结点及其下方枝叶,也可以得到:

当前节点为MIN(此处指A)时,取左侧第一个评估值(此处指B)就是β值,为上限,若其他下层节点(此处指I)大于β则可直接剪枝。

综上,为了避免每次都死脑细胞的推理一遍,所以α-β剪枝直接给出一个结论,以后直接使用即可避免麻烦。

最大最小法及α-β剪枝算法图解相关推荐

  1. 决策树后剪枝算法(四)最小错误剪枝MEP

    ​  ​​ ​决策树后剪枝算法(一)代价复杂度剪枝CPP  ​​ ​决策树后剪枝算法(二)错误率降低剪枝REP  ​​ ​决策树后剪枝算法(三)悲观错误剪枝PEP  ​​ ​决策树后剪枝算法(四)最小 ...

  2. 算法图解1-二分法与大O表示法

    目录 一,二分法与大O表示法 1.1写在前面 1.2需要具备的知识 1.3二分法 1.4更佳的查找方式 1.4.1代码设计 1.4.2运行时间 1.5大O表示法 1.5.1算法的运行时间以不同的速度增 ...

  3. 决策树准确率低原因_机器学习决策树算法--剪枝算法

    一.剪枝算法决策树生成算法递归地产生决策树,直到不能继续下去为止.这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即出现过拟合现象.过拟合的原因在于学习时过多地考虑如何 ...

  4. 算法设计之—直接 遍历/穷举法、贪心算法、动态规划、回溯法、EM方法

    算法是对完成特定问题的程序执行序列描述,表象为从问题初始状态到问题结束状态的所有路径之中寻找可行路径,若无先验经验,根据执行方式不同可以划分为无规则和有规则(启发式)方法. 无规则方法为穷举,改进方法 ...

  5. 回溯法 -数据结构与算法

    1.回溯法算法思想: 定义: 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标.但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术 ...

  6. 决策树剪枝算法(二)

    转自:http://www.cnblogs.com/starfire86/p/5749334.html 上一章主要描述了ID3算法的的原理,它是以信息熵为度量,用于决策树节点的属性选择,每次优选信息量 ...

  7. 决策树-剪枝算法(二)

    上一章主要描述了ID3算法的的原理,它是以信息熵为度量,用于决策树节点的属性选择,每次优选信息量最多 的属性,以构造一颗熵值下降最快的决策树,到叶子节点处的熵值为0,此时每个叶子节点对应的实例集中的实 ...

  8. minimax算法及α-β剪枝算法

    minimax算法通常用于二人博弈游戏中,如井字棋,chomp游戏等.我对这个算法的理解是这样的:(以人和电脑下棋为例) 电脑要确定哪一步下棋使得优势最大,假设棋盘大小为nxm,不 考虑其他因素,那么 ...

  9. 《算法图解》读书笔记—像小说一样有趣的算法入门书

    前言 学习算法课程的时候,老师推荐了两本算法和数据结构入门书,一本是<算法图解>.一本是<大话数据结构>,<算法图解>这本书最近读完了,读完的最大感受就是对算法不再 ...

最新文章

  1. 机器学习四剑客1——Numpy
  2. UI培训分享:UI设计师要掌握哪些知识点
  3. 最新版本的Silverlight Tools For Silverlight 2 RTW正式版
  4. 日记 [2008年01月21日]
  5. 【Python学习系列二十七】pearson相关系数计算
  6. 神经网络python实例分类_Python使用神经网络进行简单文本分类
  7. flutter 一行代码取消 返回按钮
  8. [html] html6即将到来,你最期待的是什么特性呢?
  9. 1.6 编程基础之一维数组 05 年龄与疾病 python
  10. android学习笔记---42_服务的生命周期
  11. kettle转换JavaScript获取命令行参数
  12. 基于RPC原理的Dubbo
  13. python脚本获取zabbix监控数据,并且通过邮件发送
  14. Dreamweaver8 V8.0.0.2766
  15. 主引導记录(MBR)
  16. 应广单片机及mini-c快速入门
  17. 马云收购恒生电子几大关键问题
  18. QQ邮箱收不到GitHub验证邮件
  19. 上网行为管理软件的功能
  20. 美赛常用数据库网站大全

热门文章

  1. 力争下游:腾讯和淘宝的站位
  2. 马化腾:互联网时代没有谁比谁傻太多!微信支付是如何逆袭的?
  3. 美团外卖兼职值得干嘛,赚的多吗
  4. Centos 查看网卡型号
  5. 问题 B: 最大连续子序列
  6. 你知道小伙伴们的阿里云服务为什么会被ru侵,是怎么ru侵的吗?
  7. SOA 和微服务的主要区别:
  8. java快速排序代码实现
  9. uel表达式 字符串截取_(4)activiti工作流引擎之uel表达式
  10. 教师或者学生身份申请教育版(正版)Idea