带限制的交付优化

时间:2015-06-08 15:05:36

标签: algorithm optimization

我有以下问题需要解决:

  1. 有N个城市。他们每个都有一些测试样本需要在实验室(实验室)处理。
  2. 有M个实验室。他们处理样本,但每个样本都有限制。
  3. 我们需要处理所有样本。
  4. 应使用距离优化 - 尝试在最近的实验室处理城市样本。
  5. 如果没有限制,很容易 - 对于每个城市,我们确定最近的实验室并用于处理样品。但是如果有容量限制,某些实验室可能会出现溢出,所以我们需要找另一个实验室来处理这个城市的样本(当然,这个实验室会更远一些)。

    那么,问题是:如何按距离以最佳方式分配样本流并且没有溢出?

    我相信这是一些众所周知的算法。请你,至少告诉我它是怎么称呼的?

    谢谢!

1 个答案:

答案 0 :(得分:1)

尝试将其视为bipartite graph,尝试maximize the flow

从最近到最远的顺序排列城市和实验室之间的距离,然后遍历列表并且:

  1. x个样本从城市移至实验室 - x=min(max_lab_capacity, number_of_samples)
  2. 现在删除了城市和实验室之间的边缘。如果实验室已满 - 则也会删除实验室节点。如果城市的所有样本都得到了照顾 - 它的节点将被删除。
  3. 重复#1& #2,直到删除所有城市节点。