让
G(V,E)
,一个没有桥梁的无向连通图。描述一个指向边缘的算法,因此新图形是SCC。
我建议的算法
所以我们从任意顶点运行DFS。我们注意到,因为它是一个无向图,所以只有树边和后边(右边?)。我们相应地连接边缘(树边缘将被“向下”,而后边缘将被“向上”)。
证明开始
我们注意到图表没有桥梁。因此,每个边缘都是某个周期的一部分。因此,在某个循环中要发现的最后一个边缘必须是后沿。
现在,我认为证据的其余部分需要表明我们总是可以“爬”到根,因此图表是SCC。
如果你能帮助我连接点(或顶点XD),我会很高兴
由于
答案 0 :(得分:1)
您正在寻找的是Robbins' Theorem的证据 有关更正式的证据,您可以查看this paper(参见定理证明2)。
以下不是正式的证据,但它是你能想到的一种方式:
正如您已经提到的,由于没有桥梁,每个边缘都是某个周期的一部分。由于您希望输出图形为SCC,因此此输出图形(来自任何顶点)上的DFS必须仅具有后边和树边。它不能有前沿或交叉边。
假设我们从s
到t
有一个前沿。这意味着在为了构建图形而运行的DFS中,t
在s
的子DFS(递归调用)中被发现,并且没有其他灰色或白色邻接。但事实并非如此,因为每当我们在DFS中发现t
时,我们仍然会有灰色相邻。
假设我们从s
到t
有一个交叉边。这意味着t
的子DFS在s
被发现之前已经结束。同样,这在我们的DFS中不会发生,因为在首先发现t
时,我们会在其子DFS中发现s
或相反的方向。
这是一个简单的图表,可以帮助您查看这些案例。