- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组合问题中的贪心法—活动安排问题 问题描述:设有n个活动的集合E={1, 2, …, n},其中每个活动都要求使用同一资源,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si fi 。如果选择了活动i,则它在半开时间区间[si, fi)内占用资源。若区间[si, fi)与区间[sj, fj)不相交,则称活动i与活动j是相容的。也就是说,当si≥fj或sj≥fi时,活动i与活动j相容。活动安排问题要求在所给的活动集合中选出最大的相容活动子集。 贪心法求解活动安排问题的关键是如何选择贪心策略,使得按照一定的顺序选择相容活动,并能安排尽量多的活动。 至少有两种看似合理的贪心策略: ⑴最早开始时间:可以增大资源的利用率。 ⑵最早结束时间:可以使下一个活动尽早开始。 活动安排问题——想法 设有11个活动等待安排,这些活动按结束时间的非减序排列如下: i 1 2 3 4 5 6 7 8 9 10 11 si 1 3 0 5 3 5 6 8 8 2 12 fi 4 5 6 7 8 9 10 11 12 13 14 活动安排问题——实例 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 3 1 2 1 4 5 6 7 4 8 1 4 8 1 4 8 9 10 11 1 4 8 11 4 活动2、活动3 与活动1不相容 活动4与活动1相容 活动5、活动6、活动7与活动4不相容 活动8与活动4相容 活动9、活动10 与活动1不相容 活动11与活动8相容 活动安排问题——求解过程 设有n个活动等待安排,这些活动的开始时间和结束时间分别存放在数组s[n]和f[n]中,集合B存放问题的解,即选定的活动集合。 1. 对数组f[n]按非减序排序,同时相应地调整s[n]; 2. 最优解中包含活动1 :B={1}; 3. j=1; i=2; 4. 当(i≤n)时循环执行下列操作 4.1 如果(s[i]=f[j]) 则 4.1.1 B=B+{j}; 4.1.2 j=i; 4.2 i++; 活动安排问题——算法 问题描述:设有n个独立的作业{1, 2, …, n},由m台相同的机器{M1, M2, …, Mm}进行加工处理,作业i所需的处理时间为ti(1≤i≤n),每个作业均可在任何一台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。 组合问题中的贪心法—多机调度问题 多机调度问题——想法 贪心法求解多机调度问题的贪心策略是最长处理时间作业优先,即把处理时间最长的作业分配给最先空闲的机器,这样可以保证处理时间长的作业优先处理,从而在整体上获得尽可能短的处理时间。 按照最长处理时间作业优先的贪心策略,当m≥n时,只要将机器i的[0, ti)时间区间分配给作业i即可;当m<n时,首先将n个作业依其所需的处理时间从大到小排序,然后依此顺序将作业分配给空闲的处理机。 设7个独立作业{1, 2, 3, 4, 5, 6, 7}由3台机器{M1, M2, M3}加工处理,各作业所需的处理时间分别为{2, 14, 4, 16, 6, 5, 3}。 多机调度问题——实例 M1 M2 M3 时间 分配 作业5 作业6 作业3 作业1 作业2 作业7 作业4 17 16 6 5 4 第七章 贪心法 1 2 3 4 概述 图问题中的贪心法 组合问题中的贪心法 小结 假设有面值为3元、1元、8角、5角、1角的货币若干枚,需要找给顾客4元6角现金,为使付出的货币的数量最少,需要3张货币:1个3元和2个8角。 而按贪心法找给顾客的是1个3元、1个1元、1个5角和1个1角共4张货币。 找零钱问题 采用怎样的装包方法才会使装入背包物品的总收益最大? 背包问题 贪心法是一种简单有效的方法。它在解决问题的策略上只根据当前已有的信息就做出选择,而且一旦做出了选择,不管将来有什么结果,这个选择都不会改变。 贪心法的设计思想 贪心法并不是从整体最优考虑,它所做出的选择只是在某种意义上的局部最优。这种局部最优选择并不总能获得整体最优解,但通常能获得近似最优解。如果一个问题的最优解只能用蛮力法穷举得到,则贪心法不失为寻找问题近似最优解的一个较好办法。 贪心法的设计思想 贪心算法的理论基础 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,希望得到结果是最好或最优的算法。 贪心算法是一
文档评论(0)