《递归回溯与剪枝》PPT课件.ppt

上传人:w****2 文档编号:16575762 上传时间:2020-10-14 格式:PPT 页数:33 大小:680.50KB
返回 下载 相关 举报
《递归回溯与剪枝》PPT课件.ppt_第1页
第1页 / 共33页
《递归回溯与剪枝》PPT课件.ppt_第2页
第2页 / 共33页
《递归回溯与剪枝》PPT课件.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
递归、回溯与剪枝 递归与回溯 我们有时会碰到一些题目,它们既不能通 过建立数学模型解决,又没有现成算法可 以套用,或者必须遍历所有状况才可以得 出正确结果。 这时,我们就必须采用搜索 算法来解决问题。 搜索算法按搜索的方式分有两类,一类是 深度优先搜索,一类是广度优先搜索。而 对于深度优先搜索来说,我们需要使用到 的一个技术就是递归与回溯。 回溯法 (试探法),在问题的解空间中,将问题的所有候选解 按某种顺序逐一枚举和检验,从而找到符合要求的解的集合或 最优解。 关键词:向前试探,回溯 递归法 为求解规模为 N的问题,设法将它分解成一些规模较小 的问题,然后从这些较小的问题方便地构造出大问题的解,并 且这些规模较小的问题也能采用同样的分解和综合方法,分解 成规模更小的问题,特别的,当 N=1时,能够直接得到解 。 关键词:递进,回归 问题分析(代码架构) 回溯法 递归法 栈 常见的剪枝的方法 限界剪枝法 最优性剪枝 可行性剪枝 奇偶剪枝 “和最小”题目描述 设有一个 长度为 N的数字串,要求使用 K个 加号将它分成 K+1个部分,找出一种分法, 使得这 K+1个部分的和能够为最小。 有一个数字串: 312, 当 N=3, K=1时会有 以下两种分法: 1) 3+12=15 2) 31+2=33 这时,符合题目要求的结果是: 3+12=15 递归回溯法算法框架 一 procedure Search(k:integer); begin for i:=1 to 算符种数 Do if 满足条件 then begin 保存结果 if 到目的地 then 输出解 else Search(k+1); 恢复:保存结果之前的状态 回溯一步 end; end; 递归回溯法算法框架 二 procedure Search(k:integer); begin if 到目的地 then 输出解 else for i:=1 to 算符种数 Do if 满足条件 then begin 保存结果 Search(k+1,参数表 ); end; end; 搜索策略 题目要求的就是在每个数字之间: 或者填加号,或者什么都不填。根 据这个要求,我们可以从头开始扫 描整个数字串,逐个考察是否要填 加号,然后检查下一个数字间的位 置,直到最后一个数字。 下面是一个例子和它的状态树 数字 7629需要插入 2个 加号 这是一棵完整的搜索树。 结点内表示当前处理的状态,每向后处理一个空位即 深入一层。 我们可以看到,在最后的所有叶子结点中,有三个黄 色的结点是满足条件的。 7+6+2+9 7 7+6 76 7+6+2 7+62 76+2 762 7+62+9 7+629 76+2+9 76+29 7629 762+9 7+6+29 7和 6之间 不添加加 号 7和 6之间 添加一个 加号 迷宫问题 给出一个迷宫的地图,有一些格子中有障 碍,问从起点到终点的最短路径,并输出 所有的最短路径。 回溯法解题思路 1、 这个方向有路可走,我没走过, 往 这个方向前进 2、 是死胡同 ,往回走 ,回到上一个路口 3、 重复第一 步,直到找着出口 但是 回溯法的缺点暴露无遗: 搜索耗时极巨,无法忍受。 那么 我们可否提前判断我们前进的方向是 否可能得到最优解呢?如果可以的话 ,搜索效率岂不是能够提高了吗 答案就是: 剪枝! 关于剪枝 剪枝的概念,其实就跟走迷宫避开死胡同差不 多 .。若我们把搜索的过程看成是对一棵树的遍 历,那么剪枝顾名思义 ,就是将树中的一些“死 胡同”,不能到达我们需要的解的枝条“剪” 掉,以减少搜索的时间。 搜索算法,绝大部分需要用到剪枝。 然而,不 是所有的枝条都可以剪掉,这就需要通过设计 出合理的判断方法,以决定某一分支的取舍。 在设计判断剪枝条件的时候,就需要有一定的 方法。 最优性剪枝 又称为上下界剪枝 一种重要的搜索剪枝策略 记录当前得到的最优值 如果当前结点已经无法产生比当前 最优解更优的解时,可以提前回溯 回到加号题 儿子结点的数一定比父亲大 即搜索树深度越深得到的解越大 满足最优性剪枝的条件 我们可以记录当前得到的解的最小值 如果当前得到的和值已经超过保存的 最小解,即不必再继续深入搜索,回 溯。 再看搜索树 我们可以看到红色结点的子节点不可能有 最优解 7 7+6 76 7+6+2 7+62 76+2 762 7+62+9 7+629 76+2+9 76+29 7629 762+9 7+6+2+9 7+6+29 最优性剪枝结果 结点数大大减少。 7 7+6 76 7+6+2 7+62 7+6+2+9 7+6+29 可行性剪枝 除最优性剪枝外,另一种重要的搜 索剪枝策略 判断继续搜索能否得出答案,如果 不能直接回溯 再看搜索树 对于图中蓝色结点。后面能够插入 +的位置 已经少于未用完 +的数量,肯定不可能有解。 对于这种结点,其子节点不可能有解,可以 回溯。 这个节点的 加号不可能 有解 ,可以进 行可行性剪 枝 7 7+6 76 7+6+2 7+62 76+2 762 7+62+9 7+629 76+2+9 76+29 7629 762+9 7+6+2+9 7+6+29 迷宫问题 最优性剪枝 我们可以将每一次搜索出的路径长度与上 界比较(初始上界 ),不断降低上界, 一旦出现路径长超出上界而仍未到达目标 点,则放弃该搜索进程。 因为就算继续搜 索下去,这一条路径也必然比其他路径长 ,不是最优解。 总结 深度优先搜索的程序简洁易懂,空间需求 也比较低,但是这种方法的时间复杂度往 往是指数级的,倘若不加优化,其时间效 率简直无法忍受;所以,如何用正确的方 法对程序进行优化,就成为搜索算法编程 中最关键的一环。那么,剪枝就是搜索优 化中最基本的方法之一。 总结 两种常用的剪枝方法: 最优性剪枝 适用范围:子结点的代价全部高于或 低于父结点 又之称为多米诺性质。 可行性剪枝 根据题意作出判断是否继续搜索还有 可能得到解 剪枝的原则 1.正确性:必须保证不丢失正确的结果。 2.准确性:能够尽可能多的减去不能通向正 解的枝条 3.高效性:在很多时候,为了加强优化的效 果,我们会增加一些判断,这样对程序效 率也带来了副作用,所以要考虑剪枝的高 效性,否则得不偿失。 总结 在搜索算法中,几乎都需要采用程序优化 , 以减少时间复杂度。 而这里所说的两种剪 枝方法,是最常见的优化方法之一。 然而,尽管可以采用众多优化算法使得程 序的效率有所提高,搜索算法本身的时间 复杂度不能从本质上减少是不可改变的事 实。 不妨在使用搜索算法之前先仔细想想,有 没有其他更好的算法。 演 讲 稿 的 写 法 七 个 阶 段 的 准 备 一 、 决 定 话 题 和 目 的 二 、 分 析 听 众 和 场 合 三 、 满 足 听 众 的 本 能 欲 求 四 、 收 集 材 料 五 、 编 制 提 纲 六 、 练 习 词 语 七 、 练 习 篇 章 一、演说者和听众分析 1、 演说的成败,首先决定于演说者的良好心理 素质和充分准备。必须克服羞怯、拘谨、冷谈、 自卑,做到勇敢、轻松、亲切、自信。任何演讲都必须有满腔热情和必胜的信心。 2、 在演讲前对听众的人数、年纪、性别、教育 程度、有关话题的、关注焦点和愿望、固定的态 度和信仰等要进行调查,做到有的放矢,才可能收到理想的效果。 3、在演说过程中,必须目视听众,必须察言观 色,注意听众情绪反应做适当的点整。 二、确定目的和选择话题 1、目的 要么让人快乐;要么给人知识;要么让人行动;社交是联络感 情,鉴赏目的是让人快乐、让人感动。可概括三大主要目的 :知行 目的,人际目的,语篇目的。 2、话题 要令人亲近、关注,因此要具有社会性,特别要关注社会的热 点。 要明确、集中、正确、易懂,要有一定得形象性。 要具有针对性,针对某种意见做辩答,或解决某个要解决问题 ,或针对某些人思想情绪。 三、文字口语化,语言的节奏感 演讲的声音稍纵即逝,因而演讲稿必须要写得入耳。 1、多用群众创造的形象生动的语言 演讲要尽量把不易听懂的书面语言改为口语,如书面语“对垒 ”、“角逐”改为“比赛”、“竞争”等口语。 2、避免同音相混的语言 如期中 -期终;终年 -中年;全部 -全不等 3、多用象声语言 如,载重超负荷 -装多了,车压得吱吱的响; 不说“正、草、隶、篆他会写”应改为“什么正楷啦,草书啦 ,隶书啦,篆书啦他全部会写” 四、演讲稿的开头 1、提问开头法 有这样一个问题常在我的脑海里萦回:是 什么力量使爱因斯坦名扬天下之后仍在攀登科 学高峰呢?是什么力量使张海迪在死神缠绕之 时仍锐志奋进呢?,这大概是当代青年,特别 是我们大学生讨论最多的问题之一,也是我今 天演讲的题目。 2、套近乎开头 林肯的演说:听说在场的就有些人要下决心 和我作对,我实在不明白为什么要这样做,我 也和你们一样是一位爽直的平民,我为什么不 能和你们一样有发表意见的权力呢?好朋友, 我不是来干涉你们的,我是你们中间的一员。 3、引用入题法 同学们,有一首诗这样写道:“多少人爱 你青春欢畅的时候,爱慕你的美丽,也许假意 或真心。只要我爱你朝圣者的灵魂,爱你衰老 的脸上脸上的痛苦的皱纹。”诗中倾诉的是深 沉真挚的爱,正如别林基斯所说:“爱是理解 的别名。”知之愈深,才能爱之愈切,今天, 带着这种爱,我要讲一讲我的祖国,讲一讲生 我的这片土地。 4、开门见山 我主张将我们全党的学习方法和学习制度改造一下。 (改造 我们的学习) 5、悬念开头法 刚才,我会见了一个欧洲代表团,他们问我对一部分先富起来 的政策持什么看法。我对特们说,这个问题我已经不感兴趣了! 因为,这已经成为现实了!他们接着问我,那你对什么感兴趣? 我对他们说,我对一部分县富起来感兴趣,我希望古陵县更快地 在全国富起来,最好富成全国第一。 前联合国秘书长瓦尔德海姆的演讲 为了悼念周恩来,联合国下半旗,这是我决定的。 原因有二:一是中国是一个文明古国,她的金银财宝 多得不计其数。她使用的人民币多得我们数步过来。 可是,她的总理周恩来没有一分钱存款!二是中国有 10亿人口,占世界人口的 1 /4,可是她总理周恩来,没 有一个孩子。你们任何国家的元首,如果能做到其中 一条,在他逝世之日,总部照样为他下半期。完了。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!