




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、递归、回溯与剪枝王子琪、谭裕韦、刘丽颖递归与回溯我们有时会碰到一些题目,它们既不能通过建立数学模型解决,又没有现成算法可以套用,或者必须遍历所有状况才可以得出正确结果。 这时,我们就必须采用搜索算法来解决问题。搜索算法按搜索的方式分有两类,一类是深度优先搜索,一类是广度优先搜索。而对于深度优先搜索来说,我们需要使用到的一个技术就是递归与回溯。 “和最小”题目描述设有一个长度为N的数字串,要求使用K个加号将它分成K+1个部分,找出一种分法,使得这K+1个部分的和能够为最小。有一个数字串:312, 当N=3,K=1时会有以下两种分法:1) 3+12=152) 31+2=33 这时,符合题目要求的结
2、果是:3+12=15搜索策略题目要求的就是在每个数字之间:或者填加号,或者什么都不填。根据这个要求,我们可以从头开始扫描整个数字串,逐个考察是否要填加号,然后检查下一个数字间的位置,直到最后一个数字。下面是一个例子和它的状态树数字7629需要插入2个加号这是一棵完整的搜索树。结点内表示当前处理的状态,每向后处理一个空位即深入一层。我们可以看到,在最后的所有叶子结点中,有三个黄色的结点是满足条件的。7+6+2+9 77+6 767+6+27+6276+2 7627+62+97+62976+2+976+29 7629762+97+6+297和6之间不添加加号7和6之间添加一个加号迷宫问题给出一个迷
3、宫的地图,有一些格子中有障碍,问从起点到终点的最短路径,并输出所有的最短路径。回溯法解题思路1、这个方向有路可走,我没走过,往这个方向前进2、是死胡同,往回走,回到上一个路口3、重复第一步,直到找着出口但是回溯法的缺点暴露无遗:搜索耗时极巨,无法忍受。那么我们可否提前判断我们前进的方向是否可能得到最优解呢?如果可以的话,搜索效率岂不是能够提高了吗答案就是:剪枝!关于剪枝剪枝的概念,其实就跟走迷宫避开死胡同差不多.。若我们把搜索的过程看成是对一棵树的遍历,那么剪枝顾名思义,就是将树中的一些“死胡同”,不能到达我们需要的解的枝条“剪”掉,以减少搜索的时间。搜索算法,绝大部分需要用到剪枝。 然而,不
4、是所有的枝条都可以剪掉,这就需要通过设计出合理的判断方法,以决定某一分支的取舍。 在设计判断剪枝条件的时候,就需要有一定的方法。最优性剪枝又称为上下界剪枝一种重要的搜索剪枝策略记录当前得到的最优值如果当前结点已经无法产生比当前最优解更优的解时,可以提前回溯回到加号题儿子结点的数一定比父亲大即搜索树深度越深得到的解越大满足最优性剪枝的条件我们可以记录当前得到的解的最小值如果当前得到的和值已经超过保存的最小解,即不必再继续深入搜索,回溯。再看搜索树我们可以看到红色结点的子节点不可能有最优解 77+6 767+6+27+6276+2 7627+62+97+62976+2+976+29 7629762
5、+97+6+2+97+6+29最优性剪枝结果结点数大大减少。 77+6 767+6+27+627+6+2+97+6+29可行性剪枝除最优性剪枝外,另一种重要的搜索剪枝策略判断继续搜索能否得出答案,如果不能直接回溯再看搜索树对于图中蓝色结点。后面能够插入+的位置已经少于未用完+的数量,肯定不可能有解。对于这种结点,其子节点不可能有解,可以回溯。这个节点的加号不可能有解,可以进行可行性剪枝 77+6 767+6+27+6276+2 7627+62+97+62976+2+976+29 7629762+97+6+2+97+6+29迷宫问题最优性剪枝我们可以将每一次搜索出的路径长度与上界比较(初始下界)
6、,不断降低上界,一旦出现路径长超出上界而仍未到达目标点,则放弃该搜索进程。 因为就算继续搜索下去,这一条路径也必然比其他路径长,不是最优解。总结深度优先搜索的程序简洁易懂,空间需求也比较低,但是这种方法的时间复杂度往往是指数级的,倘若不加优化,其时间效率简直无法忍受;所以,如何用正确的方法对程序进行优化,就成为搜索算法编程中最关键的一环。那么,剪枝就是搜索优化中最基本的方法之一。总结两种常用的剪枝方法:最优性剪枝适用范围:子结点的代价全部高于或低于父结点又之称为多米诺性质。可行性剪枝根据题意作出判断是否继续搜索还有可能得到解剪枝的原则正确性准确性高效性总结在搜索算法中,几乎都需要采用程序优化,以减少时间复杂度。 而这里所说的两种剪枝方法,是最常见的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 运河工程项目可行性研究报告(模板范文)
- 社区养老服务中心建设可行性研究报告(范文参考)
- 建筑废料处理与环保消纳项目可行性研究报告(范文)
- 农作物种子繁育员常见误区分析试题及答案
- 2024年足球裁判员考试热点问题试题及答案
- 2024年体育经纪人考试的实际操作试题及答案
- 办公楼空间设计装修工程可行性研究报告(范文)
- 2024年篮球裁判员行为规范试题及答案
- 农作物种子繁育员考试期间的心态调整试题及答案
- 农业植保员2024年集中复习的试题与答案策略
- 企业文化与员工认同培训课件
- 古寺庙重建可行性报告
- 老年护理的专科发展课件
- 13《猫》 第二课时 课件
- 人工智能对经济的影响
- 棒垒球课教学大纲
- 医学CVVH原理和护理
- 《人体内物质的运输》血液循环共23张
- 工程总承包项目风险管理
- 2023年韶关市始兴县事业单位考试试题真题及答案
- 大班语言优质课课件PPT《青蛙歌》
评论
0/150
提交评论