已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 0 1背包问题 给定n种物品和一背包 物品i的重量是wi 其价值为vi 背包的容量为C 问应如何选择装入背包的物品 使得装入背包中物品的总价值最大 0 1背包问题是一个特殊的整数规划问题 2 背包问题的应用 1 一辆货车有固定的载重量C 有n种货物 每种货物i的重量和价格是 wi vi 运输哪些货物有最大的收益 2 一个计算机有内存C 有n个程序 分别耗费内存及其所交费用是 wi vi 调度哪些程序 使得费用最大 3 最优子结构性质 设所给0 1背包问题的一个最优解是 y1 y2 yn 则 y2 y3 yn 是右面的子问题的最优解否则 存在 z2 z3 zn 满足约束条件 并且那么 y1 z2 z3 zn 满足原问题的约束 并且那么 y1 y2 yn 就不是原问题的最优解了 4 最优子结构性质 最优子结构说明 一个n阶的问题 可由一个n 1阶的问题得到 以P n C 记录一个n阶 容量为C的问题 最优价值F n C y1 yn 为最优解 则如yn 1 y1 yn 1 是P n 1 C wn 的最优解 从而F n C F n 1 C Wn vn如果yn 0 y1 yn 1 是P n 1 C 的最优解 从而F n C F n 1 C 因此 F n C max F n 1 C wn Vn F n 1 C 5 递归树 F n C max F n 1 C wn Vn F n 1 C 如果C 0 F n C F n C F n 1 C wn F n 1 C F n 2 C Wn Wn 1 F n 2 C F n 2 C wn F n 2 C wn 1 动态规划 自底向上计算 6 F n C max F n 1 C wn Vn F n 1 C 如果C 0 F n C n 5 c 10 w 2 2 6 5 4 v 6 3 5 4 6 c 012345678910n 100666666666n 200669999999n 300669999111114n 4006699910111314n 50066991212151515回溯构造解ifF n c F n 1 c xn 0 elsexn 1 ifxn 0 由F n 1 c 继续构造xn 1 else由F n 1 c wn 构造x5 1 x4 0 x3 0 x2 1 x1 1 算法例 7 复杂性 计算矩阵元素需要nC次 故时间不仅与n相关 还与C相关 当C比较大时 如C 2n 就是一个指数复杂性 那么 把C w1 w2 都除以某个数 时间变小 但是能满足他们除了结果都是整数才行 另外 根据递归树 每一层实际上并不需要计算C个 时间还可以缩小 8 结束 9 最优子结构性质 设所给0 1背包问题的子问题的最优值为m i j 即m i j 是背包容量为j 可选择物品为i i 1 n时0 1背包问题的最优值 由0 1背包问题的最优子结构性质 可以建立计算m i j 的递归式如下 10 m n 1 m n 2 m n C m n 1 1 m n 1 2 m n 1 C m 1 1 m 1 2 m 1 C 其中 m 1 C 就是所求 11 算法 Knapsack Typev intw intc intn Type m jMax min w n 1 c For j 0 j1 i jmax min w i 1 c For j 0 j jmax j m i j m i 1 j For j jmax i w 1 m 1 c max m 1 c m 2 c w 1 v 1 12 计算最优值算法及其复杂性 算法描述 P72算法复杂度分析 从m i j 的递归式容易看出 算法需要O nc 计算时间 当背包容量c很大时 算法需要的计算时间较多 例如 当c 2n时 算法需要 n2n 计算时间 实际上m i j 中的j跟wi相关 并不需要用到 1 C 的紧密分布 其中很多j没有用到 13 算法改进 由m i j 的递归式容易证明 在一般情况下 对每一个确定的i 1 i n 函数m i j 是关于变量j的阶梯状单调不减函数 跳跃点是这一类函数的描述特征 在一般情况下 函数m i j 由其全部跳跃点惟一确定 如图所示 对每一个确定的i 1 i n 用一个表p i 存储函数m i j 的全部跳跃点 表p i 可依计算m i j 的递归式递归地由表p i 1 计算 初始时p n 1 0 0 示例 n 3 c 6 w 4 3 2 v 5 2 1 15 关于m i j 函数m i j 是由函数m i 1 j 与函数m i 1 j wi vi作max运算得到的 因此 函数m i j 的全部跳跃点包含于函数m i 1 j 的跳跃点集p i 1 与函数m i 1 j wi vi的跳跃点集q i 1 的并集中 易知 s t inq i 1 当且仅当wia且d b时 c d 受控于 a b 从而 c d 不是p i 中的跳跃点 除受控跳跃点外 p i 1 q i 1 中的其他跳跃点均为p i 中的跳跃点 由此可见 在递归地由表p i 1 计算表p i 时 可先由p i 1 计算出q i 1 然后合并表p i 1 和表q i 1 并清除其中的受控跳跃点得到表p i 16 另一个例子 实例 n 5 c 10 w 2 2 6 5 4 v 6 3 5 4 6 初始时p 6 0 0 w5 v5 4 6 因此 q 6 p 6 w5 v5 4 6 p 5 0 0 4 6 q 5 p 5 w4 v4 5 4 9 10 从跳跃点集p 5 与q 5 的并集p 5 q 5 0 0 4 6 5 4 9 10 中看到跳跃点 5 4 受控于跳跃点 4 6 将受控跳跃点 5 4 清除后 得到p 4 0 0 4 6 9 10 q 4 p 4 6 5 6 5 10 11 p 3 0 0 4 6 9 10 10 11 q 3 p 3 2 3 2 3 6 9 p 2 0 0 2 3 4 6 6 9 9 10 10 11 q 2 p 2 2 6 2 6 4 9 6 12 8 15 p 1 0 0 2 6 4 9 6 12 8 15 p 1 的最后的那个跳跃点 8 15 给出所求的最优值为m 1 c 15 17 算法复杂度分析 算法描述 P74 75上述算法的主要计算量在于计算跳跃点集p i 1 i n 由于q i 1 p i 1 wi vi 故计算q i 1 需要O p i 1 计算时间 合并p i 1 和q i 1 并清除受控跳跃点也需要O p i 1 计算时间 从跳跃点集p i 的定义可以看出 p i 中的跳跃点相应于xi xn的0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年食糖制造工专项题库
- 《结核病病理学诊断规范(TCRHA 029-2023)》解读助力病理诊断标准化与精准化
- 巢湖市2025年三年级数学下学期期中调研试题(含答案)
- 护理静脉输液与输液管理
- 前列腺疾病的中医护理方法
- 危重患者护理职业素养
- 广东省湛江市市级名校2026年中考五模物理试题含解析
- 产科护理妊娠期合并症护理
- 卧床患者皮肤护理的护理质量
- 广东省茂名电白区七校联考2026届毕业升学考试模拟卷物理卷含解析
- 2026内蒙古鄂尔多斯市本级事业单位第二批引进高层次和紧缺人才28人备考题库有答案详解
- 2026年食品安全知识培训考试题及答案
- 金牛区抚琴等11个街道2026年公开招聘社区工作者(151人)考试参考试题及答案解析
- 2026年广西专业技术人员继续教育公需科目试题及答案
- 2026河北省水利工程局集团有限公司校园招聘97人考试备考试题及答案解析
- 2026年国际汉语教师证书考试笔试全真模拟试题与答案
- 电气设备调试方案
- 贸易公司主要工作流程图
- 2013矿物绝缘油热膨胀系数测定法
- 8.3 简单几何体的表面积与体积 课件(内嵌视频)2025-2026学年高一下学期数学人教A版必修第二册
- 2025年全国劳动保障知识竞赛题库及参考答案
评论
0/150
提交评论