要为0/1背包问题设计动态编程算法,我们首先需要得出一个复发关系,该关系在解决方案的较小实例方面表达了对背包问题的解决方案。考虑第一个i项定义的问题的实例,即1≤i≤n,带有:权重w1,…,wi,dualite v1,…,…,vi和knapsack容量j,1≤j≤J≤CASTAICE。令表[i,j]是此实例的最佳解决方案(即最有价值的子集的价值,即适合J)的背包容量的第一个i项目。我们可以将适合容量j背包的第一个i项目的所有子集分为两个类别的子集,这些子集不包括ITH项目和包括ITH项目的子集。这会导致以下复发:如果J