网站大量收购独家精品文档,联系QQ:2885784924

计算机算法设计与分析5第五章贪心方法.pptVIP

计算机算法设计与分析5第五章贪心方法.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 贪心方法 5.1 一般方法 方法适用的问题特点 方法的基础知识 方法的求解步骤及核心问题 方法的抽象化控制 方法的缺点和优点 一个现实世界里的例子 如果有一个机会可以帮助你梦想成真,那么你希望哪两个梦想成真: 1 去巴西看足球世界杯; 2 心仪已久的大学学习; 3 环球旅行; 4 参观2014青岛世博会现场。 贪心方法适用的问题特点 有这样一类问题:它有n个输入,而它的解就是这n个输入的某个子集,这些子集必须满足某些事先给定的条件。 基础知识 贪心方法是指在对问题求解时,总是做出在当前看来是最好的选择。 贪心方法的思想可以追溯到1823年J.C.Warnsdorff 解决马踏棋盘问题时给出的一个著名的算法。 贪心方法应用的典型问题有背包问题、带有期限的作业排序、最小生成树、单源点最短路径等问题。 贪心方法的求解步骤 贪心方法是根据具体的问题: 选取一种量度标准; 按此标准对n个输入进行排序; 按该顺序一次输入一个量; 如果这个输入量和当前该量度意义下的部分最优解加在一起不能产生一个可行解,则不把此输入加入到这个部分解中。 这种能够得到某种量度意义下的最优解的分级处理方法就是贪心方法。 贪心方法设计求解的核心问题 贪心方法设计求解的核心问题是选择能产生问题最优解的最优量度标准。 值得一提的是,把目标函数作为度量标准所得到的解也不一定是问题的最优解。 算法5.1 贪心方法的抽象化控制 Procedure GREEDY(A,n) solution?? for i?1 to n do x?SELECT(A) if FEASIBLE(solution, x) then solution?UNION(solution, x) endif repeat return (solution) End GREEDY 方法的缺点和优点 缺点: 不是对所有问题都能得到整体最优解。 需要证明后才能真正运用到题目的算法中。 优点: 一旦经过证明成立后,它就是一种高效的算法。 策略的构造简单易行。 对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。 5.2 背包问题 问题描述 背包问题实例 背包问题的贪心算法 定理5.1 即以目标函数为量度标准 该标准使得背包每装入一件物品就获得最大可能的效益值增量。 结果是一个次优解,原因是背包容量消耗过快。 选效益值和容量之比为量度标准 每一次装入的物品使它占用的每一单位 容量获得当前最大的单位效益 结果是一个最优解,因为每一单位容量 的增加将获得最大的单位效益值。 如果物品事先按照效益值的非增次序或物品重量的非降次序。那么利用算法5.2即可分别得到量度标准为最优(使每次效益增量最大或容量消耗最慢)的解。 定理5.1 如果p1?w1 ? p2?w2 ? ? ? pn?wn,则算法GREEDY-KNAPSACK对于给定的背包问题实例生成一个最优解。 定理5.1证明总结 分析贪心解的形式 假设最优解 比较贪心解和最优解 重新构造最优解 证明重新构造的最优解与贪心解相同 问题描述 假定只能在一台机器上处理n个作业, 每个作业均可在单位时间内完成;又假定每个作业i都有一个截止期限di?0(di是整数),当且仅当作业i在它的期限截止之前被完成时获得pi?0的效益。 该问题的一个可行解是这n个作业的一个子集合J,J中的每个作业都能在各自的截止期限之前完成,可行解的效益值是J中这些作业的效益之和?pj 。具有最大效益值的可行解就是最优解。 带限期的作业排序算法的实现思想 为得到最优解,贪心策略应制定一个量度标准,使得所选择的下一个作业在这种量度下达到最优。 选择目标函数? pj作为量度标准,使下一个要计入的作业是满足J是一个可行解的限制条件下使?pj得到最大增加的作业,只需将各作业按效益pi降序排列即可,即:p1? p2? ? ? pn . 算法5.3 带限期的作业排序算法描述 两个问题 算法5.3所描述的贪心方法是否能提供一个最优解? 对于给定的作业集合J,如何确定它是否是可行解? 定理5.2 对于作业排序问题用算法5.3所描述的贪心方法总是得到一个最优解。 证明思路: J是贪心方法求出的作业集合,I是一个最优解的作业集合。可以证明J和I具有相同的效益值,从而J也是最优解。 证明I?J。 设SJ和SI分别是J和I的可行调度表。令调度表中相同作业在相同的时间片执行。具体方法如下: 确定作业集合J是否是可行解 假定J中有k个作业,检验J的所有可能的排列 ??i1, i2, ?, ik是J中作业的一种排列; 完成作业ij的最早时间是j,1?j?n; 若排列中每个作业的dij

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档