动态规划解背包问题课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《动态规划解背包问题课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 规划 背包 问题 课件
- 资源描述:
-
1、5.5动态规划求解0/1背包问题形式化描述:形式化描述:目标函数目标函数:约束条件约束条件:0/1背包问题:背包问题:KNAP(1,n,M)ji1iixpmaxni1,0w,0p,10 xMxwiiini1ii或1.问题描述问题描述背包容量背包容量M,n个物品,分别具有效益值个物品,分别具有效益值P1Pn,物物品重量品重量w1wn,从从n个物品中,选择若干物品放入个物品中,选择若干物品放入背包,物品要么整件放入背包,要么不放入。怎背包,物品要么整件放入背包,要么不放入。怎样决策可以使装入背包的物品总效益值最大?样决策可以使装入背包的物品总效益值最大?v0/1背包问题:背包问题:M=6,N=3,
2、W=(3,3,4),P=(3,3,5)v贪心法:贪心法:p3/w3 p1/w1 p2/w2v贪心解贪心解 P=5(0,0,1)v最优解是:最优解是:P=6(1,1,0)v贪心法求解0/1背包问题不一定得到最优解!v动态规划求解的问题必须满足最优化原理设设y1,y2,yn是是x1,x2,xn的的0/1值最优序列。值最优序列。若若y10,KNAP(2,n,M)是初始决策产生的状态。则是初始决策产生的状态。则y2,yn相对于相对于KNAP(2,n,M)将构成一个最优序列。否则将构成一个最优序列。否则,y1,y2,yn将不是将不是KNAP(1,n,M)的最优解的最优解 若若y11,KNAP(2,n,M
3、w1)是初始决策产生的状态。是初始决策产生的状态。则则y2,yn相对于相对于KNAP(2,n,Mw1)将构成一个最优序列。将构成一个最优序列。否则,设存在另一否则,设存在另一0/1序列序列z1,z2,zn,使得使得 且且 则序列则序列y1,z2,zn将是一个对于将是一个对于KNAP(1,n,M)具有更大具有更大效益值的序列。效益值的序列。故,最优性原理成立故,最优性原理成立niiiwMzw21niniiiiiypzp222.最优化原理证明最优化原理证明3 从前向后求解的递推关系式从前向后求解的递推关系式 记记fj(X)是是KNAP(1,j,X)的最优解,则的最优解,则fn(M)是是KNAP(1
4、,n,M)的最优解的最优解对于对于fn(M)有:有:fn(M)=maxfn-1(M),fn-1(M-wn)+pn 对于任意的对于任意的fi(X),i0,有有 fi(X)=maxfi-1(X),fi-1(X-wi)+pi第第N个物品不放入个物品不放入xn=0第第N个物品放入个物品放入xn=1 递推过程:递推过程:初始值初始值 0 X00 f0(X)=X0 0 f f1 1(X)=maxf(X)=maxf0 0(X),f(X),f0 0(X-W(X-W1 1)+P)+P1 1 求出所有可能的求出所有可能的X对应的对应的fi值值 f fi i(X(X)=maxf)=maxfi-1i-1(X),f(X
5、),fi-1i-1(X-W(X-Wi i)+P)+Pi i 最后最后求求 fn(M)=KNAP(1,n,M)4例用动态规划法求解例用动态规划法求解0/1背包问题背包问题 n=3,(w1,w2,w3)=(2,3,4),(p1,p2,p3)=(1,2,5),M=6 递推计算过程递推计算过程 X0 f0(X)=0 X0 X0 max0,+1=0 0X2 max0,0+1=1 X2 X0 0 0X2 1 2X3 max1,0+2=2 3X5 max1,1+2=3 X5 f3(M)=max3,1+5=6 fi(X)=maxfi-1(X),fi-1(X-wi)+pif1(X)=f2(X)=解向量的推导解向
6、量的推导 f3(M)=6 f2(M)6 x3=1 P=6-p3=1 M=6-w3=2 X=(1,0,1)f2(M)=1 f1(M)=1 x2=0 x1=15.0/1背包问题图解过程背包问题图解过程i:fi-1(x-wi)+pii=0:函数不存在函数不存在1 2 3 4 5 6 7012i1:f0(x-w1)+p1x1 2 3 4 5 6 7012i2:f1(x-w2)+p23x1 2 3 4 5 6 7012f1(x)x1 2 3 4 5 6 70123xf2(x)1 2 3 4 5 6 7012f0(x)=0 xfi(x)1 2 3 4 5 6 70678x123458 9i3:f2(x-w
7、3)+p31 2 3 4 5 6 70678x123458 9f3(x)10注:注:fi-1(X-wi)+pi曲线的构造:将曲线的构造:将fi-1(X)的曲线在的曲线在X轴上右移轴上右移wi个单个单位,然后上移位,然后上移pi个单位而得到;个单位而得到;fi(X)曲线的构造:由曲线的构造:由fi-1(X)和和fi-1(X-wi)+pi的曲线按的曲线按X相同时相同时取大值取大值的规则归并而成的规则归并而成6.序偶表示法序偶表示法 记记 fi(X)的序偶集合为的序偶集合为 Si=(Pj,Wj)|Wj是是fi曲线中使得曲线中使得fi产生一次阶跃的产生一次阶跃的X值,值,0jr 即即Pj=fi(Wj)
8、(P0,W0)=(0,0)图中图中有有r个阶跃值个阶跃值,对应对应r个个(Pj,Wj)序偶序偶,1jr 图中图中若若WjWj+1,则则PjPj+1,0jr 图中图中若若WjXWj+1,fi(X)=fi(Wj)图中图中若若XWr,fi(X)=fi(Wr)Si的构造的构造 记记 是是fi-1(X-wi)+pi的所有序偶的集合,则的所有序偶的集合,则 其中,其中,Si-1是是fi-1的所有序偶的集合的所有序偶的集合 Si的构造的构造:由:由Si-1和和 按照按照支配规则支配规则合并而成。合并而成。支配规则支配规则:如果:如果Si-1和和 之一有序偶之一有序偶(Pj,Wj),另一有另一有(Pk,Wk)
9、,且有且有 WjWk,Pj Pk,则序偶则序偶(Pj,Wj)将被舍弃。将被舍弃。(即取最大值规则)。(即取最大值规则)。初始序偶集合初始序偶集合S0=(0,0),(|),(11iiiiSwWpPWPSiS1iS1iS1例例2 例例1的序偶表示法的序偶表示法 S0=(0,0)=(1,2)S1=(0,0),(1,2)=(2,3),(3,5)S2=(0,0),(1,2),(2,3),(3,5)=(5,4),(6,6),(7,7)S3=(0,0),(1,2),(2,3),(5,4),(6,6),(7,7)注:序偶注:序偶(3,5)被被(5,4)“支配支配”而删除而删除11S21S31S+(2,3)+(
10、1,2)+(5,4)(w1,w2,w3)=(2,3,4),(p1,p2,p3)=(1,2,5)KNAP(1,n,M)问题的解问题的解 Sn是是KNAP(1,n,X)在在0XM各种取值下的最优解各种取值下的最优解 KNAP(1,n,M)的最优解的最优解由由Sn的最后一对的最后一对有效序偶有效序偶给出。给出。xi的推导的推导 xn:设设Sn的最后一对的最后一对有效序偶有效序偶是是(Pl,Wl),则,则 (Pl,Wl)或者是或者是Sn1的最末一对序偶,的最末一对序偶,或者是或者是(Pj+pn,Wj+wn),其中,其中 (Pj,Wj)Sn1且且Wj是是Sn1中满足中满足Wj+wnM的最大值。的最大值。
展开阅读全文