min cut比网络流更容易吗?


18

感谢最大流量最小割定理,我们知道我们可以使用任何算法来计算网络图中的最大流量来计算最小割。因此,计算最小 -cut的复杂度不超过计算最大 -flow 的复杂度。(s,t)(s,t)(s,t)

会更少吗?是否有一种算法可以计算出比任何最大流量算法都快的最小切割?(s,t)

我试图找到一种减少方法,以将)-最大流量问题减少为 -min-cut问题,但我找不到。我的第一个想法是使用分治法:首先找到一个最小割,将图形分为两部分;现在,递归地找到左侧部分的最大流和右侧部分的最大流,并将它们与穿过切口的所有边合并在一起。这确实可以产生最大流量,但是最坏的运行时间可能是最小切割算法运行时间的倍。有更好的减少方法吗?(s,t(s,t)O(|V|)

我意识到最大流量最小割定理表明,计算最大流量的复杂度与计算最小割容量的复杂度相同,但这不是我要问的。我要问的是找到一个最大流量和一个最小切割(显式)的问题。

这与从最小切割计算最大流量非常相关,除了:(1)我愿意允许Cook减少(Turning减少),而不仅仅是Karp减少(多对减少),以及(2)也许在给定我们可以找到一些图,使得的最小使计算的最大流变得容易,这在另一个问题之外。GGGG


2
@AshkanKzme,我没有关注您;你能详细说明吗?如问题的第四段落我状态下,最大流最小割定理表明的最大流的等于容量的最小切割的。我怀疑这就是您的想法。但是,知道最大流量的并不能告诉您最大流量本身(例如,在每个特定边上发送多少)。这个问题是关于计算最大流量本身与计算最小切割本身的复杂性。我的问题与问题的第二段完全相同。
DW

2
@AshkanKzme,不,我没有做错任何假设。您隐式地假设Ford-Fulkerson是找到最小切割的最快算法...但是据我所知,还没有人证明这一点,并且我们不知道这是否正确。在我看来,您正在用下限证明打标准菜鸟错误:“我看不到有什么方法可以更快地解决此问题,因此这不可能。” (PS:您是在告诉我有关最大流量最小切割的标准教科书内容。感谢您的帮助,但我已经很熟悉了...)
DW

1
至于您的陈述“我认为可以证明,如果您只有最小限度的切割,您可以获得最大的流量”,那么,我鼓励您写一个带有证明的答案-因为这基本上就是我的问题在问。我从未见过这样的证明,但是如果您有,我希望您将其写下来!
DW

1
@DW我想我现在对这个问题有所了解。我认为您给了多项式图因化约简而感到厌烦。您是否需要恒定的图因缩减来证明,而即使证明没有这种减少的可能性也不能证明这一点?f(n)=Θ(g(n))
Thomas Bosman 2015年

1
@ThomasBosman,是的,这是正确的。[对不起,您感到困惑。我在问题中给出的减少量证明,这是一个非常弱的下限。我希望可能有某种减少可以证明,但我不知道该如何构造这种东西。]f n = Ω g n f(n)=Ω(g(n)/n)f(n)=Ω(g(n))
DW

Answers:


-1

这是一种可能的方法:

假设您知道切点S,然后找到从到的流是成本为零的最小成本网络流问题,因为您确切知道中每个顶点的流出和处的流入。设V 小号˚FStVStf表示流,而A表示节点弧矩阵(即,行i,如果ij的尾部,则col j为1 ,如果其头部为-1,则为零,否则为零),令bA f = b如果fStAijijbAf=bf满足供需和流量守恒。然后,通过高斯消除,我们可以在找到可行的解决方案。V | 3次操作。|V|3

为了从流中找到一个割,我们需要构造残差图,该残图最多需要时间,然后可能遍历| V | 顶点。 |E||V|

Af=b|V|3


f|V||E||E|>|V|

|V|bf

Af=b

废话是对的。您可以添加约束(上限和下限),您知道这是有解决方案的,但是您就有了| V | +2 | E |。行,这样比直接计算最大流量要慢。
Thomas Bosman 2015年

另一个问题是容量约束是不等式(不是等式),因此您不能使用高斯消去法:您需要使用线性规划,正如您所说的那样,这似乎并没有比仅计算线性规划更快。直接最大流量。
DW
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.