- 2
- 0
- 约3.57千字
- 约 24页
- 2016-11-28 发布于安徽
- 举报
NOI导刊资源背包动态规划.ppt
背包类动态规划问题 长沙市雅礼中学 朱全民 经典的背包问题(01背包) 有N件物品; 第i件物品Wi公斤; 第i件物品价值Ci元; 现有一辆载重M公斤的卡车; 问选取装载哪些物品,使得卡车运送的总价值最大? 搜索法 对于每种物品,要么装上卡车,要么不装,因此,N种物品的装箱方案共有2N种。 按每种物品进行搜索,方法如下: 对第i种物品进行搜索 如果所有的物品都搜索完,则更新最优解 如果当前的估计达不到最优解,则回溯 如果第i种物品能放,则放,并标记,否则选下一个物品 清除标记 回溯 动态规划 可以按每个物品进行规划,同样每种物品有选和不选两种选择 设F(i,j)表示前i件物品载重为j的最大效益,则有 1=i=N, 0=j=N 初值:F(0,j)=0 F(N,M)即答案 显然时间复杂度为O(NM) 主程序如下 for i:=1 to m do f[0,i]:=0; //初始化 for i:=1 to n do f[i,0]:=0; for i:=1 to n do // 动态规划,递推求f for j:=1 to m do begin if j=w[i] then //背包容量够大 f[i,j]:=max(f[i-1,j-w[i]]+c[i],f[i-1,j]) else //背包容量不足 f[i,j]:=f[i-1,j]; end; 满背包问题(01背包) 有N件物品; 第i件物品Wi公斤; 第i件物品价值Ci元; 现有一辆载重M公斤的卡车; 问选取装载哪些物品,使得卡车开车正好装满时,运送的总价值最大? 若无法装满卡车,则输出无解。 动态规划 设F(i,j)表示前i件物品背包为j的最大效益,则有 1=i=N, 0=j=N 初值:F(0,j)=0, F(1,j)= -∞ F(N,M)即答案 显然时间复杂度为O(NM) 带条件的背包问题(1) 有N件物品; 第i件物品Wi公斤; 第i件物品价值Ci元; 第i件物品可能带0~2个附件; 若装载附件,必须装载主件,反之没有约束; 现有一辆载重M公斤的卡车; 问选取装载哪些物品,使得卡车运送的总价值最大? 分析 假设只有主件的情况 ,显然与经典背包问题完全相同! 现在每个物品有附件,我们可以分成4种方案 仅装载主件 装载主件+第1个附件 装载主件+第2个附件 装载主件+2个附件 由于上述4种并列,这是几种不同的决策同时规划即可 动态规划 设F(i,j)表示前i件物品背包为j的最优解,则有, 1=i=N, 0=j=M 时间复杂度O(NM) 多层背包问题 有N件物品; 第i件物品Wi公斤; 第i件物品价值Ci元; 现有一辆载重M公斤的卡车; 第i件物品限制最多只能取Xi个; 问选取装载哪些物品,使得卡车运送的总价值最大? 分析 我们可以类似01背包问题,将第i种物品拆分成x[i]个,这样每个物品只有1件了,如下图: 然后对所有的物品采用动态规划即可。 F(i,j)=max{ f(i-1,j-k*w[i]) + k*c[i] } 0=k*w[i]=j 完全背包问题 有N件物品; 第i件物品Wi公斤; 第i件物品价值Ci元; 现有一辆载重M公斤的卡车; 每次可以选取某种物品的任意多件装载; 问选取装载哪些物品,使得卡车运送的总价值最大? 分析 类似多层背包问题将每个物品展开成X[i ]=m/w[i]个,然后对所有的物品采用动态规划即可。 若两件物品i、j满足c[i]=c[j]且w[i]=w[j],则将物品i去掉,不用考虑。这个优化的正确性显然:任何情况下都可将价值小费用高的j换成物美价廉的i,得到至少不会更差的方案。 由于每种物品有选和不选两种情况,可以将每种物品的2k个当成一个整体考虑。这样对于某种物品要选取多个,都可以由若干个2k个物品进行组合 (即2进制数)。例如第i种物品要选10个,则10=23+21 。 这样第i种物品的个数为k=㏒2 (m/wi)物品,是一个很大的改进。 进一步, 在计算k时, K =㏒2 (j/wi), j为当前背包剩余空间。 进一步 for i:=1 to n do // 动态规划,递推求f for j:=m downto 1 do begin if j=w[i] then //背包容量够大 f[i,j]:=max(f[i-1,j-w[i]]+c[i],f[i-1,j]) else //背包容量不足 f[i,j]:=f[i-1,j]; end
您可能关注的文档
- M5832茂捷-赛威SF5920.doc
- MAC框架内核体系结构.doc
- MATLAB4三维图形绘制.ppt
- MATLAB仿真技术作业2.doc
- Matlab优化函数中options选项修改.doc
- Matlab命令大全(一).doc
- matlab图像分解和重构.doc
- matlab实现三维图形绘制.ppt.pptx
- Matlab常用函数和指令大全.doc
- Matlab指令&函数最全汇总.doc
- 2026年长沙南方职业学院单招职业适应性考试题库及答案详解(名师系列).docx
- 2026年闽江师范高等专科学校单招职业适应性考试题库附答案详解.docx
- 2026年阜新高等专科学校单招职业技能考试题库附答案详解(名师推荐).docx
- 2026年阜阳职业技术学院单招职业倾向性考试题库带答案详解.docx
- 2026年阿拉善职业技术学院单招职业适应性考试题库及答案详解(全优).docx
- 2026年黑龙江民族职业学院单招职业适应性考试题库及答案详解(必刷).docx
- 2026年长治职业技术学院单招职业技能考试题库及答案详解(必刷).docx
- 2026年长春汽车职业技术大学单招职业适应性考试题库附答案详解.docx
- 2026年闽江师范高等专科学校单招职业倾向性考试题库有完整答案详解.docx
- 2026年黑龙江三江美术职业学院单招职业技能考试题库及答案详解(最新).docx
最近下载
- 人美版美术一年级下册《第一单元 春天的故事》大单元教学设计2026.docx VIP
- 公转私借款合同范本.docx VIP
- IATF16949:2016中文版本含ISO9001全文依据2025年11月SI更新(包括SI1-30).pdf
- 4.成人斯蒂尔病诊疗指南2025版.pptx
- 第一单元《春天的故事》大单元(教学设计)人美版2025美术一年级下册.docx VIP
- ISO42001-2023人工智能管理体系程序文件.docx VIP
- 一种火炬排放系统密封器.pdf VIP
- 提高住院患者大小便标本送检率PDCA.pptx VIP
- DB61_T 2093.5-2025 猕猴桃生产第5部分:花粉生产.docx VIP
- 无锡市轨道交通工程临时用电监理实施细则.doc VIP
原创力文档

文档评论(0)