【发布时间】:2013-03-12 17:04:17
【问题描述】:
是否有任何贪心算法可以为非分数(0-1 背包)背包问题提供最佳解决方案?我知道有一个分数版本的背包可以提供最佳解决方案。
【问题讨论】:
-
不存在(可能)不是。我说可能是因为有无数种方法可以贪婪地解决它(考虑到你可以通过任何可能的函数来订购 2 个参数(重量和成本))。我所知道的最好的贪婪 0-1 背包算法可以保证让你在最优值的 50% 以内。如果它们的权重或值都相同,则贪心会给出最优值。
-
@Dukeling:您能否提供一个链接或描述您提到的贪心算法(保证 50% 的最优性)?
-
我在the Stanford Coursera free online course 看到了 50% 最优贪心解法。 Here 的视频由同一位讲师呈现(参见
19. APPROXIMATION ALGORITHMS)。 Here 好像是同一篇文章。 -
@Dukeling:谢谢,帮了大忙!
-
由于 0/1 背包是 NP 难的,任何解决该问题的 多项式时间 贪心算法都将证明 P = NP。因此,任何贪心算法都必须在伪多项式或指数时间内运行。
标签: algorithm combinatorics knapsack-problem