【发布时间】:2015-09-09 15:02:46
【问题描述】:
这是一个古老而著名的背包问题:Knapsack Problem
在这里,我有一个约束的背包问题。
我有大小为 W = 100000000 和 N = 100 物品的背包 我为它编写了动态解决方案 我的算法的复杂性是 O(100000000*100) 这两者都太大了时间和空间,但这里有一个条件W ≤ 50000 or max 1≤ i ≤ n Vi ≤ 500.,所以如果我的背包大小超过 50000,我的最大物品价值是有限的。
所以现在我想知道如何在这种情况下减少算法的时间复杂性我认为背包问题取决于背包的大小和物品的数量,那么物品的价值如何改变我的算法?
【问题讨论】:
-
有一个版本的 DP 运行时间为 O(n V) 而不是 O(n W),其中 n 是项目数,V 是总(整数)值,W是总(整数)权重。
-
@David Eisenstat 接力!请您指导我并解释一下或给我一个可以帮助我的链接
标签: algorithm dynamic-programming knapsack-problem