- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
排序问题的PTAS 排序问题与装箱问题有如下紧密联系: 排序问题存在最优解t,当且仅当n个大小分别为 的物件可以装入m个容量为t的箱子。 因此,可将排序问题自转化为装箱问题: 令I表示n个物件大小 ;令 表示能装下n个物件的容量为t的箱子的最少数目; 则最小排序问题转化为: 基本思想 不同物件型号数目固定的装箱问题 动态规划 动态规划(续) 动态规划(续) 把排序问题划归为限制装箱问题 基本思想: 如果我们能容忍在计算最小makespan问题的一点小的误差,则我们可把该问题在多项式时间内划归为限制装箱问题。 主要有两种类型的误差: 把物件的尺寸做一些调整,使得不同尺寸的数目有界。 终止二分搜索,保证多项式时间算法。 每种误差都可以做到任意小,但代价是计算时间的增加。 但对固定的误差, 我们可以得到多项式时间近似算法。 箱子容量固定的装箱算法(核心算法) 核心算法(续) 二分搜索法 二分搜索 Thanks, End 装箱问题和排序问题 本讲主要内容 装箱问题(Bin Packing) 最小完工时间安排(排序问题)(Minimum Makespan Scheduling) Bin Packing 装箱问题:给定n个物件,大小为 用单位体积的箱子来装这些物件,找一个装箱方案使得所用的箱子数目最少? 通俗地说,把 分成最少的组数, 使得每组数的和不超过1。 在工业中有许多应用,譬如在下料问题中,箱子代表标准木料的长度,而 表示实际问题中需要裁截成的木料长度。当然,需要的标准料越少越好。 一个2倍近似算法 证明 一个不可逼近性结果 NP-难问题按照其可逼近性分类 多项式时间近似方案(Polynomial Time Approximation Scheme ,PTAS), 渐近多项式时间近似方案 一个渐进的PTAS 限制装箱问题 限制装箱问题 定理2的证明 算法总结 排序问题 排序问题( Minimum Makespan Scheduling) 给定n个工件 的加工时间 以及一个整数m, 给工件安排一个在m个相同机器上的加工顺序,使得最后的完工时间 ( makespan)最小。 该问题是排序问题中最简单的问题。在生产调度中有广泛的应用。 Graham 的2-近似算法 算法描述(List Scheduling) Step 1.将工件任意排序; Step 2.将工件按照上述顺序分配给机器,将下一 个工件安排给当前负荷最轻(剩余加工时 间最少)的机器。直到所有工件加工完毕. 算法分析 上述算法的要点是, 让机器不要闲着,只要有机器加工完,就把排在最前面尚待加工的工件让该机器去做。 算法分析的要点是:最小makespan取决于最后一个工件的完工时间,在最后一个活开始加工之前,没有机器是空闲的。 一个紧的例子 Lowest Fit Decreasing(LFD) 算法描述(LFD) Step 1.将工件按工时从高到低排列; Step 2.将工件按照上述顺序分配给机器,将下一 个工件安排给当前负荷最轻(剩余加工时 间最少)的机器。直到所有工件加工完毕.
文档评论(0)