第3章 贪算法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 贪心法 主讲:董文永 E-mail: dwy77@ hubei_001@163.com QQwindy的感言... 发信站:?四川大学蓝色星空站? 摘自:珞珈山水BBS站? 今天距生平第一次AC两年整 回顾一下,这两年来,着实不易 辛酸和汗水 兴奋和喜悦 无不经历过 这也可能是大学四年最为宝贵的两年时光 这两年来,可以说,唯一投入身心做的一件事情就是ACM 它让我领略到的不仅是学术,更是一种境界 一种前所未有,忘我投入的境界 一种对美的追求,算法竟然可以是如此之美 我很高兴我能在这个合适的时间遇到这个合适的平台 在这学到的所有知识,都将受益终身,都将渗透到未来工作的点点滴滴 我想,若干年后回想起来,这都是始终是我人生很重很重的一笔 画满了我的奋斗与希冀 填满了我的青春与热血 同时,很感谢左老师和孙老师对我这两年来的鼓励和支持,很感谢祥哥和锋哥给我的指 引与教导 今年的比赛,我会好好努力,一定不枉费我的两年修炼,一定不辜负你们的期望 无论是为自己还是为学校,我都会尽心尽力,尽责尽职 另外,今年对川大的ACM有两个希望 如果能够实现,在实现之后会公布 如果不能,就让它永远在心里遗憾吧 第3章 内容提纲 3.1 贪心算法的基本思想 3.2 删数问题 3.3 装箱问题 顾名思义,贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。 当然,希望贪心算法得到的最终结果也是整体最优的。虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。如单源最短路经问题,最小生成树问题等。在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。 活动安排问题 活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合,是可以用贪心算法有效求解的很好例子。该问题要求高效地安排一系列争用某一公共资源的活动。贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。 活动安排问题 活动安排问题 templateclass Type void GreedySelector(int n, Type s[], Type f[], bool A[]) { A[1]=true; int j=1; for (int i=2;i=n;i++) { if (s[i]=f[j]) { A[i]=true; j=i; } else A[i]=false; } } 活动安排问题 由于输入的活动以其完成时间的非减序排列,所以算法greedySelector每次总是选择具有最早完成时间的相容活动加入集合A中。直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。 算法greedySelector的效率极高。当输入的活动已按结束时间的非减序排列,算法只需O(n)的时间安排n个活动,使最多的活动能相容地使用公共资源。如果所给出的活动未按非减序排列,可以用O(nlogn)的时间重排。 活动安排问题 例:设待安排的11个活动的开始时间和结束时间按结束时间的非减序排列如下: 活动安排问题 算法greedySelector 的计算过程如左图所示。图中每行相应于算法的一次迭代。阴影长条表示的活动是已选入集合A的活动,而空白长条表示的活动是当前正在检查相容性的活动。 活动安排问题 若被检查的活动i的开始时间Si小于最近选择的活动j的结束时间fi,则不选择活动i,否则选择活动i加入集合A中。 贪心算法并不总能求得问题的整体最优解。但对于活动安排问题,贪心算法greedySelector却总能求得的整体最优解,即它最终所确定的相容活动集合A的规模最大。这个结论可以用数学归纳法证明。 贪心算法的基本要素 本节着重讨论可以用贪心算法求解的问题的一般特征。对于一个具体的问题,怎么知道是否可用贪心算法解此问题,以及能否得到问题的最优解呢?这个问题很难给予肯定的回答。 但是,从许多可以用贪心算法求解的问题中看到这类问题一般具有2个重要的性质:贪心选择性质和最优子结构性质。 贪心算法的基本要素 1、贪心选择性质 贪心算法的基本要素 当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。问题的最优子结构性质是该问题可用动态规划算法或贪心算法求解的关键特征。 贪心算法的基本要素 贪心算法和动态规划算

文档评论(0)

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

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

1亿VIP精品文档

相关文档