背包的变化 - 最小总值超过'W'

时间:2011-10-31 03:18:56

标签: algorithm knapsack-problem

给定通常的n项目(每个项目无限制,比方说),权重和值:

w1, v1
w2, v2
...
wn, vn

和目标体重W,我需要选择总数 权重至少 W,总值最小化

这对我来说就像是一种变异(或者在某种意义上说是反过来的) 整数/无界背包问题。有助于制定DP算法 非常感谢!

2 个答案:

答案 0 :(得分:22)

TOT = w1 + w2 + ... + wn

在这个答案中,我将描述第二个包。我将原件称为“包”,另外称为“背包”

用所有元素填充袋子,并开始从中排除元素,“填充”最大TOT-W新背包,尽可能高的价值!你有一个常规的背包问题,有相同的元素,包大小为TOT-W

<强>证明:
假设您有k个元素的最佳解决方案:e_i1,e_i2,...,e_ik,那么行李大小至少为W大小,这使得被排除的项目背包最多大小为TOT-W。此外,由于背包的值在尺寸W时最小化,因此对于尺寸TOT-W,被排除项目的值最大化,因为如果没有最大化,则会有更好的尺寸最小W,价值较小。
另一种方式[假设你有最大排除袋]几乎相同。

答案 1 :(得分:0)

不太确定,但这可能会奏效。将值视为您拥有的值的-ve。 DP配方将试图找到该重量的最大值,在这种情况下这将是最小的负值。一旦你有了价值,就拿一个-ve来获得最终答案。