与BFS紧密连接的组件

时间:2018-11-22 19:29:52

标签: algorithm breadth-first-search

如何在有向图中找到与BFS紧密连接的组件?

我知道Kosaraju使用DFS的算法。我想在BFS中找到它。

2 个答案:

答案 0 :(得分:0)

宾夕法尼亚州立大学(Penn State University)在2014年发表的论文[1]提出了一种多步方法,与前向后向算法相比,该方法减少了总工作量,并结合了几种并行SCC查找算法的优势。

他们对BFS [2]使用了一种自下而上的混合方法,并大大减少了BFS期间所需的边缘检查总数。与[2]不同,它们在运行自底向上混合BFS时维护线程队列,与关闭混合时从头开始显式重建队列相反,因为它们仅需要访问数组来确定SCC。

答案 1 :(得分:0)

使用Kosarju's BFS的算法可以基于使用DFS的Kosaraju's算法的相同原理。

首先,使用BFS进行拓扑排序。

接下来,转置图形。

然后以拓扑排序的顺序遍历图形。每次遍历结束,您就已经到达了SCC的结尾。

由于拓扑排序,该算法的运行时间为O(E + V)。

相关问题