Algorithm_05-CH5回溯算法讲解.pptx

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 回溯法;学习要点;基本思想和适用条件;通过应用范例学习回溯法的设计策略;穷举法应用:有限离散问题总可以用穷举法求得问题的全部;穷举法改进;树有哪些信誉好的足球投注网站策略(Tree searching strategy);回溯法;回溯法(Backtracking);所求解的问题有n个输入,且用一个n元组X={x1,x2,...,xn)来表示问题的解。其中,xi的取值范围为某个有穷集S。 0-1背包问题中,S={0,1} 把X={x1,x2,...,xn)称为问题的解向量,把xi的所有可能取值范围的组合称为问题的解空间。 0-1背包问题中,其解空间由长度为n的0-1向量组成,当n=3时,其解空间是{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1),(1,1,0),(1,1,1)};一棵高度为n的树,第0层有|S0|=m0个结点,构成m0棵子树,每一棵子树都有|S1|=m1个结点,因此,在第1层共有m0×m1个结点,构成m0×m1棵子树。最后,在第n-1层共有m0×m1×... ×mn-1个叶结点。 树中第i层与第i+1层之间旁边的标号,表示变量xi+1的可能取值;由根结点到叶结点路径上的标号,构成了问题的一个可能的解。 0-1背包问题的解空间树如下图所示,叶结点的个数是2n ;解空间树的动态有哪些信誉好的足球投注网站;;剪枝函数;问题的解空间;回溯法举例 [旅行商问题] 在这个问题中,给出一个n 顶点网络(有向或无向),要求找出一个包含所有n 个顶点的具有最小耗费的环路。任何一个包含网络中所有n 个顶点的环路被称作一个旅行(t o u r)。在旅行商问题中,要设法找到一条最小耗费的旅行。 [分析]图给出了一个四顶点网络。在这个网络中,一些旅行如下: 1 , 2 , 4 , 3 , 1;1 , 3 , 2 , 4 , 1和1 , 4 , 3 , 2 , 1。旅行1 , 2 , 4 , 3 , 1的耗费为6 6;而1 , 3 , 2 , 4 , 1的耗费为2 5;1 , 4 , 3 , 2 , 1为5 9。故1 , 3 , 2 , 4 , 1是该网络中最小耗费的旅行。; 旅行是包含所有顶点的一个循环,故可以把任意一个点作为起点(因此也是终点)。针对该问题,任意选取点1作为起点和终点,则每一个旅行可用顶点序列1, v2 ,?, vn , 1来描述,v2, ?, vn 是(2, 3, ?, n) 的一个排列。可能的旅行可用一个树来描述,其中每一个从根到叶的路径定义了一个旅行。下图给出了一棵表示四顶点网络的树。从根到叶的路径中各边的标号定义了一个旅行(还要附加1作为终点)。例如,到节点L的路径表示了旅行1 , 2 , 3 , 4 , 1,而到节点O的路径表示了旅行1 , 3 , 4 , 2 , 1。网络中的每一个旅行都由树中的一条从根到叶的确定路径来表示。因此,树中叶的数目为(n -1 )!。;回溯算法将用深度优先方式从根节点开始,通过有哪些信誉好的足球投注网站解空间树发现一个最小耗费的旅行。 对题中网络,利用解空间树,一个可能的有哪些信誉好的足球投注网站为A B C F L。 在L点,旅行1 , 2 , 3 , 4 , 1作为当前最好的旅行被记录下来。它的耗费是5 9。 从L点回溯到活节点F。因F没有未被检查的孩子,故它成为死节点。;从N点,有哪些信誉好的足球投注网站回溯到H,然后是D。在D点,再次向前移动,到达O点。如此继续下去,可有哪些信誉好的足球投注网站完整个树,得出1 , 3 , 2 , 4 , 1是最少耗费的旅行。;生成问题状态的基本方法;回溯法的基本思想;递归回溯;if (Constraint(t)Bound(t) ) Backtrack(t + 1); if语句:Constraint(t)和Bound(t)表示当前扩展节点处的约束函数和限界函数。 Constraint(t): 返回值为true时,在当前扩展节点处x[1:t]的取值问题的约束条件,否则不满足问题的约束条件,可剪去相应的子树 Bound(t): 返回的值为true时,在当前扩展节点处x[1:t]的取值为时目标函数越界,还需由Backtrack(t+1)对其相应的子树做进一步有哪些信誉好的足球投注网站。否则,当前扩展节点处x[1:t]的取值是目标函数越界,可剪去相应的子树 for循环作用:有哪些信誉好的足球投注网站遍当前扩展的所有未有哪些信誉好的足球投注网站过的子树。 递归出口:Backtrack(t)执行完毕,返回t-1层继续执行,对还没有测试过的x[t-1]的值继续有哪些信誉好的足球投注网站。当t=1时,若以测试完x[1]的所有可选值,外层调用就全部结束。;递归回溯的通用框架;迭代回溯;if (Constraint(t) Bound(t) ){ if (Solution(t)) Output(x); else t ++; } else t --; 分析: Constraint(t):

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档