第十三章分支限界法资料.pptVIP

  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文档。上传文档
查看更多
heyichao@sjzue.edu.cn 3. 常见的两种分支限界法 ● 队列式(FIFO)分支限界法 按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。 ● 优先队列式分支限界法 按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。 4. 限界函数的构造 限界函数要能够提供一个评定候选扩展结点的方法,以便确定哪个结点最有可能在通往目标的最佳路径上。 一个限界函数f(d)通常可以由两个部分构成:⑴从开始结点到结点d的已有耗损值g(d);⑵再从结点d到达目标的期望耗损值h(d)。即: 5. 优先队列分支限界算法的设计思想(模式) 首先,确定一个合理的限界函数,并根据限界函数确定问题的目标函数的界[down, up]; 然后,按照广度优先策略遍历问题的解空间树: 当搜索到达一个扩展结点时,一次性扩展它的所有孩子,估算每一个孩子结点的目标函数的上(下)界值(又称为耗费函数值); 将那些满足约束条件且耗费函数值不超过目标函数的界的孩子,插入活结点表H中,再从H表中取耗费函数值极大(小)的下一结点同样扩展; 直到找到所需的解或H表为空为止。 对于H中的叶子结点 其耗费函数值是极值(极大或极小),则该叶子结点对应的解就是问题的最优解; 否则,调整问题的目标函数的界为该叶子结点的耗费函数值,然后丢弃H表中超出目标函数界的结点,再次选取结点继续扩展。 1. 问题描述 下面以一个例子来说明单源最短路径问题:在下图所给的有向图G中,每一边都有一个非负边权。要求图G的从源顶点s到目标顶点t之间的最短路径。 Input:有向图G; Output:从源点s到终点t的最短路径长度。 1. 设定目标函数的限界down=0,up=∞ 2. 计算初始结点1的f(1)=0,将初始结点插入最小堆H; 3. while (H ≠Φ) 4. { 5. 从H中做DELETEMIN的操作,用p带回相应结点; 6. 产生p的所有满足约束条件的后继结点d并计算f(d); 7. while 对每个结点d 8. { if f(d)up then 9. { if d是叶子结点 then 10. { up=f(p); 11. 删除活结点表(最小堆H)中函数值大于up值的结点; 12. if (H=Φ) then 13. 从叶子结点沿parent指针输出解,退出; 14. } 15. else 将d结点插入最小堆H中; 16. } 17. } 18. } 分析:问题的解可表示为n元向量{x1, x2, ... xn }, xi?{0,1},则可用排序树表示解空间, 在树中做广度优先搜索。 约束条件: 目标函数: 实例:假设有4个物品,其重量分别为(4, 7, 5, 3),价值分别为(40, 42, 25, 12),背包容量W=10。将给定物品按单位重量价值从大到小排序,结果如下: 分支限界法求解0/1背包问题: 分支限界法求TSP的搜索 归约矩阵以及约数 前面的搜索的效率不高,几乎要搜索全部的状态空间。其原因是评价函数以及上下界的估计太低。为了设计求解TSP问题的更好的评价函数,先定义其代价矩阵的归约矩阵和约数。 归约矩阵和约数举例 计算下面例子中的归约矩阵及其约数如下: 约数是周游路线长度的下界 定理:设C是图G的代价矩阵,P是周游路线,则P的代价,即∑i, j∈P cij = r + ∑i, j∈P c’ij , 式中C’ = [c’ij]是C的归约矩阵,r为约数。 定义期望函数h(d) 对开始结点1,令g(1) = 0,h(1) = r,f(1) = r。 若从结点1选择了一条边,不妨设边1, 2,则令g(2) = f(1)+从1到2的距离l ,显然l应该是c’12,而不应该再是c12了。 那么h(2) = ? 自然可以想到h(2)可以是从2开始的路线的下界r2。是否也可用类似求r一样去求新的约数r2呢? 可以,但在此之前应将边1, 2和所有边1, k和边k,

文档评论(0)

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

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

1亿VIP精品文档

相关文档