完全背包问题.ppt





《完全背包问题.ppt》由会员分享,可在线阅读,更多相关《完全背包问题.ppt(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、完全背包问题完全背包问题(无限背包)(无限背包)主讲人:山成虎1问题问题2基本思路基本思路3空间优化空间优化4小结小结1问题问题有有N种物品和一个容量为种物品和一个容量为V的背包,每种物品都有无限件可用。第的背包,每种物品都有无限件可用。第i种物品种物品的费用是的费用是wi,价值是,价值是ci。求解将哪些物品装入背包可使这些物品的费用总。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。和不超过背包容量,且价值总和最大。2基本思路基本思路这个问题非常类似于这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就背包问题,所不同的是每种物品有无限件。也就是从每种
2、物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取件、取1件、取件、取2件件等很多种。如果仍然按照解等很多种。如果仍然按照解01背包时的思路,令背包时的思路,令fiv表示前表示前i种物品恰放入一个容量为种物品恰放入一个容量为v的背包的最大权值。仍然可以按照每的背包的最大权值。仍然可以按照每种物品不同的策略写出状态转移方程:种物品不同的策略写出状态转移方程:fiv=maxfi-1v-k*wi+k*ci|0=k*wi=v。将将01背包问题的基本思路加以改进,得到了这样一个清晰的方法。这背包问题的基本思路加以改进,得到
3、了这样一个清晰的方法。这说明说明01背包问题的方程的确是很重要,可以推及其它类型的背包问题。背包问题的方程的确是很重要,可以推及其它类型的背包问题。核心代码:核心代码:fori=1.Nforv=0.Vfork=1.vdivwifiv=maxfi-1v,fi-1v-k*wi+k*ci;你会发现,这个伪代码与你会发现,这个伪代码与01背包问题的伪代码只有背包问题的伪代码只有v的循环次序不同而已。的循环次序不同而已。为什么这样一改就可行呢?首先想想为什么为什么这样一改就可行呢?首先想想为什么01背包问题中要按照背包问题中要按照v=V.0的逆的逆序来循环。这是因为要保证第序来循环。这是因为要保证第i次
4、循环中的状态次循环中的状态fiv是由状态是由状态fi-1v-wi递递推而来。换句话说,这正是为了保证每件物品只选一次,保证在考虑推而来。换句话说,这正是为了保证每件物品只选一次,保证在考虑“选入选入第第i件物品件物品”这件策略时,依据的是一个绝无已经选入第这件策略时,依据的是一个绝无已经选入第i件物品的子结果件物品的子结果fi-1v-wi。而现在完全背包的特点恰是每种物品可选无限件,所以在考虑。而现在完全背包的特点恰是每种物品可选无限件,所以在考虑“加选一件第加选一件第i种物品种物品”这种策略时,却正需要一个可能已选入第这种策略时,却正需要一个可能已选入第i种物品的子种物品的子结果结果fiv-
5、wi,所以就可以并且必须采用,所以就可以并且必须采用v=0.V的顺序循环。这就是这个的顺序循环。这就是这个简单的程序为何成立的道理。简单的程序为何成立的道理。这个算法也可以以另外的思路得出。例如,基本思路中的状态转移方程这个算法也可以以另外的思路得出。例如,基本思路中的状态转移方程可以等价地变形成这种形式:可以等价地变形成这种形式:fiv=maxfi-1v,fiv-wi+ci,将这个,将这个方程用一维数组实现,便得到了上面的核心代码。方程用一维数组实现,便得到了上面的核心代码。3空间优化空间优化01背包中,我们使用一维数组来优化空间,完全背包中同样可以!背包中,我们使用一维数组来优化空间,完全
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完全 背包 问题

限制150内