贪婪技术9.pptVIP

  1. 1、本文档共36页,可阅读全部内容。
  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文档。上传文档
查看更多
贪婪技术9

哈夫曼树(Huffman Trees) 哈夫曼树(Huffman Trees) * * * * ? School of Computer Science and Technology, SWUST * / 带有限期的作业排序 问题描述 假定只能在一台机器上处理n个作业,每个作业均可在单位时间内完成;又假定每个作业I都有一个截止期限di0(是整数),当且仅当作业i在它的期限截止之前被完成时,则获得pj0的效益。 这个问题的一个可行解是这n个作业的一个子集合J,J中的每个作业都能在各自的截止期限之前完成,可行解的效益值是J中这些作业的效益之和∑p。具有最大效益值的可行解就是最优解。 ? School of Computer Science and Technology, SWUST * / 带有限期的作业排序实例 例3.2 n=4,(p1,p2,p3,p4)=(100,10,15,20)和(d1,d2,d3,d4)=(2,1,2,1),这个问题可能的可行解和他们的效益值为: 可行解 处理顺序 效益值 ① (1) 1 100 ② (2) 2 10 ③ (3) 3 15 ④ (4) 4 20 ⑤ (1,2) 2,1 110 ⑥ (1,3) 1,3或3,1 115 ⑦ (1,4) 4,1 120 ⑧ (2,3) 2,3 25 ⑨ (3,4) 4,3 35 ? School of Computer Science and Technology, SWUST * / 带限期的作业排序算法 为了得到最优解,应制定如何选择下一个作业的量度标准,利用贪心策略,使得所选择的下一个作业在这种量的下达到最优。 可把目标函数∑p作为量度,则下一个要计入的作业将是使得在满足所产生的J是一个可行解的限制条件下使∑p得到最大增加的作业,这秩序将pi按降序来排列就可以了。 ? School of Computer Science and Technology, SWUST * / 带限期的作业排序算法 作业按p1≥ p2≥ …≥ pn的次序输入: Procedure GREEDY_JOB(D,J,n) J?{1} for I?2 to n do if J∪{I}的所有作业都能在他们的截止期限前完成 then J?J∪{I} endif repeat End GREEDY_JOB ? School of Computer Science and Technology, SWUST * / 更快的作业排序算法实例 n=5,(p1,…,p5)=(20,15,10,5,1)和(d1,…,d5)=(2,2,1,3,3) J 已分配的时间片 正被考虑的作业 动作 Φ 无 1 分配[1,2] {1} [1,2] 2 分配[0,1] {1,2} [0,1][1,2] 3 不适合,舍弃 {1,2} [0,1][1,2] 4 分配[2,3] {1,2,4} [0,1][1,2][2,3] 5 舍弃 ? School of Computer Science and Technology, SWUST * / 贪婪技术小结 贪婪技术建议通过一系列步骤来构造问题的解,每一步对目前构造的部分解做一个扩展,直到获得问题的完整解为止。核心是:每一步选择都必须满足可行、局部最优、不可取消原则。 Prim算法 Kruskal算法 Dijkstra算法 * * * * * * * * * * * * * * * * * * * * * * * * * * ? School of Computer Science and Technology, SWUST ? School of Computer Science and Technology, SWUST 算法分析与设计 Analysis and Design of Computer Algorithms 第九章 贪婪技术 Greedy Technique ? School of Computer Science and Technology, SWUST * / 贪婪技术(Greedy Technique) 教学内容 贪婪技术定义及其解题步骤 背包问题的贪婪策略(Knapsack Problem) Prim算法 Kruskal算法 Dijkstra算法 哈夫曼树(Huffman Trees) 要求 掌握贪婪技术的原理、效率分析方法,以及在常见问题问题中的应用。 ? School of Computer Science and Technology, SWUST * / 找零钱问题(change-making problem) 用当地面额为d1d2…dm的最少数量的硬币找出金额为n

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档