回溯法课件PPT.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
回溯法课件PPT

第六章 回溯法;本章主要内容;学习要点;引言;引言;6.1 回溯法的算法框架;6.1 回溯法的算法框架;7.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;6.1 回溯法的算法框架;回溯算法将用深度优先方式从根节点开始,通过有哪些信誉好的足球投注网站解空间树发现一个最小耗费的旅行。 一个可能的有哪些信誉好的足球投注网站为 ABCFL。L点,旅行1-2-3-4-1作为当前最好的旅行被记录下来,耗费 59。 从L点回溯到活节点F,F没有未被检查的孩子,所以它成为死节点,回溯到 C点。 C变为E-节点,向前移动到G,然后是M。这样构造出了旅行1-2-4-3-1,它的耗费是66。不比当前的最佳旅行好,抛弃它并回溯到G,然后是C,B。;6.1 回溯法的算法框架;6.1.3 递归回溯 回溯法对解空间作深度优先有哪些信誉好的足球投注网站,因此,在一般情况下用递归方法实现回溯法,t表示有哪些信誉好的足球投注网站深度。; 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]的所有可选值,外层调用就全部结束。 ;6.1 回溯法的算法框架;if (Constraint(t) Bound(t) ) { if (Solution(t)) Output(x); else t ++; } else t --; 分析: Constraint(t):约束函数,剪枝条件(剪去不可行解) Bound(t):限界函数,剪枝条件(剪去不可能最优的解) Solution(t):判断在当前扩展节点处是否已得到问题的可行解。它返回值为true时,当前扩展节点处x[1:t]是问题的可行解。此时,由Output(x)记录或输出得到的可行解。 它的返回值为false时,在当前扩展结点处x[1:t]只是问题的部分解,还需向纵深方向继续有哪些信誉好的足球投注网站。 有哪些信誉好的足球投注网站边界: f(n,t)和g(n,t) ;6.1 回溯法的算法框架;6.1 回溯法的算法框架;回顾;bag:array[1..maxn] of 0..1; 其中,bag[k]=1表示第k个物品要放 0表示第k个物品不放;本题可以用递归求解:;procedure work(k,wei:integer); var i,j:integer; for i:=1 downto 0 do if (wei-w[k]*i=0) { bag[k]:=i; count:=count+v[k]*i; if (k=n) and (countbest) {best:=count; for j:=1 to n do y[j]:=bag[j]; } if kn then work(k+1,wei-w[k]*i); count:=count-c[k]*i; {状态恢复} } ;在一个n*n的国际象棋棋盘上放置n个皇后,使得它们中任意2个之间都不互相“攻击”,即任意2个皇后不可在同行、同列、同斜线上。 输出N,⑴求N皇后问题的一种放法; ⑵求N皇后问题的所有放法;要素二:约束条件;;;程序结束条件: 一组解:设标志,找到一解后更改标志,以标志做为结束循环的条件。 所有解:k=0;Nqueens() { x[1] ← 0 k ← 1 while k0 do {

文档评论(0)

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

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

1亿VIP精品文档

相关文档