算法背包有2个限制

时间:2017-02-14 15:05:58

标签: algorithm knapsack-problem np

我一直在做一个项目,我遇到了以下情况: 需要从一组M中选择N = 2个框,而M> N具有最佳权重总和但有2个限制:

  • 我们不能选择相同的方框颜色
  • 我们无法选择相同的方框ID

The Boxes按照最高权重排序

enter image description here

我选择(Red1,Blue2)Naive算法,从最高权重Red1开始,我们无法添加Blue1,因为我们有相同的ID 1,并且也无法添加Red2因为我们有Red box的权重为10,我们的总重量为11,但如果我们选择Blue1& amp; RED2 N可以大于2。

这是NP难问题吗? 有更好的运行时效率的更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

我们可以使用复杂度为O(2^color * 2^id * M * N)的DP解决方案或复杂度为O(M choose N)

的回溯+修剪

所以它取决于M,N,颜色和id的约束有多大。