我刚刚遇到了以下问题(它让我想起了背包问题,但存在一些差异):
您将获得n个物品,您必须将这些物品放入背包中并获得最大利润。每个项目都有特定的利润值和特定的形状。由于它们的形状,有些物品不能放在背包里。与普通的背包问题不同,没有最大重量限制了背包中的物品数量。 您还会获得每个项目的列表。在该列表中,您可以看到可以放入背包中的物品以及相应的物品。
是否有算法计算最佳解? 还是NP完全问题?在那种情况下,有一种近似方法吗?
答案 0 :(得分:2)
我认为这是NPC。
polynomial verification requirement是微不足道的。
减少是Maximal Independent Set问题。对于每个MIS实例 G =(V,E),构建一组项目 V ,每个项目单位利润。对于每个项目v∈V,可以放置它的项目列表是它不共享边缘的顶点集合。即,如果 G(v)是可以与 v 一起使用的项目列表,那么 G(v)= {w | (你,w)∉E} 。
如果针对新问题存在利润 k 的解决方案,则它使用不在彼此列表中的 k 项。因此,对于独立集合问题存在大小 k 的解决方案。