【发布时间】:2015-02-25 16:51:43
【问题描述】:
我有 N 个桶,每个桶的标准化权重为 Wi。我想按重量将 $x 分配给每个桶。每个桶都有算法需要的最小 $ (MINi) 和最大 $ (MAXi)实现。每个桶的最小值和最大值优先于权重。这个问题是否可以在多项式时间内解决?算法是什么样的?
例子:
4 个桶,A、B、C、D
A:WA = 100,MINA = 0,MAXA = 150
B:WB = 100,MINB = 0,MAXB = 60
C:WC = 1,MINC = 20,MAXC = 150
D:WD = 1,MIND = 30,MAXD = 150
总美元 = 150 美元
预期结果:
答:50 美元
乙:50 美元
C:20 美元
价格:30 美元
请注意,C 和 D 使用他们的分钟数,其余的美元平分,因为 A 和 B 的重量相同。
【问题讨论】:
-
“最小值和最大值优先于权重”是什么意思?我们可以有剩余的钱吗?如果桶 A 的最大值为 25 美元,您是否希望桶 A 和 B 中只有 25 美元,因为它们的权重相等,还是我们继续向 B 加钱?
-
不允许吃剩菜。最大值和最小值仅适用于单个存储桶。因此,如果 A 最高达到 25 美元,B 仍然可以走高,因为它没有达到最高。如果在广告组级别未达到上限,则应应用权重。
-
@collapsar 你不妨把它变成一个答案。
-
你已经正确地证明了我漂亮的算法是错误的......答案撤回了;-)。但是,我仍然认为多项式时间内的解决方案是可能的。将问题改写为线性规划问题。
-
暂时撤回另一项声明......抱歉,我认为这不够彻底。
标签: algorithm optimization distribution