算法设计与分析讲义chapter5.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计与分析讲义chapter5

第五章 Greedy算法 5.1 Greedy算法的基本原理 Greedy算法 ·Greedy算法的基本思想 ·求解最优化问题的算法包含一些列步骤 ·每一步都有一组选择 ·作出在当前看来最好的选择 ·希望通过作出局部优化选择达到全局优化选择。 *Greedy算法不一定总产生优化解。 *一个Greedy算法是否产生优化解,需要严格证明。 ·Greedy算法产生优化解的条件 ① Greedy-choice-property ② Optimal substructure 2. Greedy-choice-property(Greedy选择性) 定义1 若一个优化问题的全局优化解可以通过局部优化选择得到,则该问题称为具有Greedy选择性。 *Greedy算法与动态规划方法的不同 动态规划:每一步作一个选择 — 依赖于子问题的解。 Greedy方法: 每一步作一个选择 — 不依赖于子问题的解。 *一个问题是否具有Greedy选择性需要证明。 3.优化子结构 定义2 若一个优化问题的优化解包括它的子问题的优化解,则称其具有优化子结构。 4.与动态规划方法的比较 ·动态规划方法可用的条件 优化子结构 子问题相交性 子问题空间小 ·Greedy方法可用的条件 优化子结构 Greedy选择性 *可用Greedy方法时,动态规划方法可能不适用。 *可用动态规划方法时,Greedy方法可能不适用。 5.Greedy算法正确性证明方法 证明算法所求解的问题具有优化子结构; 证明算法所求解的问题具有Greedy选择性; 算法按照②中的Greedy选择性进行局部优化选择。 5.2 调度问题 问题的定义 ·活动:设S={1,2,…,n}是n个活动的集合,每个活动使用一个 资源,每个资源只能为一个活动使用。 ·起始终止[si,fi]时间: 每个活动i有一个起始时间si,一个终 止时间fi,si( fi ·相容活动:活动i和j是相容的,若sj(fi或si(fj,即 ·调度问题: 输入:S={1,2,…,n},F={[si,fi]},n(i(1 输出:S的最大相容集合 2. 调度算法 ·基本思想 为了选择最多的相容活动,每次选fi最小的活动, 即使以后可选更多的活动——“贪心”。 ·算法 设f1(f2(….(fn已排序 Greedy-Activity-Selector(S,F) n(lenyth(s); A({1} j(1 FOR i(2 To n Do IF si(fj THEN A(A∪{i};j(i; Return A. ·复杂性分析 IF 结束时间已排序 T(n)=((n) IF 结束时间未排序 T(n)=((n)+((nlogn)=((nlogn) ·算法正确性 注意:要证明调度算法产生优化解,我们需要证明: 调度问题具有Greedy选择性。 调度问题具有优化子结构。 引理1 设S={1,2,…,n}是n个活动集合,[si,fi]是活动的起始终止时间,且f1(f2(….(fn,S的调度问题的某个优化解包括活动1。 证.设A是一个优化解,按结束时间排序A中活动,设其第一个活动为k。 如果k=1,引理成立。 如果k(1,令B=A-{k}∪{1},由于f1(fk, B中活动相容。又由于(B(=(A(, 所以B是一个优化解,且包括活动1. 引理2(优化子结构) 设S={1,2,…,n}是n个活动集合,[si,fi]是活动i的起始终止时间,且f1(f2(….(fn,设A是S的调度问题的一个优化解且包括活动1,则A(=A-{1}是S(={i(s|si(f1}的调度问题的优化解。 证. 显然,A(中的活动是相容的。我们仅需要证明A(是最大的。设不然,存在一个S’ 的调度问题的优化解B(,(B(((A((。令B={1}∪B(。对于(i(S(,si(f1,B中活动相容。由于|A’|=|A|-1, (B(=(B((+1(A((+1=(A(,与A最大矛盾。 引理3(Greedy选择性)设S={1,2,….,n}是n个活动集合,f0=0,li是Si={j(S | sj(fi-1}中具有最小结束时间fli的活动li。设A是S的包含活动1的优化解,其中,f1(….(fn,则A=。 证.对(A(作归纳法.当(A(=1时,由引理1,命题成立。设(A((k时,命题成立。当(A(=k时,由引理2,A={1}∪A1, A1是S2={j(S|sj(f1}的优化解,由归纳假设,A1=.于是,A=。 定理1. Greedy-Activi

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档