第4章__贪心算法课题.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文档。上传文档
查看更多
提纲 贪心算法的概念 活动安排问题 最优装载问题 哈夫曼编码 单源最短路径 最小生成树 多机调度问题 * 多机调度问题 多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。 这个问题是NP完全问题,到目前为止还没有有效的解法。对于这一类问题,用贪心选择策略有时可以设计出较好的近似算法。 * 多机调度问题 采用最长处理时间作业优先的贪心选择策略可以设计出解多机调度问题的较好的近似算法。 按此策略,当 时,只要将机器i的[0, ti]时间区间分配给作业i即可,算法只需要O(1)时间。 当 时,首先将n个作业依其所需的处理时间从大到小排序。然后依此顺序将作业分配给空闲的处理机。算法所需的计算时间为O(nlogn)。 * 多机调度问题 例如,设7个独立作业{1,2,3,4,5,6,7}由3台机器M1,M2和M3加工处理。各作业所需的处理时间分别为{2,14,4,16,6,5,3}。按算法greedy产生的作业调度如下图所示,所需的加工时间为17。 * 小结 贪心算法的概念 总是作出在当前看来最好的选择。它所作出的选择只是在某种意义上的局部最优选择。 举例 活动安排问题 最优装载问题 哈夫曼编码 单源最短路径 最小生成树 多机调度问题 * * * * * 哈夫曼编码 使平均码长达到最小的前缀码编码方案称为给定编码字符集C的最优前缀码。 构造哈夫曼编码 哈夫曼提出构造最优前缀码的贪心算法,由此产生的编码方案称为哈夫曼编码。 哈夫曼算法以自底向上的方式构造表示最优前缀码的二叉树T。 算法以|C|个叶结点开始,执行|C|-1次的“合并”运算后产生最终所要求的树T。 * 哈夫曼编码 在书上给出的算法huffmanTree中 编码字符集中每一字符c的频率是f(c)。以f为键值的优先队列Q用在贪心选择时有效地确定算法当前要合并的2棵具有最小频率的树。 一旦2棵具有最小频率的树合并后,产生一棵新的树,其频率为合并的2棵树的频率之和,并将新树插入优先队列Q。 经过n-1次的合并后,优先队列中只剩下一棵树,即所要求的树T。 * 哈夫曼编码 * a b c d e f 频率(千次) 45 13 12 16 9 5 定长码 000 001 010 011 100 101 变长码 0 101 100 111 1101 1100 定长码: 3*(45+13+12+16+9+5) = 300 千位 变长码: 1*45+3*13+3*12+3*16+4*9+4*5 = 224 千位 哈夫曼编码 * 45 a 13 b 12 c 16 d 9 e 5 f 哈夫曼编码 * 45 a 13 b 12 c 16 d 9 e 5 f 哈夫曼编码 * 14 0 1 45 a 13 b 12 c 16 d 9 e 5 f 哈夫曼编码 * 45 a 16 d 14 0 1 9 e 5 f 13 b 12 c 哈夫曼编码 * 45 a 16 d 14 0 1 9 e 5 f 13 b 12 c 25 0 1 哈夫曼编码 * 45 a 16 d 14 0 1 9 e 5 f 13 b 12 c 25 0 1 哈夫曼编码 * 45 a 16 d 14 0 1 9 e 5 f 13 b 12 c 25 0 1 30 0 1 哈夫曼编码 * 45 a 13 b 12 c 25 0 1 16 d 14 0 1 9 e 5 f 30 1 0 哈夫曼编码 * 45 a 13 b 12 c 25 0 1 16 d 14 0 1 9 e 5 f 30 0 1 55 0 1 哈夫曼编码 * 45 a 13 b 12 c 25 0 1 16 d 14 0 1 9 e 5 f 30 0 1 55 0 1 哈夫曼编码 * 45 a 13 b 12 c 25 0 1 16 d 14 0 1 9 e 5 f 30 0 1 55 0 1 100 1 0 100 0 101 1100 1101 111 哈夫曼编码 * 字母 a b c d e f 变长码 0 101 100 111 1101 1100 例: 010011101011000111101100111 0 100 111 0 101 100 0 111 101 100 111 a

文档评论(0)

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

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

1亿VIP精品文档

相关文档