Algorithm 图论-全局最小割及其意义
给定一个加权有向图,我们想找到全局最小割,也就是说,一组边,如果去掉它,将图分成两半,并且与任何其他此类割相比,它的总权重最小 现在,尽管下面的方法似乎有效,但我被告知这个推理是错误的。但坦率地说,我不知道他有多确定,也不确定他有多确定: 考虑由全局最小割(即s-t割,其中U中的s,V中的t)分隔的节点集Algorithm 图论-全局最小割及其意义,algorithm,graph,max-flow,Algorithm,Graph,Max Flow,给定一个加权有向图,我们想找到全局最小割,也就是说,一组边,如果去掉它,将图分成两半,并且与任何其他此类割相比,它的总权重最小 现在,尽管下面的方法似乎有效,但我被告知这个推理是错误的。但坦率地说,我不知道他有多确定,也不确定他有多确定: 考虑由全局最小割(即s-t割,其中U中的s,V中的t)分隔的节点集U,V)。注意:我们不关心从V到U的边缘 对于u中的任何u,v中的vm,u-v-cut不能小于s-t-cut,否则,s-t-cut不会(全局)最小。出于同样的原因,u中的两个顶点或V中的两个顶点
U,V
)。注意:我们不关心从V
到U
的边缘
对于u中的任何u,v中的v
m,u-v-cut不能小于s-t-cut
,否则,s-t-cut不会(全局)最小。出于同样的原因,u
中的两个顶点或V
中的两个顶点之间的切割不能更小
另一方面,u-v-cut也不能更大,否则,它需要包括一些边u->v
,而不是s-t-cut的一部分,这意味着s-t-cut根本不是切割
因此,任意固定s
并迭代所有其他顶点x
就足够了s
在U
中,如果x
在V
中,则s-x-cut对应于全局最小值;如果s
在V
中且x
在U
中,则x-s-cut对应于全局最小值。如果它们都是同一集合的一部分,则切割将至少与全局最小值一样大(但可能更大)
因此,我们最终将通过计算两者来找到全局最小值,并跟踪到目前为止遇到的最小切割
这对我来说似乎很有意义。我错了吗?如果是,为什么?我的理解是,你基本上是在问以下问题: 通过固定任意顶点s并计算所有顶点t的所有s-t和t-s最小割,我们能找到全局最小割吗s
答案是肯定的,而且很容易证明:考虑一个全局最小割(u,v)与值c。 案例1:s以U表示。根据最小切割的定义,我们有V!={},所以在V中有一个顶点t。那么(U,V)是一个有效的s-t割,所以最小s-t割的最大值是C
情况2:s在V中。然后U中存在一个顶点t,与上述相同的参数适用于最小t-s割例如,描述了该算法。假设
s
在U
中,x
在V
中。为什么s
-x
切割对应于全局最小值?全局最小切割必须同时从V
中的所有顶点分离s
,并且可能与最小s
-x
切割无关。抱歉,我仍然没有看到它。你能举一个不是这样的例子吗?不确定这是否是你所要求的,但可以,通过固定一个顶点s并计算所有顶点t的所有s-t和t-s最小割s、 您最终将找到一个全局最小切割。然而,运行时间将是Ω(n*(计算最小s-t切割的时间)),这不是很好。这个例子有用吗?边={(s,a,2),(s,b,1),(a,b,1),(b,a,1),(a,c,1),(b,c,2)}。存在多个权重为3的全局最小切割,但从s
到其他顶点的最小切割的权重为1或2。@TedHopp Ok不必删除我以前的注释。因此,在您的示例中,全局最小切割将是权重为0的({c},{a,b,s})(因为从c到任何其他顶点都没有边)。但这也是一个c-s权重为0的切割,所以这并不矛盾,我的问题是我们为什么可以这样做。麻省理工学院的课堂讲稿——感谢链接——简单地说我们可以做到,但没有说明原因。我看不出和我写的有什么区别,所以我只想问:wlog假设s在U中。这是否意味着U在U中,v在v中的任何最小U-v切割都必须有值C?为什么?“这是否意味着任何最小u-v-cut,其中u在u中,v在v中,必须有值C或者没有”是的,它有。因为(U,V)是一个有效的U-V割,根据s-t割的定义,它的值是C