贪心算法解决活动安排问题报告.docVIP

  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文档。上传文档
查看更多
贪心算法解决活动安排问题报告

1.引言: 贪心法是一种改进了的分级处理方法。用贪心法设计算法的特点是一步一步地进行,每一步上都要保证能获得局部最优解。每一步只考虑一个数据,它的选取满足局部优化条件。若下一个数据与部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加为止。这种能够得到某种度量意义下的最优解的分级处理方法称为贪心法。 贪心总是做出在当前看来是最优的选择,也就是说贪心并不是从整体上加以考虑,它所做出的选择只是在某种意义上的局部最优解,而许多问题自身的特性决定了该题运用贪心可以得到最优解或较优解。 与区间[startj,endj 不相交,称活动i与活动j是相容的。也就是说,当startj≥endi或starti≥endj时,活动i与活动j相容。活动安排问题就是在所给的活动集合中选出最大的相容子活动集合。 设各活动的起始时间和结束时间存储于数组start[]和end[]中,不失一般性,假设结束时间安非递减排列:end[0]≤end[1] ≤…≤end[n-1]。算法中用集合a来存储所选择的活动。活动i被选择当且仅当a[i]的值为true。变量j记录最近一次选择的活动。设j是当前最近选择的活动,也就是所选择的活动中编号最大的活动,即: j max i|0≤i n,a[i] true 算法开始选择活动0,并将j初始化为0.然后依次检查活动i是否与当前已选择的所有活动相容。如相容则安排活动i,否则不安排活动i,再继续检查下一活动与所有已选择活动的相容性。由于k是当前已选择活动的最大结束时间,故活动i与当前所有选择活动相容的充分且必要条件是其开始时间start[i]不早于最近选择的活动j的结束时间end[j],即start[i] ≥end[j]。若活动i满足此条件,则活动i被选择,因而取代活动j的位置。由于活动是以其完成时间的非减序排列的,所以算法每次总是选择具有最早完成时间的相容活动i。这种方法选择相容活动就使剩余活动留下尽可能多的时间。也就是该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。 3.2 活动安排实例 设待安排的11个活动的开始时间和结束时间按结束时间的非减序排列如下: i 1 2 3 4 5 6 7 8 9 10 11 Starti 1 3 0 5 3 5 6 8 8 2 12 Endi 4 5 6 7 8 9 10 11 12 13 14 算法的计算过程如下图所示。图中每行相应于算法的一次迭代。阴影长条表示的活动是已选入集合的活动,而空白长条表示的活动是当前正在检查相容性的活动。 若被检查的活动i的开始时间starti小于最近选择的活动j的结束时间endj,则不选择活动i,否则选择活动i加入集合中。选择的活动有:1,4,8和11。 6.结束语 ?贪心策略是指从问题的初始状态出发,通过若干次的贪心选择而得出最优值 或较优解 的一种解题方法

文档评论(0)

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

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

1亿VIP精品文档

相关文档