贪心法解决背包问题(共7页)_第1页
贪心法解决背包问题(共7页)_第2页
贪心法解决背包问题(共7页)_第3页
贪心法解决背包问题(共7页)_第4页
贪心法解决背包问题(共7页)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上算法分析实验报告贪心法解决背包问题学生姓名: 专 业: 班 级: 学 号: 指导教师: 2017年 6月12日目录一、实验题目贪心法解决背包问题二、实验目的1)以背包问题为例,掌握贪心法的基本设计策略。2)熟练掌握各种贪心策略情况下的背包问题的算法并实现;其中:量度标准分别取:效益增量v、物品重量w、v/ w比值;3) 分析实验结果来验证理解贪心法中目标函数设计的重要性。三、实验要求1.问题描述:给定n种物品和一个背包。物品i的重量是Wi,其价值为Vi,背包的容量为C。应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 与0-1背包问题类似,所不同的是在选择物

2、品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,但不可以重复装入。2.算法:贪心法的基本思路:从问题的某一个初始解出发逐步逼近给定的目标,以尽可能快的地求得更好的解。当达到某算法中的某一步不能再继续前进时,算法停止。该算法存在问题:1)不能保证求得的最后解是最佳的;2)不能用来求最大或最小解问题;3) 只能求满足某些约束条件的可行解的范围。四、实现过程1、实验设计:1.用贪心法求解背包问题的关键是如何选定贪心策略,使得按照一定的顺序选择每个物品,并尽可能的装入背包,直至背包装满。至少有三种看似合理的贪心策略:1)按物品价值v降序装包,因为这可以尽可能快的增加背包的总价值。但是,

3、虽然每一步选择获得了背包价值的极大增长,但背包容量却可能消耗太快,使得装入背包得物品个数减少,从而不能保证目标函数达到最大。2)按物品重量w升序装包,因为这可以装入尽可能多的物品,从而增加背包总价值。但是,虽然每一步选择使背包得容量消耗得慢了,但背包价值却没能保证迅速增长,从而不能保证目标函数达到最大。3)按物品价值与重量比值v/w的降序装包。2.设背包容量为C,共有n个物品,物品重量存放在数组wn中,价值存放在数组vn中,问题的解存放在数组xn中,贪心法求解背包问题的算法如下。输入:背包容量为C,物品重量wn,物品价值vn输出:数组xn1) 改变数组w和v的排列顺序,使其按单位重量价值vi/

4、wi降序排列;2) 将数组xn初始化为0;3) i=0;4) 循环直到(wi>C)a. 将第i个物品放入背包:xi=1;b. C=C-wi;c. i+;5) xi=C/wi。3.流程图物品iwi>Cxi=1C=C-wii+i<n退出循环inxi=C/wi程序结束4.算法实现int KnapSack(int n,int w,int v,int C)double x10=0;int maxValue=0;for (int i = 0; wi < C; i+)xi=1;maxValue+=vi;C=C-wi;xi=(double)C/wi;maxValue+=xi*vi;return maxValue;2、调试分析在算法KnapSack中,时间主要消耗在将各种物品按照单位重量的价值从大到小排序。因此,其时间复杂度为O(nn)。3、运行结果:4、实验总结: 通过本次实验我们了解了背包问题贪心法的基本思想和策略,我们发现用该方法解决此问题的核心在于对量度标准的选择,通过具体数据的解答,我们最终确定了以单位效益,即物品的权值和重量的比值为量度最终能得到背包问题贪心法的最优解,同时也使我们对贪心法这一策略有了更为直观的认识。五、参考文献1 王红梅 胡胡算法设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论