如何优化 0/1 背包的解决方案?
Posted
技术标签:
【中文标题】如何优化 0/1 背包的解决方案?【英文标题】:How to optimize solution to the 0/1 knapsack? 【发布时间】:2015-06-16 01:14:23 【问题描述】:标准的背包问题解决方案是O(nW)
,我们将一次增加权重 +1 以获得解决方案。
有没有一种不需要每次增加重量+1的背包问题的方法。
例如我能想到的一种方法是将所有数字除以其公分母
Capacity = 100 weights = [5, 10, 20] -> Capacity = 20 weights = [1, 2, 4]
【问题讨论】:
【参考方案1】:仅在自下而上的动态规划实现中才需要以 1 的步长递增权重。如果你自顶向下实现,你可以只做一个递归调用,同时从剩余容量中减去当前项的权重。
【讨论】:
以上是关于如何优化 0/1 背包的解决方案?的主要内容,如果未能解决你的问题,请参考以下文章