- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1分支限界法的基本思想-四川农业大学
本章主要内容
分支限界法基本思想
单源最短路径问题
装载问题
0-1背包问题
巡回旅行商问题
引言
分支限界法
类似于回溯法,也是一种在问题的解空间树T中搜索问题解的算法。
分支限界与回溯法
求解目标
一般情况下,回溯法的求解目标是找出解空间树中满足约束条件的所有解(计数、多少种可能)。
分支限界法的求解目标是找出满足约束条件的一个解(最优解,最大最小值)。
分支限界法与回溯法的搜索方式不同
回溯法:深度优先
分支限界法:广度优先或最小耗费(最大价值)优先
6.1 分支限界法的基本思想
6.1.1 基本思想
分支限界、分支定界(branch and bound)是另一种系统地搜索解空间的方法,它与回溯法的主要区别在于对E-节点的扩充方式。
每个活节点有且仅有一次机会变成E-节点。
当一个节点变为E-节点时,则生成从该节点移动一步即可到达的所有新节点。
在生成的节点中,抛弃那些不可能导出(最优)可行解的节点,其余节点加入活节点表,然后从表中选择一个节点作为下一个E-节点。
从活节点表中取出所选择的节点并进行扩充,直到找到解或活动表为空,扩充过程才结束。
6.1 分支限界法的基本思想
6.1.2 常见的两种分支限界法
两种常用选择下一个E-节点的方法
先进先出(FIFO)
即从活节点表中取出节点的顺序与加入节点的顺序相同,因此活节点表的性质与队列相同。
最小耗费或最大收益法
每个节点都有一个对应的耗费或收益。
查找一个具有最小耗费的解
用最小堆来构造活节点表,下一E-节点是有最小耗费的活节点,体现最小费用优先。
用最大堆来构造活节点表,下一E-节点是有最大收益的活节点,体现最大效益优先。
6.1 分支限界法的基本思想
6.1.3 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, O =N(25), O(0)
不搜索一不可行结点为根的子树
6.1 分支限界法的基本思想
队列 n=3, c=30, w=[16,15,15], p=[45,25,25]
1
0
6.1 分支限界法的基本思想
优先队列式分支限界法:
[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)
可用剪枝函数加速搜索。
6.1 分支限界法的基本思想
优先队列 n=3, c=30, w=[16,15,15], p=[45,25,25]
1
0
6.1 分支限界法的基本思想
6.1.4 旅行售货员问题
队列式分支限界法:
[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)
6.1 分支限界基本思想
6.1 分支限界法的基本思想
优先队列式分支限界法:
[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.1 分支限界法
6.2 单源最短路径问题
6.2.1 问题描述
有向图G中,每边有一非负权。要求从源顶点s到目标顶点t之间的最短路径。
用优先队列式分支限界法解产生的解空间树。
每个结点旁边的数字表示该结点所对应的当前路长。
6.2 单源最短路径问题
6.2.2 算法思想
优先队列式分支限界法用一极小堆来存储活结点表。其优先级是结点所对应的当前路长。
算法从源顶点s和空优先队列开始。
结点s被扩展后,它的儿子结点被依次插入堆中。
从堆中取出具有最小当前路长的结点作为当前扩展结点,依次检查与当前扩展结点相邻的所有顶点。
如果从当前扩展结
文档评论(0)