第十讲回溯法 算法的设计与分析课件.pptVIP

第十讲回溯法 算法的设计与分析课件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十讲回溯法 算法的设计与分析课件.ppt

Algorithms Design Techniques and Analysis 估计成本的计算 设A是结点R的归约成本矩阵,S是R的儿子且R,S对应周游路线中的边i,j。 在S是非叶结点的情况下,S的规约成本矩阵按以下方法获得: 为保证这条周游路线采用边i,j而不采用其它由i出发或者进入j的边,将A中i行和j列的元素置为?; 为防止使用边j,i,将A中j行i列的元素置为为?; 对于那些不全为?的行和列施行归约规则得到S的归约成本矩阵,令其为B,矩阵约数为r; S的估计成本值可计算为: ?(S) = ?(R)+A(i,j)+r Algorithms Design Techniques and Analysis 左右儿子的估计成本计算 设A是结点R的归约成本矩阵,SL是R的左儿子且对应包含边i,j,SR是R的右儿子且对应不包含边i,j 。 SL的归约成本矩阵BL,矩阵约数rL; SR的归约成本矩阵BR和矩阵约数rR。 由于SR代表不包含边i,j 的周游,因此应将R的归约成本矩阵A中的元素A(i,j)置成?后,再归约此矩阵不全为?的行和列(实际上只需重新归约第i行和第j列),即得SR的归约成本矩阵BR和矩阵约数 rR= mink?j{A(i,k)}+mink?i{A(k,j)} 计算?(SR) 时,由于不包含边A(i,j),因此不必加入; 因此,R的左、右儿子的估计成本值为: ?(SL) = ?(R)+A(i,j)+ rL ?(SR) = ?(R)+ rR Algorithms Design Techniques and Analysis 边的取舍次序 如果选取边i,j,则这条边将解空间分成两个子集合,根的左子树表示包含边i,j的所有周游,根的右子树表示不含边i,j的所有周游; 如果左子树中包含一条最小成本周游路线,则只需再选取n-1条边;如果所有的最小成本周游路线都在右子树中,则还需要对边做n次选择; 在左子树中找最优解比在右子树中找最优解容易; 希望选取一条最有可能在最小成本周游路线中的边i,j作为分割边。 选择边的规则: 选取一条使其右子树具有最大?值的边,OR, 选取使左、右子树?值相差最大的边。。。 Algorithms Design Techniques and Analysis 选取一条使其右子树具有最大?值的边 如果选取的边i,j在R的归约矩阵A中对应的元素A(i,j)不为0,则必有rR=0,即?(SR) = ?(R);显然不能使R的右子树的?值最大; 因此,为了使R的右子树的?值最大,应从R的归约成本矩阵元素为0的对应边中选取有最大rR值的边。 Algorithms Design Techniques and Analysis 互相攻击 假设: 问题的解由 (x1,…,xn)表示 因为每行只放一个皇后,两个皇后不能处在同一行上。 如果两个皇后处在同一列上 ,他们互相攻击 In this case, xi=xj; 如果两个皇后处在同一条对角线上上 ,他们互相攻击 In this case, xi-xj=i-j or xi-xj=j-i. Algorithms Design Techniques and Analysis 算法13.3 4-QUEENS(迭代) 输入: 空。 输出:对应于4皇后问题的解的向量x[1..4]。 1. for k?1 to 4 2. x[k]?0 {没有皇后放置在棋盘上} 3. end for 4. flag?false 5. k?1 6. while k ?1 7. while x[k] ?3 8. x[k]?x[k]+1 9. if x为合法解then set flag?true且从两个while循环退出 10. else if x是部分解 then k?k+1 {前进} 11. end while 12. x[k]?0 13. k?k-1 {回溯} 14. end while 15. if flag then output x 16. else output “no solution” Algorithms Design Techniques and Analysis 例子: 4-Queens Problem 1 X X 2 X X X X 1 2 X 3 X X X X 1 X X X 2 3 X X 4 1 2 X X Find a solution! Algorithms Design Techniques and Analysis 算法分析 现在考虑一个求解一般的n皇后问题的蛮力方法 由于没有两个

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档