0

阅读这些图..据说每个图都是其强连通分量的 DAG 有向无环图。因此,为了找到这些强连接的组件,需要在图中的 sink 部分中找到节点.. 现在要进一步解释,我需要解释 post no 和 pre no..

pre no :- 预排序是一个顶点列表,按照深度优先搜索算法首次访问的顺序排列。因此其相应的预编号。

同样,post no :- postordering 是一个顶点列表,按照 DFS 算法最后一次访问的顺序排列。其相应的职位没有

现在最高的帖子给出了源节点(真正理解),但为什么不增加帖子的顺序没有给出接收部分?

我的疑问是:-为什么我们需要反转图表以找到接收器,从而找到连接的组件。为什么不在同一张图中,我们运行一个算法,以增加 post no 的顺序(因为最低的 post no 驻留在接收器连接的组件中)..

为什么我们需要反转图形?

4

2 回答 2

1

那是因为强连接组件的特性。它说组件的每个节点都必须到达组件的每个其他节点。使用第一个 DFS,您会发现一个节点可以到达的所有节点。反向图的 dfs 为您提供了可以访问节点的所有节点。

要找到完整的组件,依赖第一个 dfs 的时间戳很重要。

还有其他算法可以找到强连通分量,我认为这些算法更容易理解。一种是kosarajus 算法。看看吧。

希望我说对了,这对您有所帮助:)

于 2012-11-10T15:44:29.130 回答
1

因为最低的帖子编号甚至可以在源 SCC 中。想象一下源 SCC (SCC1) 是 3 个节点 a、b 和 c 的环/环,其中一条边将 a 连接到另一个我们不需要知道细节的 SCC (SCC2)。a,b,&c 没有其他边。如果 DFS 从 a 到 b 再到 c,则从 a 遍历边到 SCC2。在这种情况下,图中最低的后编号是 c 的后编号,这显然是源 SCC 节点而不是汇 SCC 节点。

于 2021-01-13T19:57:26.127 回答