在一组运营商之间均匀分布尽可能多的物品

Posted

技术标签:

【中文标题】在一组运营商之间均匀分布尽可能多的物品【英文标题】:Uniformely distribute as many items as possible among a set of carriers 【发布时间】:2011-09-29 07:31:53 【问题描述】:

问题

有 n 个盒子 b_1, ... b_n 框 b_i 的重量为 w_i,成本为 c_i 有 m 个人 p_1, .... p_m 人 p_i 有实力 s_i 和钱 m_i,所以她/他可以携带多个箱子,使得它们的重量之和小于或等于 s_i,它们的成本之和小于或等于m_i

如何在人之间分配盒子,以使最大数量的盒子均匀分布在 m 个人之间?换句话说,我想将尽可能多的箱子(最好是所有 n 个箱子)分配给 m 个人,以这样一种方式,所有的人使用大致相同的力量来承载各自箱子的重量,并且花费大约拿他们一样多的钱。

问题

    这是什么问题?看起来像Bin packing problem,但我觉得不一样 有什么好的算法可以解决?

【问题讨论】:

考虑转移到Computer Science。 每个人的实力和金钱都一样吗?您对“所有人使用大致相同”的要求使这一点变得模棱两可。 @LastCoder:每个人可能有不同的力量和金钱。 “所有人使用大致相同”的要求意味着我应该尽量减少任何两个不同人使用的力量(和金钱)之间的差异。 【参考方案1】:

这是multiobjective optimization problem。

目标是:

    分发尽可能多的盒子 所有人使用的力量大致相同 所有人都使用大致相同的钱

和约束:

    每箱重量 每个人的力量 每个人的钱

它看起来像是 multiple-constraints multiple-nested-knapsack problem 的变体。

【讨论】:

以上是关于在一组运营商之间均匀分布尽可能多的物品的主要内容,如果未能解决你的问题,请参考以下文章

数据前沿Apache Mesos联合创始人:谈分布式应用现状!

随行付微服务之分布式文件系统

证明一个随机生成的数是均匀分布的

标准样品三角分布和均匀分布的区别是啥

BGP详解

CDN介绍及绕过