- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南开大学算法导论第四章课件
第四章 贪心算法
苏 明
1
内容安排
4.1 区间调度:贪心算法领先
4.2 最小延迟调度:一个交换论证
4.3 最有高速缓存:一个更复杂的交换论证
4.4 一个图的最短路径
4.5 最小生成树问题
*4.6 实现Kruskal 算法
*4.7 聚类
4.8 Huffman 码与数据压缩
*4.9 最小费用有向树
2
贪心算法
贪心(greedy )看起来会有一点负面的
印象
从正反两面研究“ 目光短浅” 的贪心法时,
要有一种全面的理解。
3
贪心算法
直观上说,一个算法是贪心的,如果此算法是
通过一些小的步骤来建立一个解,在每一步根
据局部情况选择一个决定使得某些主要的指标
能得到优化。
当一个贪心算法成功求解了一个非平凡的问题,
通常隐含了某些有趣的,与问题本身结构有关
的一些性质:存在一个局部判断规则可以用来
构造问题的最优解。
4
贪心算法
本章逐渐介绍两个基本的方法来证明一个贪心
算法对一个问题能够提供一个最优解。
1. 贪心算法领先的概念:每一步都比其他的算
法好,从而证明产生了一个最优解。
2.交换论证:考虑对这个问题的任何可能解,
逐渐把它转换成由贪心算法找到的解,而且不
影响解的质量。从而证明了贪心法找到了一个
至少与其它解一样好的解。
5
4.1 区间调度:贪心算法领先
回顾第一章考虑的五个典型问题的第一
个问题:一组需求{1,2,…,n}; 第i个需求
与一个始于s(i)且止于f(i) 的时间区间相对
应。如果没有两个需求在时间上重叠,
我们就说需求的子集是相容的。目标是
给出一个最大的相容子集。
6
4.1 区间调度
区间调度问题:
任务(需求)j 开始时间 s ,结束时间 f .
j j
两个任务是相容的如果任务的时间区间不相交
目的:找到数目尽可能多的相容任务
a
b
c
d
e
f
g
h
Time
0 1 2 3 4 5 6 7 8 9 10 11 7
4.1 区间调度
解决问题的思路
按照某种顺序来安排任务
需要通过探索,来发现一个实用的规则
文档评论(0)