tarjan与有向图联通性__强连通分量,追溯值

Posted qywyt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tarjan与有向图联通性__强连通分量,追溯值相关的知识,希望对你有一定的参考价值。

  对于一个有向图,若任意两个节点x,y都有x到y的路径和y到x的路径,称它为强联通图.一个有向图的极大强联通子图被称为强联通分量.这里的极大与无向图里的极大双联通子图类似,对于一个极大强联通子图A,不存在子图B也是双联通子图且A?B.

  求有向图的强连通分量又要运用到tarjan算法.先对于有向图中的边进行定义:dfs确定dfs序后,对于一个x指向y的边,如果x是y的父节点称为树枝边,x是y的祖先(x位于y到根节点的路径上)称为前向边,y是x的祖先(y位于x到根节点的路径上)称为后向边.这四种都不是的话称为横叉边.可以发现树枝边们一定可以组成前向边的等效的路径,所以前向边没有用,完全可以删去.后向边一定能和树枝边组成一个环,从而构成一圈强连通的节点,美滋滋.最后一种横向边能构成环当且仅当y有到达x的路径.如何找到后向边与横向边构成的环呢?栈又出场了.

  我们在dfs(代码中指tarjan)的时候维护一个栈,要求当访问x的时候栈内存放x的祖先和访问过的节点里存在路径到达x的祖先的节点们,

以上是关于tarjan与有向图联通性__强连通分量,追溯值的主要内容,如果未能解决你的问题,请参考以下文章

tarjan算法,一个关于 图的联通性的神奇算法

寻找图的强连通分量:tarjan算法简单理解

算法笔记_144:有向图强连通分量的Tarjan算法(Java)

强连通分量的Tarjan算法

强连通分量tarjan缩点——POJ2186 Popular Cows

Tarjan算法强连通分量