ch6分枝限界摘要.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析 中原工学院计算机学院 王璐 E-Mail:dqx_wl@163.com 2008年10月8日 第六章 分支限界法 学习要点 理解分支限界法的剪枝搜索策略。 掌握分支限界法的算法框架 队列式(FIFO)分支限界法 优先队列式分支限界法 通过应用范例学习分支限界法的设计策略。 单源最短路径问题 装载问题; 布线问题 0-1背包问题; 最大团问题; 旅行售货员问题 电路板排列问题 批处理作业调度问题 引言 分支限界法类似于回溯法,也是一种在问题的解空间树T中搜索问题解的算法。 分支限界法与回溯法的求解目标不同: 回溯法是找出满足约束条件的所有解 分支限界发誓找出满足条件的一个解,或某种意义下的最优解 搜索方式不同 回溯法:深度优先 分支限界法:广度优先或最小耗费优先 6.1 分支限界法的基本思想 一、基本思想 二、常见的两种分支限界法 三、0-1背包问题 四、旅行售货员问题 一、基本思想 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。 在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。 此后,从活结点表中取下一结点成为当前扩展结点,并重复上述结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空时为止。 二、常见的两种分支限界法 从活结点表中选择下一扩展结点的不同方式导致不同的分支限界法: 队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。 优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。 最大优先队列:使用最大堆,体现最大效益优先 最小优先队列:使用最小堆,体现最小费用优先 三、0-1背包问题 考虑如下0-1背包问题的实例: n=3, c=30, w=[16,15,15], p=[45,25,25] 队列式分支限界法: [A] B, C = B, C [B, C] D, E = E [C, E] F, G = F, G [E, F, G] J, K = K(45) [1,0,0] [F, G] L, M =L(50) [0, 1, 1] M(25) [G] N, 0 =N(25), O(0) 不搜索一不可行结点为根的子树 优先队列式分支限界法: [A] B, C = B(45), C(0) [B, C] D, E = E(45) [E, C] J, K = K(45) [1, 0, 0] [C] F, G = F(25), G(0) [F, G] L, M = L(50), [0, 1, 1] M(25) [G] N, O = N(25), O(0) 可用剪枝函数加速搜索 四、旅行售货员问题 队列式分支限界法: [A] B, C, D [B, C, D] E, F [C, D, E, F] G, H [D, E, F, G, H] I, J [E, F, G, H, I, J] K(59) [1,2,3,4] [F, G, H, I, J] L(66) [G, H, I, J] M(25) [1, 3, 2, 4] [H, I, J] 1-3-4(26) [I, J] O(25) [J] P(59) 优先队列式分支限界法: [A] B, C, D = B(30), C(6), D(4) [D, C, B] I, J = I(14), J(24) [C, I, J, B] G, H = G(11), H(26) [G, I, J, B, H] M = M(25) [1, 3, 2, 4] [I, J, B, H] O = O(25) [J, B, H] P = P(59) [B, H] B, H 限界掉 6.2 单源最短路径问题 一、问题描述 二、算法思想 三、剪枝策略 四、算法描述 一、问题描述 下面以一个例子来说明单源最短路径问题:在右上图所给的有向图G中,每一边都有一个非负边权。要求图G的从源顶点s到目标顶点t之间的最短路径。 右下图是用优先队列式分支限界法解有向图G的单源最短路径问题产生的解空间树。其中,每一个结点旁边的数字表示该结点所对应的当前路长。 二、算法思想 解单源最短路径问题的优先队列式分支限界法用一极小堆来存储活结点表。其优先级是结点所对应的当前路长。 算法从图G的源顶点s和空优先队列开始。结点s被扩展后,它的儿子结点被依次插入堆中。此后,算法从堆中取出具有最小当前路长的结点作为当前扩展结点,并依次检查与当前扩展结点相邻的所有顶点。如果从当前扩展结点i到顶点j有边可达,且从源出发,途经顶点i再到顶点j的所相应的路径的长度小于当前最优路

文档评论(0)

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

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

1亿VIP精品文档

相关文档