算法分析第7章【荐】.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文档。上传文档
查看更多
算法分析第7章【荐】.ppt

第7章 分支限界法 概述 复杂的有限期作业调度问题 贷郞担问题的分支限界法 其他分支限界问题 分支限界法与回溯法的比较 概述 分支限界法是一个用途十分广泛的算法,运用这种算法的技巧性很强,不同类型的问题解法也各不相同。本节主要讲述分支限界法的定义、基本思想和几种不同的分支限界方法。其中,分支限界方法主要有FIFO分支限界方法、LIFO分支限界方法和LC分支限界方法。 什么是分支限界法 将问题分支为子问题、采用广度优先产生状态空间树的结点并使用剪枝函数对这些子问题限界而求解问题的方法称为分支限界法。 分支限界法是按照广度优先搜索的原则,一个活结点一旦成为扩展结点(E?结点)R后,算法将依次生成它的全部孩子结点,并将它们——加入活结点表,此时R自身成为死结点。算法从活结点表中另选一个活结点作为E?结点。 分支限界的基本思想 分支限界法的基本思想是对有约束条件的最优化问题的所有可行解(数目有限)空间进行搜索。 复杂的有限期作业调度问题 对于单处理机的带时限作业排序问题,如果每个作业具有相同的处理时间,则可以用贪心法求解。如果每个作业的处理时间允许不同,即取消处理每个作业需要一个单位时间的假设,带时限的作业排序问题可描述为:设有n个作业和一台处理机,每个作业所需的处理时间、要求的时限和收益可用三元组(ti,di,pi)表示,0≤i<n。其中,作业i的所需时间为ti,如果作业i能够在时限di内完成,将可收益pi,且ti ≤ di,i = 1,2,…,n。问题的要求是从n个作业中找到一个子集J,使得J中的作业可以在各自的期限内由一台处理机完成,并获得最大总收益。求使得总收益最大的作业子集J。 (复杂的有限期作业调度问题)设n = 4,(p1,t1,d1)=(5,l,l),(p2,t2,d2)=(10,2,3),(p3,t3,d3)=(6,1,2),(p4,t4,d4)=(3,l,l)。 贷郞担问题的分支限界法 从矩阵的一行(或列)的各元素中,减去该行(或列)的最小元素,使得该行(或列)至少包含一个零且其他元素均为非负值,称此操作为对此行(或列)“归约”。第i行(或第j列)中各元素减去的最小数ri(或tj)叫做第i行(或第j列)的“约数”。如果下个矩阵的所有行和列都已归约,则称此矩阵为原矩阵的“归约矩阵”。和数: L= + 称为原矩阵的“约数”。 利用LC检索,找出在图7-3(a)中所给出的图的最小周游路线。 按LC检索,每次将把活结点表中具有最小C的那个结点作为当前分支点,其余的比较或删除等过程与FIFO并无区别。图7-3给出了按LC检索产生状态空间树的过程。 其他分支限界问题 目前,分支限界法已经得到了广泛的应用。除了复杂的有限期作业调度问题和贷郞担问题的分支限界法,还有布线问题、0/1背包问题以及单源最短路径的分支限界法。 布线问题 印刷电路板将布线区域划分成n×n个方格阵列如图(a)所示。精确的电路布线问题要求确定连接方格a的中点到方格b的中点的最短布线方案。在布线时,电路只能沿直线或直角布线,如图(b)所示。为了避免线路相交,已布了线的方格做了封锁标记,其他线路不允许穿过被封锁的方格 0/1背包问题 背包问题有两种:一种是装包物品可以分割,称为一般背包问题;另一种是物品不可以分割,称为0/1背包问题。一般背包问题可以用贪心法求解,而0/1背包问题可以用动态规划法、回溯法和分支限界法求解。 分支限界法与回溯法的比较 回溯法与分支限界法都是以构造一棵状态空间树为基础的穷举法,其树的结点反映了对一个部分解所做的特定选择。如果能确定某个结点子孙所对应的选择不能成为问题的解,这两种方法都会立即停止对这个结点的处理。 所采取的穷举并不断剪枝的处理过程,大致可分为四个步骤: (1)确定问题的可能解空间,相当于找出进行穷举的搜索范围。 (2)采取一种便于搜索的方式组织所有的可能解,一般是生成可能解的空间树。 (3)以某种方式搜索可能解的空间树,基本方式有两种,即: ① 深度优先搜索(Deep First Searching,DFS)方式,这就是回溯技术。常见的解八皇后、哈密顿等的问题算法,属于回溯算法。 ② 广度优先搜索(BFS)方式,这就是分枝限界技术。常见的复杂的有限期作业调度、货郎担等问题的算法,属于分支限界法。 (4)在搜索过程中利用判定函数(也称代价函数或限界函数),通过“剪枝”来加速搜索过程。 小结 分支限界法是一种算法设计技术,它强化了状态空间树的生成方法。也就是估计可能从树的当前节点中求得的最佳值,如果这个估计值不超过当前过程中已经得到的最佳解,接下来就不会再考虑该节点了。本节的重点是掌握分支限界法的定义、基本思想及其典型算法。难点在于运用分支限界法解决具体问题时,对上下界函数的确定上。

文档评论(0)

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

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

1亿VIP精品文档

相关文档