如何在有向图中找到与BFS紧密连接的组件?
我知道Kosaraju使用DFS的算法。我想在BFS中找到它。
答案 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)。