一、关于0-1背包问题
- 给定 n 种物品和┅个容量为 C 的背包物品 i 的重量是 wi>0,其价值为 vi>0
- 问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大
- 有问题的最优孓结构,我们可以建立m(i, j)的递归表达式如下:
m(n,j)={vn?0?j≥wi?0≤j≤wi?? ?
- 首先这张表是至底向上,从左到右的我们使用 (i5, j3) 表示表的 i5 行 j3 列单元格;
- 单元格 (i5, j3) 的意义是:子问题“只有物品 i5 时,容量为 j3 的背包所能放入的最大价值为0”因为容量3的背包放不丅重量5的物品;
- 单元格 (i4, j3) 的意义是:子问题“只有物品 i4 , i5 时,容量为 j3 的背包所能放入的最大价值为0”因为容量3的背包放不下这两个物品;
- 至此,全表表示了全部子问题的解单元格 (i1, j12) 即为总问题的解。
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | ||||||||||
0 | 0 | |||||||||
0 | 0 | 0 | ||||||||
0 | 0 | 0 | 0 |
1. 自底向上 非递归 的动态规划
*其它一些常见算法请参阅~
最后非常欢迎大家来讨論指正哦!