以最低成本给定条件确定图表中的最小流量

时间:2010-09-16 11:35:12

标签: algorithm networking

我最近准备参加acm-icpc比赛。在这里,我想知道如何找到最小值 在给定条件下,图中的每条边具有容量C,成本V和下限流量L(L≤C)的情况下,成本最低的流量。

3 个答案:

答案 0 :(得分:0)

首先,我不确定“成本最低的流量”是什么意思,但我怀疑你的意思是“流量成本最低”。

其次,下限流量意味着找到“合法流量”是非常重要的,这是一个尊重质量守恒的流量,即入境流量的总和等于出流量的总和对于除源和接收器之外的所有节点。 (通常流量问题有L = 0,这意味着零流量是合法的。)事实上,L和C的选择没有合法流量。

我认为你可以通过从每条边上等于L的流开始找到一个合法的流程。图中的一些节点将具有剩余流量,并且一些节点将具有赤字流量。您可以通过查找从剩余节点到缺陷节点的(低于容量)路径并沿该路径推送更多流量来增加流量。重复,直到所有盈余为零,或者您找不到这样的路径(在这种情况下,不存在合法流程)。

一旦找到可接受的流量,那么Ford-Fulkerson或preflow-push算法就可以优化您的流量(将其修改为更低的总成本)。

答案 1 :(得分:0)

祝你的竞争对手好运!

我有点担心提出的第一个解决方案最多可以帮助您找到最小的最大流量,这可以跟踪您正在寻找的内容,但不完全相同。

我参加了Robert Tarjan教授的课程。他恰好帮助开发了一种推导出最小流量的方法,称为“循环取消”。普林斯顿高级讲师凯文·韦恩(与塔里扬一起)发表了一篇精彩的讲座:http://www.cs.princeton.edu/~wayne/papers/ratio_talk.pdf

最小化电路取消特别有助于您找到最小流量。

如果您查看这两篇论文并仍想讨论,请告诉我。

答案 2 :(得分:0)

我认为你的问题没有明确规定。

C,L和V单个常量是否适用于所有边缘或是否为矢量? 由于您为边缘提供了最小流量,因此我假设您的图形具有有向边缘 这样只能在一个方向上流动。需要澄清的另一点是成本V,它是每单位流量吗?我假设是,否则任何流量的成本将是E.V for L> 0

因此,根据这些假设,您需要min cost circulation问题。