在第1天有N个仓库存储物品的Q [i]数量。在第2天,要求是每个仓库中的数量Q' [i]。因此,基本上必须在仓库之间移动物品以实现约束。仓库之间的距离是已知的。什么类算法可以解决这个问题?有什么指针吗?目标是尽量减少搬运货物的距离。
答案 0 :(得分:1)
这是一个经典问题,可通过最小成本最大流算法解决。您可以通过添加两个额外顶点来扩充图形:源和接收器。从源图到原始图的所有顶点,您可以添加容量等于Q[i]
且零成本的边。从原始图的每个顶点开始,向容器添加边缘,容量等于Q'[i]
且成本为零。对于原始图形顶点之间的边缘,您将容量设置为无穷大,并将成本设置为相应仓库之间的距离,然后计算最小成本最大流量。原始图形顶点之间的流动将告诉您在这两个仓库之间传输的货物数量。
一些链接:
wikipedia article关于min-cost max-flow
非常好presentation(他们的问题与你的问题类似但不完全相同)
这里有一个great article,其中包含非常好的实施细节