算法设计与分析实用教程杨克昌 第5章 回溯法新.pptVIP

  • 114
  • 0
  • 约9.86千字
  • 约 35页
  • 2015-12-24 发布于广东
  • 举报

算法设计与分析实用教程杨克昌 第5章 回溯法新.ppt

?教学要求 了解回溯算法的概念与回溯设计要领 了解一般回溯与递归回溯的异同 掌握应用回溯算法求解桥本分数式、数码串珠、逐位整除数以及情侣拍照等典型案例 ?本章重点 理解回溯法 “向前走,碰壁回头”的实现 5.1 回溯法概述 5.1.1 回溯的概念 (1) 回溯法(Back track method)有“通用解题法”之美称,是一种比枚举“聪明”的效率更高的搜索技术。 (2) 回溯法是一种试探求解的方法:通过对问题的归纳分析,找出求解问题的一个线索,沿着这一线索往前试探,若试探成功,即得到解;若试探失败,就逐步往回退,换其他路线再往前试探。 (3) 回溯法可以形象地概括为“向前走,碰壁回头”,若再往前走不可能得到解,就回溯,退一步另找线路,这样可省去大量的无效操作,提高搜索效率。 (4) 回溯实现 回溯法的试探搜索,是一种组织得井井有条的、能避免一些不必要搜索的枚举式搜索。回溯法在问题的解空间树中,从根结点出发搜索解空间树,搜索至解空间树的任意一点,先判断该结点是否包含问题的解;如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向其父结点回溯;否则,进入该子树,继续搜索。 从解的角度理解,回溯法将问题的候选解按某种顺序进行枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解。在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。若当前候选解除了不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。 通过例5-1“4皇后问题的回溯”理解回溯过程的实现。 5.1.2 回溯的数学概括与效益分析 5.1.3 回溯法分类 第5章 作业 习题5: 1, 2, 3, 6, 7 1. 成对安排与回溯设计要点 注意到男左女右,把每对情侣中女伴编号在男伴编号基础上加n。 例如5号男,其女伴的编号为n+5。这样,n对情侣的编号恰好是1,2,...,2n。 座位按1,2,...,2n编号。 设置数组a表示每个人的座号。 例如第i号男子坐在第j号,则a[i]=j,他的妻子应该坐在第j+i+1号,即a[i+n]=j+i+1。 设置数组b表示每个座位上所坐人的号码,第i对情侣的号码都用i。 比如,前面的坐法可写为b[j]=b[j+i+1]=i。 安排的初始值:a[1]=1,a[n+1]=3;即b[1]=b[3]=1。 5.7.2 成对安排与回溯 对第i对情侣安排,男如果安排在第j位,即a[i]=j(1≤j≤2n-i-1),则其女伴需安排在第i+j+1号,作赋值b[j]=b[i+j+1]=i。这样成对安排的前提是这两个位置是空的,即b[j]=b[i+j+1]=0。该对安排成功标记g=1。 如果对所有的j第i对情侣安排不了,标记t=0,i--,回溯到其前面一对调整。 如果第i对情侣安排成功,检测i=n且b[1]b[2n](为避免重复),则输出一个拍照排列,同时t=0。 设置t=0的调整回溯循环,把前面安排不成功位置清空:b[a[i]]=b[a[i]+i+1]=0(输出一个解后也需把最后位置清空);然后探索从j位开始(a[i]+1≤j≤2n-i-1)进行新的成对安排。 5.8 回溯应用小结 本章应用回溯设计求解了逐位整除数与桥本分数式等涉及数与数式的典型案例、求解了新颖的素数环与德布鲁金环等环序列,求解了直尺刻度分布与数码串珠等趣题,也求解了伯努利装错信封问题与别出心裁的情侣拍照等难度较大的组合案例。可见回溯法的应用范围是非常广阔的。 在应用回溯求解案例时,要注意结合案例的具体实际确定各元素的取值范围、取值点与约束条件,特别是结合案例实际确定合适的回溯点是应用回溯求解的关键。 值得注意的是,递归具有回溯的功能,很多应用回溯求解的问题,也可以应用递归探索求解。例如,应用了递归设计,同样也可以求解桥本分数式的10个解。 通过例5-2,可寻找与总结回溯与递归之间的关联。尽管递归的效率不高,但递归设计的简明是一般回溯设计所不及的。 某些案例用这两种算法都可以求解,并不意味着递归与回溯可以相互取代。 回溯法的时间复杂度因案例的具体实际而异,从一般实际案例的求解实践可知,回溯搜索效率要远高于枚举。 在应用回溯求解实际案例时,选择合适的回溯模式,确定合适的回溯参数,直接关系到回溯搜索的效率。例如,情侣拍照的两个回溯设计,由于所选择的回溯模式不同,求解效率相差很大。 第5章上机 (1) 上机通过本章桥本分数式、古尺神奇、数码串珠、逐位整除数等案例; (2) 上机通过例5-1,5-2,比较回溯与递归的功效 。 (3) 分组讨论:情侣拍照案例从“逐位”设计到“成对”设计的优化;习题

文档评论(0)

1亿VIP精品文档

相关文档