贪心法求解背包问题.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种物品和一个可容纳M重量的背包,每种物品i的重量为。假定将物品i的一部分放入背包就会得到的效益,这里,, 。显然,由于背包容量是M,因此,要求所有选中要装入背包的物品总重量不得超过M.。如果这n件物品的总重量不超过M,则把所有物品装入背包自然获得最大效益。现需解决的问题是,在这些物品重量的和大于M的情况下,该如何装包,使得得到更大的效益值。由以上叙述,可将这个问题形式表述如下:    极 大 化目标函数    约束条件 算法分析    首先需确定最优的量度标准。这里考虑三种策略:    策略1:按物品价值p降序装包,    策略2:按物品重w升序装包    策略3:按物品价值与重量比值p/w的降序装包 分别以上面三种策略分别求以下情况背包问题的解:    n=7,M=15,    ( )=(10,5,15,7,6,18,3)    ( )=(2,3,5,7,1,4,1) 策略1:按物品价值p降序装包,p={p6,p3,p1,p4,p5,p2,p7},先放,4个p6,,再放入5个p3,放入2个p1,最后放入4个p4。总的重量M=15,总价值W=4×18+15×5+10×2+7×4=195     策略2:按物品重w升序装包,w={w5,w7,w1,w2,w6,w3,w4},依次放入w5,w7,w1,w2,w6,再放入4个w3,总的重量M=15,总价值W=1×6+1×3+2×10+3×5+4×18+4×15=176   策略3:按物品价值与重量比值p/w的降序装包,p/w={6,5,9/2,3,3,5/3,1},依次放入w5,w1,w6,w3,w7,再放入2个w2,总的重量M=15,总价值W=2×10+2×5+5×15+1×6+4×18+1×3=256 算法描述 procedure GREEDY-KNAPSACK(P,W,M,X,n) //P(1:n)和W(1:n)分别含有按P(i)/W(i)≥P(i+1)/ W (i+1)排序的n件物品的效益值和重量。M是背包的容量,而X(1:n)是解向量。// real P(1:n),W(1:n),X(1:n),M,cu;    integer i,n;      X0 //将解向量初始化为零          cuM //cu是背包剩余容量          for i1 to n do          if W(i)cu then exit endif          X(i) 1          cucu-W(i)          repeat          if i≤n then X(i) cu/W(i)          endif         end GREEDY-KNAPSACK 算法思想 贪心算法采用逐步构造最优解的方法,在每个阶段,都在一定的标准下做出 一个看上 去最优的决策,0/1背包选择单位效益最高贪心准则,即从剩余物品中选择可装入包的Pi/Wi值最大的物品。    算法分析 贪心法解决0/1背包问题主要代价是花费在p/w的排序上。由程序可以知道冒泡排序的时间复杂度为(N2)。它也是整个程序的时间复杂度。贪心法可以很快的解决问题,但是它不一定能够得到最优解,寻找一个好的贪心法则在贪心法处理中是至关重要的。 与其他算法比较 1.贪心法:处理问题的速度快,思想简单。使用该方法的必要条件是寻找好的贪心法则。不足之处在于很多时候它只能求的似优解,却不能求的最优解 2.动态规划法:可以求解最优解,重点在于徐兆最优决策序列但是速度较慢。 3.分支限界法:可以求解最优解,重点在于寻找限界值。易求最优解,但是空间花费较高,效率不是很高。 选择哪一种算法,不仅要根据问题本身还需要考虑到其他因素,例如时间复杂度,空间复杂度,易求解等等因素。 结果 The end,thank you! 请提问!

文档评论(0)

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

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

1亿VIP精品文档

相关文档