二部图的最大独立集


19

我正在尝试寻找Biparite图的最大独立集。

“ 1998年5月13日-华盛顿大学-CSE 521-网络流的应用”的一些注释中,我发现以下内容:

问题:

给定一个二分图G=(U,V,E),找到一组独立的UV这是尽可能大的,在那里UUVV。如果集合的元素之间没有E边,则集合是独立的。

解:

构造上的顶点的流图UV{s,t}。对于每个边缘(u,v)E有一个无限容量边缘从uv。对于每个uU,存在从单元容量边缘su,并且对于每个vV,存在从单元容量边缘vt

查找有限容量切口(S,T),与sStT。让 U=USV=VT。该组UV,因为没有无限容量的边缘交叉的切断是独立的。切口的大小是|UU|+|VV|=|U|+|V||UV|。为了使独立集尽可能大,我们使切面尽可能小。

因此,让我们将其作为图表:

A - B - C
    |
D - E - F

我们可以将其拆分为二部图,如下所示 (U,V)=({A,C,E},{B,D,F})

通过暴力搜索,我们可以看到唯一的最大独立集是A,C,D,F。让我们尝试解决上面的解决方案:

因此,构建的流网络邻接矩阵为:

stABCDEFs00101010t00010101A1000000B01000C1000000D0100000E10000F0100000

下面是我在哪里卡住,最小的有限容量削减我看到的是一个简单的一个:(S,T)=({s},{t,A,B,C,D,E,F}),容量3。

使用此切口会导致以下问题的解决方案不正确:

U=US={}
V=VT={B,D,F}
UV={B,D,F}

而我们预期UV={A,C,D,F}?有人可以发现我在推理/工作中出了错吗?


(S,T)=({s,A,B,C},{t,D,E,F})的容量为2

1
@Brian在您的切割中,从B到E有无限的容量边缘,因此它是无限的容量。
安德鲁·托马佐斯

如果我正确理解这一点,则根据蛮力解决方案,您需要一个切口,其中S包含A和C,T包含D和F,这使您的切口成为{s,A,C},{t,D,F} 。现在,您如何构造切割?
njzk2

同样,它看起来像福特福克森(Ford-Fulkerson),其中边的容量为一。
njzk2 2013年

查找匈牙利算法。
PatrikVörös17年

Answers:


14

最大独立集的补码是最小顶点覆盖率。

要在二部图中找到最小的顶点覆盖,请参阅柯尼希定理


2
这(也许)解决了问题,但没有回答问题。
拉斐尔

2
@Raphael:我同意删除“也许”一词。:)
Jukka Suomela 2012年

1
哦,我相信它解决问题,但我不知道是否有利于安德鲁解决他的问题。
拉斐尔

3
我按照您的建议解决了它:HopcroftKarp->最大匹配-> Konigs Thereom->最小顶点覆盖->补码->最大独立集。我仍然想知道为什么我的问题中描述的流程方法似乎不起作用。
安德鲁·托马佐斯

5

正如您通过反例所演示的,给出的解决方案显然是不正确的。注意,曲线U + V是无限容量边的连接分量。因此,每个有效切割都必须在同一侧包含所有A,B,C,D,E,F。

试图追溯解决方案 的出处:http : //www.cs.washington.edu/education/courses/cse521/01sp/flownotes.pdf引用了Ahuja,Magnanti和Orlin的Network Flow 解决 了一些问题。这本书没有版权,可以从http://archive.org/details/networkflows00ahuj下载,但它似乎没有包含此问题和解决方案(搜索“ bipartite”的每一次出现)。

请注意,解决方案的说明段落并未显示其构造的图的最小割线对应于最大独立集。这只能说明一种方式来获得一个独立的一套。

但是,您可以看到该算法正在尝试执行的操作。这是实际最大独立集对应于其s,t cut的含义:

图形

强调破坏算法的无限容量优势。

我不确定如何将算法修复为预期的方法。如果无限边的成本倒退(即它从S到T,但从t侧到s侧交叉),则成本应该为零吗?但是,仍然容易找到具有这种非线性的最小切割/最大流量吗?同样,考虑从@Jukka Suomela的解决方案到问题算法的桥梁的方法,我们要从最大匹配到最小顶点覆盖是很困难的:找到最大匹配可以通过最大流来完成类算法,如何使用类流算法从中恢复最小顶点覆盖?如前所述这里,找到最大匹配后,U和V之间的边将被定向以找到最小的顶点覆盖。因此,同样,这并不表明最小切割/最大流量的简单应用即可解决此问题。


2

STS


1
我同意您的意见,但是您能否添加更多详细信息,例如流算法的完整正确性证明,以及该算法如何应用于OP的示例?
xskxzr

此处的注释确实有正确性的简短证明。cs.washington.edu/education/courses/cse521/01sp/flownotes.pdf 例如,如果您看上方Evgeni Sergeev的图片,则边缘应全部朝下。然后,S中仅有的两个边是(s,e)和(b,t),加粗的红色边将进入S,因此不应计入切割值中。
yu25x

0

削减应基于实际流量,而非能力。由于来自s的流量是有限的,因此任何{S,T}切割都将是有限的。其余内容已在上面说明。


1
你确定吗?削减通常取决于容量,无论如何,我们已经知道最小削减是有限的,因此无限削减似乎不是问题。
David Richerby '16

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.