此文章是看完b站up主讲解后,自己理解写的,用于自己以后查看,大家如果看不懂可以点下面链接去b站看up讲解,讲解非常详细。
背包问题(阿帕奇biubiubiu)
下面笔记图片也来自此视频
0/1背包问题
问题背景:每个物体只能装一次,使背包里的总物品价值最大化。葡萄:质量为2,价值为3;矿泉水:质量为3,价值为5;西瓜:质量为4,价值为6。
解题思路:首先分别讨论背包容量为0、1、2、3、4、5、6时的最优解。0时自然最优解都为0,每次讨论时先继承上一行的最优解,

1,当背包容量为0时,所装物品自然只能为0,最优解都为0

2,当背包容量为1时,葡萄仍然都无法装入,继承上面的最优解0,此时最大价值仍为0.

3,当背包容量为2时,此时背包容量2-葡萄质量2=0,背包为0时的最优解为0,0+3=3与上面的继承最优解相比3>0,所以此时最优解为3.

4,当背包容量为3时,对于葡萄而言也是可以装入的,此时背包容量为1最优解为0,0+3=3,3>0。以此类推,后面都为3。

5,当背包容量为1时,都装不了,继承上面最优解0;
当背包容量为2时,矿泉水无法装入,继承上麦呢最优解3;
当背包容量为3时,此时可以装入款泉水,此时[0,0]处最优解为0,0+5=5,5>3,所以装入矿泉水,放弃葡萄。

6,当背包容量为4时,可以装入矿泉水,此时[1,1]处最优解为0,0+5=5,5>3,

7,当背包容量为5时,可以装入矿泉水,此时背包容量为2时最优解为3,3+5=8,8>3;
当背包容量为6时也一样

8,讨论装入西瓜时,当容量小于4时无法装入,继承上一行数据;
等于4时,0时背包最优解为0+6=6,6>5,装入西瓜;
等于5时,1时背包最优解为0+6=6,6<8,不装入西瓜;
等于6时,2时背包最优解为3+6=9,9>5,装入西瓜;

本文通过详细解释0/1背包问题,探讨如何在背包容量限制下,选择具有最大价值的物品组合。以葡萄、矿泉水和西瓜为例,逐步分析不同背包容量下的最优解策略。
6万+

被折叠的 条评论
为什么被折叠?



