怎样做一道阿尔法贝塔剪枝的题(图解)

2023-10-24 22:38

本文主要是介绍怎样做一道阿尔法贝塔剪枝的题(图解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前边
  • 现在的时间:2019-06-20
  • 不讨论原理,不说为什么,只讲怎么做这道题.
  • 上学期就是说要考这个,结果没考,这学期又说要考,不知道考不考.记下来,万一再说下学期考呢.

概念与做题依据
概念:MIN层与MAX层
  • 从非叶子节点开始,从下往上,我们依次轮流把每一层称为MIN层MAX层
  • 例如下边这棵树
做题依据
  • 树要从倒数第二层开始处理,且所有的处理都要"从左往右"处理
  • MIN层节点的取值是其子节点中的最小值,如果有子节点被剪了,那么就取剩下的子节点中的最小值.
  • MAX层节点的取值是其子节点中的最大值,如果有子节点被剪了,那么就取剩下的子节点中的最大值.
  • 下边个依据不好表达也不太好理解,我多写几句,现在理解不了等看了后边的例子就能理解了,这条依据也是我们能够剪枝的依据,满足这条依据才可以剪枝.
    • 假设有节点x,根据节点x的某个子节点确定了节点x的取值范围.
    • 节点x也有父节点(包括直接父节点与间接父节点),这些父节点在你确定节点x的值时,可能已经有了取值范围,也可能还没有取值范围.
    • 如果这些父节点已经有取值范围了,那么,如果节点x的聚值范围节点x的父节点(直接或间接)的取值范围没有交集或交集中只有一个元素,则剪掉节点x的其他子节点,其他子节点指的就是节点x的所有子节点中除推出节点x范围的那个节点外的节点.
  • 当所有未被剪掉的节点的值都确定后,剪枝结束,题也就做完了.

例子
所要剪的树
开始做题
  • 因为要从倒数第二层开始处理,且所有的处理都要"从左往右"处理,所以要先处理节点H.
  • 节点H处于MIN层,所以要取子结点的最小值.
  • 因为要从左往右处理所以先看叶子节点3,因为它的值为3所以,当我们看完3时,确定节点H的取值范围为(-∞,3]
  • 这时还不能确节点H的最小值,还需要看它的第二个子节点,第二个子节点的值是17,比3大,也就最终确定节点H的值是3.
  • 且根据节点H的值是3我们可以确定节点D的取值是[3,+∞),因为D位于MAX层,要取最大值,已经知道一个节点是3了,那么最小不可能小于3.
  • 然后处理节点I,根据它左孩子(左边的子结点),可以确定节点I的取值为(-∞,2]
  • 注意,这时已经满足了我们上边说的那个不太好理解的依据. 节点I的取值范围为(-∞,2],这时其父节点节点D已经有了取值范围,范围是[3,+∞),这两个范围没有交集,我们要剪掉节点I叶子节点2之外的其他子节点.
  • 到此,我们便完成了第一次剪枝.
  • 剪枝完成后,可以确定节点I的值是2,此时节点D的所有子节点的值都以确定,继而可以确定节点D的值为3.
  • 节点D的值为3,继而确定节点B的取值范围为(-∞,3]
  • 继续处理节点J节点J的取值为15,根据它的取值可以确定节点E范围为[15,+∞)
  • 此时又满足那一个依据了,(-∞,3][15,+∞)没有交集,剪掉节点E的其他子节点
  • 此时可以确定节点E的值从而确定节点B的值,然后根据节点B的值确定节点A的取值范围.
  • 处理节点L,可以确定节点L的取值范围是(-∞,2]
  • 注意,这时也满足我们上边说的那个条件,只不过这次是间接父节点,节占L的取值范围与其间接父节点节点A的取值范围没有交集,所以要进行剪枝.
  • 剪枝后,可以确定节点L的取值,继而确定节点F的取值范围.
  • 然后处理节点M,只有一个节点可以直接确定M的取值,根据节点M的取值确定进而确定节点F的取值,再根据节点F的取值就可以确定节点C的取值范围.
  • 结点C的取值范围与其父节点节点A的取值范围,有交集,但交集中只有一个元素,满足我们上边所说的条件,进行剪枝.
  • 剪树结束后,便可以确定节点C节点A的值.
  • 至此,所有未被剪枝的节点的值都已确定了,剪枝也完成了,最后的剪枝结果便是上图,去除其他的标注,最后的结果如下图.

这篇关于怎样做一道阿尔法贝塔剪枝的题(图解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/278232

相关文章

不懂怎样摘草莓的电影我

拿起来后摘掉茎的电影 今天的拿起来后摘掉茎的电影,诶,我在某某自选商店,他们上了我的太阳飞机,那些小平房呢,不懂怎样摘草莓的电影我,我开着飞机,哪来的高楼大厦,我找了两个小时,是不是作弊了。 只好求助农民伯伯,都是很简单的,这是冀州市吗,快快充实交代梁锦宇笑着说,拿起来后摘掉茎,我说,咦,许多同学问梁锦宇,后来我才知道。 是东面还是西面,是团队的富民政策把平房变成了高楼大厦,找自己的住处,

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

黑龙江等保测评的具体流程是怎样的

黑龙江等保测评的具体流程 黑龙江等保测评是根据《中华人民共和国网络安全法》及相关法律法规,对信息系统安全保护能力进行评估和验证的过程。以下是黑龙江等保测评的具体流程: 系统定级:根据业务、资产、安全技术、安全管理等方面的情况,对企业的安全防护水平进行评估,编制定级报告,为客户提供技术支持,协助客户编制定级报告,并组织相关专家对定级报告进行评估。 系统备案:持定级报告及登记表到当地的公安网监

图解float属性的详细信息

转自:http://www.cnblogs.com/58top/archive/2013/01/09/details_about_float_property.html 正确使用CSS的float属性可能会变成一项艰巨的任务,,它涉及内容过多,浏览器兼容性问题也很多。它的定位不仅涉及 包含块,还涉及到了行框,块框,还有行内框等内容。本文包含的实施例的应用属性float说明性例子,以及一些失误

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解 码客 卢益贵 ygluu 关键词:游戏策划 可配置化 模块化配置 数据引擎 条件系统 红点系统 一、前言 在插件式模块化软件开发当中,既要模块高度独立(解耦)又要共享模块数据,最好的方法是有个中间平台(中间件)提供标准的接口来进行数据的交换,这在很多行业软件开发中已经广泛应用。但是,由于中间件的抽象和封

rk3568 Android 11在系统怎样执行命令获取SN号

目录 1. 使用ADB(Android Debug Bridge)2. 使用Shell脚本或应用程序3. 使用系统API4. 直接在设备上使用Shell5. getprop使用方法常见属性示例注意事项 在瑞芯微RK3568 Android 11系统中执行命令或获取SN号(序列号)通常可以通过几种不同的方法实现。 1. 使用ADB(Android Debug Bridge)

图解注意力

图解注意力 Part #2: The Illustrated Self-Attention 在文章前面的部分,我们展示了这张图片来展示自注意力被应用于正在处理单词"it"的一层中: 在本节中,我们将看看这是如何完成的。请注意,我们将以一种试图理解单个单词发生什么的方式来看待它。这就是为什么我们将展示许多单独的向量。实际的实现是通过将巨大的矩阵相乘在一起来完成的。但我想专注于这里单词层面上发

[图解]建模相关的基础知识-16

1 00:00:00,350 --> 00:00:04,130 刚才那个,就相当于,12这个我们可以认为是什么 2 00:00:05,020 --> 00:00:11,360 我们用类图来表达就是,员工、电话 3 00:00:13,320 --> 00:00:15,080 多个 4 00:00:15,090 --> 00:00:16,440 当然这个电话这里 5 00:00:16,970

【Flutter 专题】112 图解自定义 ACEPieWidget 饼状图 (一)

类别选项球;切割绘制饼状图;饼状图中绘制文字; 1. 类别选项球 对于两侧不同颜色类别选项卡,仅需要简单设置一下 Container 的 decoration 装饰器即可,只是方便用户查看饼状图分类而已; return Container( height: 45, width: 45, margin: EdgeInsets.symmetric(vertical: 2.5, horizonta

怎样防止ios系统被抓包

怎样防止ios系统被抓包 我们知道ios系统 是可以通过 [fiddler][6] ,[charles][6]等抓包工具来获取APP发送的API,以及传送的参数等,那么上线之后怎么防止之中情况呢? 我们都大概了解抓包的操作,需要手机与抓包工具在同一网段,然后设置代理,之后就可以进行你要抓包的操作了,那么接下来要做的事情 就相对相对简单了,我们可以检查自己的网络是否处于代理网络之下,如果这个