第6章 分支限界法.ppt

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

第6章 分支限界法 学习要点 理解分支限界法的剪枝搜索策略。 掌握分支限界法的算法框架 (1)队列式(FIFO)分支限界法 (2)优先队列式分支限界法 通过应用范例学习分支限界法的设计策略。 (1)单源最短路径问题 (2)装载问题; (3)布线问题 (4)0-1背包问题; (5)最大团问题; (6)旅行售货员问题 (7)电路板排列问题 (8)批处理作业调度问题 6.1 分支限界法的基本思想 分支限界法解题步骤 在问题的边带权的解空间树中进行广度优先搜索 找一个叶结点使其对应路径的权最小(最大) 当搜索到达一个扩展结点时,一次性扩展它的所有儿子 将满足约束条件且最小耗费函数?目标函数限界的儿子,插入活结点表中 从活结点表中取下一结点同样扩展 直到找到所需的解或活动结点表为空为止 分支限界法与回溯法的差别 分支限界法不仅通过约束条件, 而且可通过目标函数的限界来减少无效搜索. 回溯法是深度优先搜索, 而分支限界法是广度优先搜索. 采用广度优先搜索策略的目的是: 尽早发现剪枝点. 算法实现时,通常用极大(小)堆来实现最大(小)优先队列,提取堆中下一个结点为当前扩展结点,体现最大(小)费用优先的原则。 极大堆满足一个节点必定不小于其子节点,极小堆正好相反。 极大堆中最大的元素必定是其根节点,堆排序算法正是根据这个特性而产生的:对一个序列,将其构造为极大堆,然后将根节点(数组首元素)和数组的尾元素交换,之后对除了尾元素之外的序列继续以上过程,直到排序完成。 堆排序 堆排序 堆的定义 n 个元素的序列 {k1,k2,…,kn}当且仅当满足下列关系时,称为堆: ki≤k2i ki≥k2i i=1,2,…,n/2 ki≤k2i+1 ki≥k2i+1 堆排序思路 建立在树形选择排序基础上 将待排序列建成堆(初始堆生成)后,序列的第一个元素(堆顶元素)就一定是序列中的最大元素; 将其与序列的最后一个元素交换,将序列长度减一; 再将序列建成堆(堆调整)后,堆顶元素仍是序列中的最大元素,再次将其与序列最后一个元素交换并缩短序列长度; 反复此过程,直至序列长度为一,所得序列即为排序后结果。 堆排序举例 堆排序举例 待排记录的关键字 {32,12,91,26,74,58,63,85} 堆排序的结果为: {12,26,32,58,63,74,85,91}。 0-1背包问题:队列式分支限界法 用一个队列存储活结点表,初始为空 A为当前扩展结点,其儿子结点B和C均为可行结点,将其按从左到右顺序加入活结点队列,并舍弃A。 按FIFO原则,下一扩展结点为B,其儿子结点D不可行,舍弃;E可行,加入。舍弃B C为当前扩展结点,儿子结点F、G均为可行结点,加入活结点表,舍弃C 扩展结点E的儿子结点J不可行而舍弃;K为可行的叶结点,是问题的一个可行解,价值为45 当前活结点队列的队首为F, 儿子结点L、M为可行叶结点,价值为50、25 G为最后一个扩展结点,儿子结点N、O均为可行叶结点,其价值为25和0 活结点队列为空,算法结束,其最优值为50 0-1背包问题:优先队列式分支限界法 用一个极大堆表示活结点表的优先队列,其优先级定义为活结点所获得的价值。初始为空。 由A开始搜索解空间树,其儿子结点B、C为可行结点,加入堆中,舍弃A。 B获得价值45,C为0. B为堆中价值最大元素,并成为下一扩展结点。 B的儿子结点D是不可行结点,舍弃。E是可行结点,加入到堆中。舍弃B。 E的价值为40,是堆中最大元素,为当前扩展结点。 E的儿子J是不可行叶结点,舍弃。K是可行叶结点,为问题的一个可行解价值为45. 继续扩展堆中唯一活结点C,直至存储活结点的堆为空,算法结束。 算法搜索得到最优值为50,最优解为从根结点A到叶结点L的路径(0,1,1)。 与回溯法类似,也可以用剪枝函数加速搜索过程。 剪枝函数给出每个可行结点相应的子树可能获得的最大价值的上界。 如这个上界不会比当前最优值更大,则可以剪去相应的子树。 也可将上界函数确定的每个结点的上界值作为优先级,以该优先级的非增序抽取当前扩展结点。由此可快速获得最优解。 例2 4城市旅行售货员问题 6.2 单源最短路径问题 例如,例中从s出发经边a、e、q(路长5)和经c、h(路长6)的两条路径到达G的同一顶点。 但在解空间树中,这两条路径相应于解空间树的2个不同的结点A和B。 由于A的路长较小,故可将以结点B为根的子树剪去。此时称结点A控制了结点B。 6.3 装载问题 6.4 布线问题 印刷电路板将布线区域分成n?m个方格。 精确的电路布线问题: 要求确定连接方格a中点到方格b中点的最短布线方案。 一旦方格b成为活节点, 表示找到了最优方案。 这个问

文档评论(0)

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

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

1亿VIP精品文档

相关文档