带有要考虑约束的物品的背包

Posted

技术标签:

【中文标题】带有要考虑约束的物品的背包【英文标题】:Knapsack with items to consider constraint 【发布时间】:2010-10-19 23:34:42 【问题描述】:

我有重量为 W1...W4 和值 V1...V4 的项目 I1、I2、I3、I4。我想用最小的权重最大化值。这是一个传统的背包。然而,有些项目不能放在一起有一个小的限制。因此,可以说 I2 和 I3 不能一起使用。任何人都可以提供动态编程解决方案或任何其他解决方案。

【问题讨论】:

互联网上(或教科书)上没有其他地方可以提供解决方案吗?有点难以置信…… 【参考方案1】:

有了这个约束,问题就变得非常强(与离散背包相反,它只是弱 NP-hard)NP-hard。假设所有物品的重量为 1,价值为 1。

决定能否实现价值k(假设背包容量>=k)相当于找到k个之间没有约束的物品他们。这是一个已知的 NP 难题:independent set。

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

【讨论】:

以上是关于带有要考虑约束的物品的背包的主要内容,如果未能解决你的问题,请参考以下文章

背包多重约束

背包问题模板

01背包java实现(入门到精通)

DataWhale 动态规划DP

算法学习——动态规划3

回溯求解0-1背包