从最小切割计算最大流量


16

我们知道计算最大流量。具有容量的网络的最小割断是等效的;cf. 的最大流最小割定理

我们有(或多或少有效率的)算法来计算最大流量,在给定最大流量的情况下计算最小切割既不困难也不昂贵。

但是相反呢?给定最小割口,我们如何确定最大流量?当然,如果不从头开始解决Max-Flow,最好要比那

一些想法:

  • 从最小切割,我们知道最大流量值。我看不到这些信息如何帮助标准方法扩展路径和推入重贴标签,尽管对后者进行调整似乎更为合理。

  • 我们不能使用最小分割来将网络分为两部分并递归,因为在最坏的情况下(如果一个分区是单例),这不会缩小问题。同样,对于较小的实例,我们也没有最低限度的削减。

  • 知道最大流量的值是否可以通过补充的松弛条件来加快求解最大流量LP?


相关问题:我们是否知道用于计算最小切割的算法(不使用最大流算法)?
拉斐尔

3
我们一定会这么做,Karger的随机算法是一种非常流行的算法,因此您需要零最大流知识。
Juho 2014年

2
如果您不想使用随机算法,那么Stoer-Wagner算法是一种非常简单的算法,也没有流技术。
Juho 2014年

2
好东西!这里还有另一个挑战。知道最小切割仅传达信息位(最多),因为每次切割对V的子集都是同构的。但是,最大流量可能需要的比|更多V | 表示的信息位(尤其是容量很大时)。因此,从信息理论上讲,您不能希望有一种仅看切口并吐出流量的算法。它也需要查看图表,并进行一些额外的计算。(我知道这不是太大的障碍的。)|V|V|V|
DW

Answers:


6

在最坏的情况下,最小割线本身无法传达有关最大流量的太多信息。考虑图,其中最小s t- cut的值为w。如果我延伸ģ通过添加新的顶点小号'和边缘小号'š 具有重量瓦特,最小小号' -馏分在新的曲线图只包含所述边缘的小号's ^ G=VËsŤwGssswsŤss但这并没有提供有关如何获得从st的流量单位的任何信息。wsŤ

实际上,最小割让您知道流量的价值,但不能告诉您如何实现流量。这意味着知道最小切割值最多可以加快对数因子,因为我们可以执行二进制搜索来查找切割值,因此可以最快地找到流量。


但是,该对数因子取决于潜在流量值的间隔大小,因此与求解最大流量的现有上限(仅取决于图形大小)无法相比。也就是说,即使是对数加速也会引起关注。我不相信知道最大流量的值根本没有帮助。
拉斐尔

-2

当然,有一些算法可以让您在计算最大流量之前计算最小割线。两种这样的算法是紧密相关的推送重标记算法和伪流算法。后者效率更高。这两种算法都使用残差图的特殊属性,它们会不断改进以从最小割中导出最大流量。有关详细信息,我强烈建议您阅读代码和论文。

为了详细说明推入重贴标签的情况,当算法无法将更多流推入接收器时,可以保证已计算出最小切割。由于缺少更好的名称,该算法的这一部分称为阶段1。阶段2是效率更高的阶段,通过使用单个深度优先搜索迭代地消除残差图中的循环并将多余的推回源,它将最小切割转换为最大流量。我相信第二阶段可以被证明比第一阶段更有效。


4
请重新阅读问题;不是你回答的那个。
拉斐尔

我给出的PR示例假设您在计算最小切割时还计算了其他信息。您最初的问题未指定是否允许您与其他资料一起保留其他信息,以简化后续的最大流量计算。将您最初的问题陈述为“给出最小切割且没有其他信息,我们如何确定最大流量?” 是否公平?
ldog

2
我说:“给定A,计算B”。唯一合理的假设是你被赋予唯一的 A,否则谈论的计算问题将是一个非常模糊的事情。
拉斐尔

我不敢苟同。从实践的角度来看,如果不计算其他信息(例如PR算法中的信息),您将永远不会计算出最小切割。从理论的角度来看,最好像您所说的那样孤立地考虑事物。这里的上下文是关键。
ldog19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.