假设您是一名小偷,闯入了一所房子。你找到了以下物品:
一个重量为3磅的花瓶,价值50美元。
一个重量为6磅的银块,价值30美元。
一幅重4磅的画,价值40美元。
一面重5磅的镜子,价值10美元。
解决这个大小为10磅的背包问题的方案是90美元。
使用动态规划的方法制作的表如下:
现在我想知道如何根据这个表格选择装进我的口袋中的物品,以及如何回溯?
f[i][w] <= f[i-1][w]
,那么我们不需要物品 i,所以我们只需递归到子集1..i-1
。如果f[i][w] > f[i-1][w]
,那么我们需要使用物品 i 来达到最优结果,因此我们将其放入背包中。剩余的背包容量为w-weight of item i
,我们希望尽可能多地将物品1..i-1
装入该剩余容量中。 - Niklas B.