使无向图成为强连通分量(SCC)

时间:2016-09-17 10:35:28

标签: algorithm graph computer-science

  

G(V,E),一个没有桥梁的无向连通图。描述一个指向边缘的算法,因此新图形是SCC。

我建议的算法
所以我们从任意顶点运行DFS。我们注意到,因为它是一个无向图,所以只有树边和后边(右边?)。我们相应地连接边缘(树边缘将被“向下”,而后边缘将被“向上”)。

证明开始
我们注意到图表没有桥梁。因此,每个边缘都是某个​​周期的一部分。因此,在某个循环中要发现的最后一个边缘必须是后沿。

现在,我认为证据的其余部分需要表明我们总是可以“爬”到根,因此图表是SCC。

如果你能帮助我连接点(或顶点XD),我会很高兴

由于

1 个答案:

答案 0 :(得分:1)

您正在寻找的是Robbins' Theorem的证据 有关更正式的证据,您可以查看this paper(参见定理证明2)。

以下不是正式的证据,但它是你能想到的一种方式:

正如您已经提到的,由于没有桥梁,每个边缘都是某个​​周期的一部分。由于您希望输出图形为SCC,因此此输出图形(来自任何顶点)上的DFS必须仅具有后边树边。它不能有前沿交叉边

假设我们从st有一个前沿。这意味着在为了构建图形而运行的DFS中,ts的子DFS(递归调用)中被发现,并且没有其他灰色或白色邻接。但事实并非如此,因为每当我们在DFS中发现t时,我们仍然会有灰色相邻。

假设我们从st有一个交叉边。这意味着t的子DFS在s被发现之前已经结束。同样,这在我们的DFS中不会发生,因为在首先发现t时,我们会在其子DFS中发现s或相反的方向。

这是一个简单的图表,可以帮助您查看这些案例。

enter image description here