Algorithm 为什么';增加post no的阶数,可以得到图中的sink(图的相应DAG的强连通sink组件中的节点)节点?

Algorithm 为什么';增加post no的阶数,可以得到图中的sink(图的相应DAG的强连通sink组件中的节点)节点?,algorithm,graph,graph-algorithm,depth-first-search,Algorithm,Graph,Graph Algorithm,Depth First Search,阅读有关图表的信息。。据说每个图都是其强连通分量的DAG有向无环图。因此,为了找到这些强连接的组件,需要在图的sink部分找到节点。。现在为了进一步解释,我需要解释post no和pre no pre no:-预排序是顶点列表,按深度优先搜索算法首次访问的顺序排列。因此其相应的前置号 同样地 post no:-postordering是按算法DFS上次访问顶点的顺序排列的顶点列表。 其相应职位编号 现在最高的帖子给出了源节点(真正理解) 但是为什么不增加邮政号的顺序呢 我的疑问是:- 为什么我们

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

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

同样地 post no:-postordering是按算法DFS上次访问顶点的顺序排列的顶点列表。 其相应职位编号

现在最高的帖子给出了源节点(真正理解) 但是为什么不增加邮政号的顺序呢

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


为什么我们需要反转图形

这是因为强连通组件的特性。它表示组件的每个节点都必须到达组件的每个其他节点。 使用第一个DFS,您可以找到节点可以到达的所有节点。反向图的dfs为您提供了一个节点可以访问的所有节点

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

还有其他算法可以找到强连接的组件,在我看来更容易理解。一个是。 看看吧


希望我对你的理解是正确的,这很有帮助:)

因为最低的帖子数量甚至可以出现在源代码中。假设源SCC(SCC1)是一个由3个节点a、b和c组成的环/环,其中一条边将a连接到另一个SCC(SCC2),我们不需要知道其详细信息。a、 b和c没有其他边缘。如果DFS从a到b到c,则从a到SCC2遍历边。在这种情况下,图中的最低postnumber是c的postnumber,它显然是源SCC节点而不是汇SCC节点