带背包的背包要考虑约束

时间:2010-10-19 23:34:43

标签: combinatorics combinations knapsack-problem

我有物品I1,I2,I3,I4,重量为W1 ...... W4,值为V1 ... V4。我想用最小权重最大化值。这是一个传统的背包。然而,有些项目不能在一起存在小的约束。那么就说I2和I3不能一起去。任何人都可以提供动态编程解决方案或任何其他解决方案。

1 个答案:

答案 0 :(得分:2)

通过这种约束,问题变得强烈(与离散的背包相反,这只是NP-hard弱的NP-hard)。假设您的所有物品的重量为1且值为1。

决定是否可以达到值 k (假设背包容量> = k )相当于找到没有约束的 k 项目它们之间。这是一个已知的NP难问题:independent set

如果您对约束的性质有一些额外的了解,这可能会更容易。