计算理论与算法分析设计:贪婪法.pptVIP

  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文档。上传文档
查看更多

n=3,M=20,(v1,v2,v3)=(25,24,15)

(w1,w2,w3)=(18,15,10)

1)按效益值非增次序将物品依次放入背包

(x1,x2,x3)ΣwixiΣvixi2)按物品重量的非降次序将物品依次放入背包(1,2/15,0)18+225+24*2/15=28.2(0,2/3,1)10+1015+24*2/3=31*n=3,M=20,(v1,v2,v3)=(25,24,15)

(w1,w2,w3)=(18,15,10)

3)按vi/wi的非增次序将物品依次放入背包

(x1,x2,x3)ΣwixiΣvixi

(0,1,1/2)15+524+15/2=31.5算法:背包问题的贪心算法*voidGreedyKnapsack(intn,floatM,floatv[],floatw[],floatx[]){Sort(n,v,w);//使v1/w1≥v2/w2≥…≥vn/wnfor(inti=1;i=n;i++)x[i]=0;floatc=M;for(inti=1;i=n;i++){if(w[i]c)break;x[i]=1;c-=w[i];}if(i=n)x[i]=c/w[i];}*算法的计算时间上界为O(nlogn),主要用于排序操作。为了证明算法的正确性,还必须证明背包问题具有贪心选择性质。证明使用此贪心算法所得到的贪心解是一个最优解。证明的基本思想是:把这个贪心解与任一个最优解相比较,如果这两个解不同,就去找开始不同的第一个xi,然后设法用贪心解的这个xi去代换最优解的那个xi,并证明在分量作了代换之后其总效益与代换之前无任何损失。反复进行这种代换,直到新产生的最优解与贪心解完全一样,从而证明了贪心解是最优解。*4.2贪心算法的基本要素对于0-1背包问题,贪心选择不能得到最优解它无法保证最终能将背包装满,部分闲置的背包空间使每公斤背包空间的价值降低了在考虑0-1背包问题时,应比较选择该物品和不选择该物品所导致的最终方案,然后再作出最好选择。由此就导出许多互相重叠的子问题。这正是该问题可用动态规划算法求解的一个重要特征*4.3最优装载有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。假设n=8,[w1,...,w8]=[100,200,50,90,150,50,20,80],c=400。*4.3最优装载从剩下的货箱中,选择重量最小的货箱。这种选择次序可以保证所选的货箱总重量最小,从而可以装载更多的货箱。根据这种贪婪策略,首先选择最轻的货箱,然后选次轻的货箱,如此下去直到所有货箱均装上船或船上不能再容纳其他任何一个货箱。*[w1,...,w8]=[100,200,50,90,150,50,20,80],c=400。

利用贪婪算法时,所考察货箱的顺序为7,3,6,8,4,1,5,2。货箱7,3,6,8,4,1的总重量为390个单位且已被装载,剩下的装载能力为10个单位,小于剩下的任何一个货箱。在这种贪婪解决算法中得到[x1,...,x8]=[1,0,1,1,0,1,1,1]且∑xi=6。*4.3最优装载voidContainerLoading(intx[],floatw[],floatc,intn){Sort(w,t,n);//此时,w[i]≤w[i+1]for(inti=1;i=n;i++)//初始化xx[i]=0;for(i=1;i=nw[i]=c;i++){x[i]=1;c-=w[i];}//剩余容量}T(n)=O(nlogn)*4.3最优装载2.贪心选择性质最优装载问题具有贪心选择性质。3.最优子结构性质 最优装载问题具有最优子结构性质。

文档评论(0)

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

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

1亿VIP精品文档

相关文档