- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法分析与设计实验报告之01背包问题
算法分析与设计实验报告 [0/1背包问题] 0/1背包问题的不同算法解决方案 组员0945532112黄希龙育强0945532145周麒
目录
一.问题描述 1
二.算法分析 2
1.穷举法: 2
2.递归法: 4
3.贪心法: 5
4.动态规划法分析: 6
5.回溯法分析: 7
6.分支限界法: 9
三.时空效率分析 10
1.穷举法: 10
2.递归法: 11
3.动态规划法: 11
4.回溯法: 11
5分支限界法: 11
四.运行结果 12
1.穷举法输出结果: 12
2.递归法输出结果: 13
3.动态规划法输出结果: 14
4.回溯法输出结果: 15
5.分支限界法输出结果: 16
五.分析输出结果 17
六.总结与反思 18
一.问题描述
0/1背包问题:
现有n种物品,对1=i=n,已知第i种物品的重量为正整数Wi,价值为正整数Vi,背包能承受的最大载重量为正整数W,现要求找出这n种物品的一个子集,使得子集中物品的总重量不超过W且总价值尽量大。(注意:这里对每种物品或者全取或者一点都不取,不允许只取一部分)
二.算法分析
根据问题描述,可以将其转化为如下的约束条件和目标函数:
于是,问题就归结为寻找一个满足约束条件(1),并使目标函数式(2)达到最大的解向量。
首先说明一下0-1背包问题拥有最优解。
假设是所给的问题的一个最优解,则是下面问题的一个最优解:。如果不是的话,设是这个问题的一个最优解,则,且。因此,,这说明是所给的0-1背包问题比更优的解,从而与假设矛盾。
1.穷举法:
用穷举法解决0-1背包问题,需要考虑给定n个物品集合的所有子集,找出所有可能的子集(总重量不超过背包重量的子集),计算每个子集的总重量,然后在他们中找到价值最大的子集。由于程序过于简单,在这里就不再给出,用实例说明求解过程。下面给出了4个物品和一个容量为10的背包,下图就是用穷举法求解0-1背包问题的过程。
四个物品和一个容量为10的背包
序号 子集 总重量 总价值 序号 子集 总重量 总价值 1 空集 0 0 9 {2,3} 7 52 2 {1} 7 42 10 {2,4} 8 37 3 {2} 3 12 11 {3,4} 9 65 4 {3} 4 40 12 {1,2,3} 14 不可行 5 {4} 5 25 13 {1,2,4} 15 不可行 6 {1,2} 10 54 14 {1,3,4} 16 不可行 7 {1,3} 11 不可行 15 {2,3,4} 12 不可行 8 {1,4} 12 不可行 16 {1,2,3,4} 19 不可行 穷举法代码如下:
2.递归法:
在利用递归法解决0-1背包问题时,我们可以先从第n个物品看起。每次的递归调用都会判断两种情况:
背包可以放下第n个物品,则x[n]=1,并继续递归调用物品重量为W-w[n],物品数目为n-1的递归函数,并返回此递归函数值与v[n]的和作为背包问题的最优解;
背包放不下第n个物品,则x[n]=0,并继续递归调用背包容量为W,物品数目为n-1的递归函数,并返回此递归函数值最为背包问题的最优解。
递归调用的终结条件是背包的容量为0或物品的数量为0.此时就得到了0-1背包问题的最优解。
用递归法解0-1背包问题可以归结为下函数:
第一个式子表示选择物品n后得到价值比不选择物品n情况下得到的价值小,所以最终还是不选择物品n;第二个式子刚好相反,选择物品n后的价值不小于不选择物品n情况下得到了价值,所以最终选择物品n。
在递归调用的过程中可以顺便求出所选择的物品。下面是标记物品被选情况的数组x[n]求解的具体函数表示:
在函数中,递归调用的主体函数为KnapSack,m表示背包的容量,n表示物品的数量,x[n]表示是否选择了第n个物品(1—选,0—不选)。每个物品的重量和价值信息分别存放在数组w[n]和v[n]中。代码如下:
3.贪心法:
0-1背包问题与背包问题类似,所不同的是在选择物品装入背包时,可以选择一部分,而不一定要全部装入背包。这两类问题都具有最优子结构性质,相当相似。但是背包问题可以用贪心法求解,而0-1背包问题却不能用贪心法求解。贪心法之所以得不到最优解,是由于物品不允许分割,因此,无法保证最终能将背包装满,部分闲置的背包容量使背包单位重量的价值降低了。事实上,在考虑0-1背包问题时,应比较选择物品和不选择物品所导致的方案,然后做出最优解。由此导出了许多相互重叠的子问题,所以,0-1背包问题可以用动态规划法得到最优解。在这里就不再用贪心法解0-1背包问题了。
4.动态规划法分析:
0-1背包问题可以看作是寻找一个序列,对任一个变量 的判断是决定=
您可能关注的文档
- 第7章 竞争神经网络.doc
- 第7章,工程热力学(哈工大).doc
- 第5章AltiumDesignerPCB设计环境.doc
- 第9章动态应变测量.doc
- 第8讲小波变换导论1.doc
- 第一批月球名称英文中文对照表.doc
- 第8章静电场中导体和电介质.doc
- 第一次综述热载流子注入效应对MOS器件性能的影响.doc
- 第一批月球地名标准汉字译名表.doc
- 第一章 化学动力学.doc
- 早产儿脑室内出血预防专家共识(2025)解读.pptx
- 炎症性肠病营养治疗专家共识(第三版).pptx
- 炎症性肠病营养治疗专家共识(第三版)解读.pptx
- 深度解析(2026)《ZYT 001.9-1994中医骨伤科病证诊断疗效标准》:构建传统智慧与现代骨伤诊疗的权威桥梁.pptx
- 光伏逆变器用户手册SG3125HV-SCN-Ver13.pdf
- 血管紧张素转换酶抑制剂在心血管疾病防治中的应用专家共识解读.pptx
- 肿瘤免疫检查点抑制剂致皮肤不良反应专家共识.pptx
- 云南省昆明市五华区2026届九年级数学第一学期期末联考试题含解析.doc
- 深度解析(2026)CBT 3466.12-1992《船用锁 抽屉锁》.pptx
- 深度解析(2026)《YZT 2002-2002邮政用数据采集器测试规范》.pptx
最近下载
- 信阳农林学院《公共英语一》2023-2024学年第一学期期末试卷.doc VIP
- 个人征信报告模板征信报告模板(2021带水印).pdf VIP
- 如何做好医患沟通(1)(1).pptx VIP
- 4.4天净沙秋思 教学课件(共29张PPT)(含音频+视频).pptx VIP
- 毕业设计(论文)-基于PLC智能分类垃圾桶设计.docx VIP
- 消防给水管道水压试验方案.docx VIP
- 标准图集-闽2004G104 钢筋混凝土桩基承台.pdf VIP
- 江苏西德电梯图纸一体机KFS25-Y4F-B110(有机房).pdf VIP
- 《桉树更新免炼山造林技术规程》.docx VIP
- 免炼山造林PPT课件.pptx VIP
原创力文档


文档评论(0)