版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、求解问题的0-1背包动态规划一、问题描述:有n个项目,它们有自己的重量和价值。对于给定容量的背包,背包中的物品如何具有最大值和?第二,总体思路:根据动态规划的求解步骤(问题抽象、建模、寻找约束条件、判断是否满足最优性原则、寻找大问题和小问题之间的递归关系、填写表格、寻找解的组合),找出01背包问题的最优解和解的组合,然后编写代码实现。三、动态规划的原则和过程:数量=4,容量=7i1234w(重量)3521v(值)91074原则:动态规划类似于分而治之的方法,将大问题分成小问题,通过寻找大问题和小问题之间的递归关系逐个解决小问题,最终达到解决原问题的效果。然而,不同的是分治法在子问题和子问题上被
2、重复计算了许多次,而动态规划有记忆。通过填写表格记录所有已解决的子问题的答案,可以直接提取新问题中需要使用的子问题,避免重复计算,从而节省时间。因此,在问题满足最优性原则后,用动态规划方法解决问题的核心是填表。完成表格后,找到最佳解决方案。流程:抽象背包问题(X1,X2,Xn,其中Xi取0或1,表示是否选择了第一项),Vi表示第一项的值,而W1表示第一项的体积(重量);b)建立模型,即找到max (v1x1v2x2.vnxn);c)约束条件,w1x1w2x2.wnxn (v2x2v3x3.vnxn)v1x 1;而(v2x2v3x3.vnxn) v1x1=(v1x1v2x2.vnxn),有(v2
3、y2v3y3.vnyn) v1x1 (v1x1v2x2.vnxn);公式显示(X1,Y2,Y3,Yn)是01背包问题的最优解,这与初始假设(X1,X2,Xn)认为01背包问题是01背包问题的最优解,因此01背包问题满足最优性原则。f)寻找递归关系,面对当前商品有两种可能性:首先,袋子的容量小于商品的体积,不能装满。此时的值与第一个i-1的值相同,即,V (I,J)=V (I-1,J);第二,仍然有足够的容量来容纳产品,但它不一定达到当前的最佳值,因此在加载和不加载之间选择最佳值,即v (I,j)=最大值v (I-1,j),v (I-1,j-w (I) v (I)其中,V(i-1,j)表示不安装
4、,V(i-1,j-w(i) v(i)表示安装第I种商品,背包容量减少,但价值增加。由此,可以获得递归关系:1)j=w(i) V(i,j)=最大值V(i-1,j),V(i-1,j-w(i) v(i)数量=4,容量=7i1234w(重量)3521v(值)91074第四,构建最优解:最佳解决方案的构建可以基于列C中的数据,从第一项开始。从i=1开始,j=c是m1c。1.对于mij,如果mij=mi 1j,则第一项不装入背包,否则第一项装入背包;2.为了确定后续项目,即项目11,应找到一个新的j值作为参考。如果第一项已经放入背包,那么j=j-wI;如果第一项不在背包里,那么j=j3.重复以上两个步骤,
5、判断后续的物品I到n-1是否放入背包。4.对于项N,项N是否被放入背包直接由mnj是否为0来判断。只要你能通过寻找规则手工填写以上表格,你就能理解背包01的动态编程算法。首先,应该清楚这个表是从下到上,从左到右生成的。序列号重量价值123456713947111316202025104711111114173274711111111114144444444从表中可以看出,背包的最大值为值=20,即当X1=1、X2=0、X3=1、X4=1时。五、算法测试代码:#包括#包括#包括#包括#包括#包括使用命名空间标准;常数int c=8;/背包容量const int w=0,3,5,2,1。/不使用位
6、置0的物品重量。const int v=0,9,10,7,4。/对于要添加的项目,位置0为空。const int n=sizeof(w)/sizeof(w0)-1;/n是项目的数量int xn1;Voidpackage0 _ 1 (intm 11,constant w,constant v,constant n)/n表示项目数/从下到上设置mij的值/首先放wn对于(int j=0;j=c。j)if(j wn)mnj=0;/j小于wn,相应的值设置为0,否则可以放置否则mnj=vn;/放置剩余的n-1个项目。int I;对于(I=n-1;I=1;i -)对于(int j=0;j=c。j)如果(
7、j wi)mIj=mI 1j;/如果选择了j wi,则不能放置当前位置,当前位置等于前一位置的值。/否则,比较放置后的值是否较大,选择较大的一个。其他mIj=mI 1jmI 1j-wIvI?mI 1j:mI 1j-wIvI;无效答案(int m11,常量int n)int j=c;int I;对于(I=1;I=n-1;(I)if(mIj=mI 1j)xI=0;其他xI=1;j=j-wI;xn=mij?1 : 0;int main()int m611= 0 ;package0_1(m,w,v,n);对于(int I=0;I=5;(I)对于(int j=0;j=10j)printf(-,mIj);
8、cout endl回答(m,n);“最佳答案是: n”;对于(int I=1;I=5;(I)cout xI ;系统(“暂停”);返回0;求解问题的0-1回溯法一、问题描述:有n个项目,它们有自己的重量和价值。对于给定容量的背包,背包中的物品如何具有最大值和?第二,总体思路:背包问题属于寻找最优解的问题,因此有必要用回溯法构造解的子集树。当搜索状态空间树时,只要左子节点是可行节点,搜索将进入其左子树。对于右子树,首先计算上限函数以确定是否要减去它。上限函数界限():剩余容量可容纳的当前值cw最大值=当前最佳值bestp。为了更好地计算和使用上限函数剪枝,首先根据项目的单位权重值从大到小进行排序,
9、然后按顺序考虑每个项目。三、回溯法的实施过程:数量=4,容量=7i1234w(重量)3521v(值)91074根据问题的解空间,对于n=4的0-1背包问题,解空间可以用一棵完整的二叉树来表示,如下图所示。回溯过程:从根节点A开始,节点A是当前唯一的活动节点,并且在这个深度方向上首先进入左子树B或右子树C of A。假设首先选择节点B。此时,节点B成为当前活动节点,节点B成为当前扩展节点。节点A到节点B选择w1=3,节点B背包剩余容量r=4,值v=9,节点B到节点d。由于选择w2=5,背包容量r=4,背包容量不够,所以不可行。利用剪枝函数,减去以D为根节点的子树。此时,选择节点E的剩余容量R=4
10、,v=9,w3=2,满足要求。节点E成为当前扩展节点并进入节点J。此时,选择节点J的剩余容量R=2,v=16,w4=1,满足要求,并到达叶节点T。此时,节点T的剩余容量R=1,V=20因此,得到了一个可行的解,即x=(1,0,1,1)。此时,节点t变成死节点,回溯到节点u以获得可行解v=16,即x=(1,0,1,0)。节点u变成一个死节点,回溯到节点e,进入右子树,节点k的剩余容量r=4,v=9,选择w4=1,满足要求,到达节点v,v=13得到可行解x=(1,0,0,1),节点v变成一个死节点,回溯到节点k,到达叶继续以这种方式搜索整个解空间。搜索后找到的最佳解是0-1背包问题的最佳解。五、算
11、法测试代码:#包括#包括int n;/项目数量双c;/背包容量双v100;/每个项目的值双w100;/每个项目的重量双cw=0.0/当前背包重量双cp=0.0/当前背包中物品的价值双bestp=0.0/当前最优价值双倍perp100;/单位物品价值排序后整数阶100;/物品编号int put100;/设置是否装入/按单位价值排序空背包()int i,j;int temp der=0;双倍温度=0.0;对于(I=1;i=n .pI=vI/wI;对于(I=1;I=n-1;对于(j=1;j=n .j)如果bestp=cp .返回;if(cw wi=c)连续波=wI;CP=vI;输入I=1;回溯(i1);连续波-=wI;CP-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新一代信息技术行业办公自动化指南
- 中小学教育发展“十五五”规划(2026-2030年)
- 人工智能在机器学习中的实践指南
- 网络安全漏洞扫描与风险评估手册
- 美的发现和谐的造诣-小学主题班会课件
- 深度解析数据科学分析指南
- 银行信贷风险评估员信用评价KPI考核表
- 勤奋刻苦小学者,小学主题班会课件
- 涉及2026年7月份合同付款安排的通知函(6篇范文)
- 园区安保巡逻路线规划方案
- (2026)全国应急管理普法知识竞赛试题库及答案
- 2026年河南省中考真题道德与法治试卷和答案
- 2026中国航空发动机集团总部招聘36人笔试备考题库及答案详解
- 2026年全国通信专业技术人员考试高、中级(通信专业实务终端与业务)模拟试题及答案
- 口服抗栓药物消化道损伤防治共识2026
- 2026年初二物理基础测试题及答案
- 养老院出入院管理制度
- 城市道路养护与管理北京城市道路养护管理中心
- GB/T 24820-2024实验室家具通用技术条件
- 精神病学智慧树知到期末考试答案章节答案2024年齐鲁医药学院
- 学校文印室外包服务 投标方案(技术方案)
评论
0/150
提交评论