为了解决整数背包问题,我们使用了迭代记忆算法(通过n*w
大小的矩阵,其中n
是项目数,w
是背包' s最大重量容量)。我们被要求使用矩阵恢复解决方案(插入到背包中的物品)。我们不确定还原算法的运行时复杂度。恢复伪代码如下(其中w(j)
是项j
的权重,v(j)
是项j
的值:)
**RestoreItems(M)**
I is an empty set.
j=n, T = W.
while j>0 and T>0
if M[j,T] = M[j-1,T]
j=j-1
if M[j,T] = M[j-1,T-w(j)] +v(j) and w(j) <= T
I = I + j
j = j-1
T = T - w(j)
return I