首先,M(i,C)中i,C表示:当前考虑从1到i号选择物品放入,C是假设背包的当前最大容量;同样的M(i-1,C)中i-1,C表示:考虑从1到i-1号选择物品放入,C是假设背包的当前最大容量,而M(i-1,C)的值表示从1到i-1号选择物品放入的最好情况。
然后看v(i)+M(i−1,C−w(i))),M(i−1,C−w(i))其实是考虑给第i个物品留出空间的情况的最优值,所以v(i)+M(i−1,C−w(i)))表示放入第i个物品后的值。
举个例子,直观理解:
id: 1 2 3
v: 1 4 3
w: 1 2 2
背包容量C:3
制表:
C 1 2 3
i=1 1 1 1 1
i=2 1,2 1 4 5
i=3 1,2,3 1 4 5
现在看M(3,3)的情况:
M(3,3)=Max[M(2,3),v(3)+M(2,1)]
其中M(2,3)=5 > v(3)+M(2,1) = 4
所以M(3,3)=5。