- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析与设计[贪心法]ppt课件
1、多机调度问题:设有n 项独立的作业{1,2,…, n},由m 台相同的机器加工处理。作业i 所需要的处理时间为ti。约定:任何一项作业可在任何一台机器上处理,但未完工前不准中断处理;任何作业不能拆分成更小的子作业。多机调度问题要求给出一种调度方案,使所给的n 个作业在尽可能短的时间内由m 台机器处理完。利用贪心策略,设计算法解决多机调度问题,并计算其时间复杂度。 2、设有7 项独立的作业{1,2,3,4,5,6,7},要由三台机器M1, M2 ,M3 处理。各个作业所需要的处理时间分别为{ 2,14,4,16,6,5,3}。利用你设计的贪心算法,安排作业的处理顺序使得机器处理作业的时间最短。 课 后 思 考 题 带限期序作业排序的贪心算法 procedure JS(D,J,n,k) integer D(0:n),J(0:n),i,k,n,r D(0)?J(0)?0; k?1;J(1)?1; for i?2 to n do r?k; while D(J(r))D(i) and D(J(r)) ≠r do r?r -1; repeat if D(J(r))≤D(i) and D(i)r then for i?k to r+1 by –1 do J(i+1)?J(i) repeat J(r+1)?i ; k?k+1; endif repeat End JS 找到插入位置 检查插入的可能性 插入值 对于带限期序作业排序的贪心算法JS有两个赖以测量其复杂度的参数,即作业数 n 和包含在解中的作业数 s 。内层的while循环至多循环k次,插入作业 i 要执行时间为O(k-r),外层for循环共执行(n-1)次。 如果s是k的终值,即s是最后所得解的作业数,则JS算法所需要的总时间为O(sn)。由于s ≤n,所以JS算法的时间复杂度为O(n2)。 带限期序作业排序的贪心算法 一种更快的作业排序算法 通过使用不相交集合的UNION与FIND算法以及使用一个不同的方法来确定部分解的可行性,可以将该问题的计算时间由O(n2)降到接近于O(n)。 规则是:若还没有给作业i分配处理时间,则分配给它时间片[a-1,a],其中a应尽量取大且时间片[a-1,a]是空的。若正被考虑的新作业不存在这样的a,这个作业就不能计入解中。 一种更快的作业排序算法(续) 例:设n=5,(p1,…,p5)=(20,15,10,5,1)和(d1,…,d5)=(2,2,1,3,3) 0 1 2 3 j1 j2 j4 最优解是J={1,2,4} J 已分配时间片 正被考虑作业 动作 0 无 1 分配[1,2] {1} [1,2] 2 分配[0,1] {1,2} [0,1],[1,2] 3 不适合,舍弃 {1,2} [0,1],[1,2] 4 分配[2,3] {1,2,4} [0,1],[1,2],[2,3] 5 舍弃 作业排序的一个更快算法 procedure FJS(D,n,b,J,k) //假定p1≥p2≥…≥pn , b=min{n,max{D(i)}} Integer b,D(n),J(n),F(0:b),P(0:b) for i=0 to n do F(i)=i; P(i)=-1 repeat k=0 for i=1 to n do j=FIND(min(n,D(i))) if F(j)0 then k=k+1;J(k)=i L=FIND(F(j)-1); call UNION(L, j) F(j)=F(L) endif repeat end FJS 查看实例 课后思考题 0/1背包问题:在杂货店比赛中你获得了第一名,奖品是一车免费杂货。店中有n 种不同的货物。规定从每种货物中最多只能拿一件,车子的容量为c,物品i 需占用wi 的空间,价值为pi。你的目标是使车中装载的物品价值最大。当然,所装货物不能超过车的容量,且同一种物品不得拿走多件。如何选择量度标准才能找到最优解? 若n=2, w=[100,10,10],p=[20,15,15],c=105。证明利用价值贪心准则时,所得结果是否是最优解? 3.4 最优归并模式 X1 X2 X3 X4 Y1 Y2 Y3 X1 X2 X3 X4 Y1 Y2 Y3 第二章中学习了如何用分治法将两个分别包含n个和m个记录的已分类文件在O(n+m)时间内归并成一个包含(n+m)个记录的分类文件。下面是两种将4个文件进行归并的方法。不同的配对法要求不同的计算时间。 什么是归并模式 给出n个文件,则由许多种把这
文档评论(0)