我想知道是否有一些情况可以只使用其中之一来解决(即只能使用带重复的背包或不带重复的背包),或者这两种情况是否总是可以相互简化。没有重复的背包公式(就动态编程而言)是其中K(w,j)是指使用容量为k的背包和项目1...j可达到的最大值,而具有重复的背包的公式为其中K( w )是在背包容量w的情况下可达到的最大重量。
我试图通过JAVA用Choco Solver实现一个多维背包问题。我的想法是在两个背包中分配3件物品。我的物品有一个重量和背包的极限: int[] itemWeight = {2,2,2};int[] knapsackLimit = {4,4};我使用Choco Solver编写了这个问题:
Model model = new Model("KnapsackProblem"