strongly_connected_components#
- strongly_connected_components(G)[源代码]#
在图的强连接组件中生成节点。
- 参数
- G网络X图表
有向图。
- 返回
- comp集合的生成元
G的每个强连通分支对应一个结点集的生成器。
- 加薪
- NetworkXNotImplemented
如果g是无向的。
笔记
使用Tarjan的 algorithm[R827335e01166-1]_ 与Nuutila的 modifications[R827335e01166-2]_. 算法的非递归版本。
工具书类
- 1
深度优先搜索和线性图算法,R.Tarjan-Siam计算杂志1(2):146-160,(1972)。
- 2
在有向图中寻找强连通分量。E.Nuutila和E.Soisalon Soinen信息处理信函49(1):9-14,(1994)。
实例
生成强连接组件的排序列表,首先是最大的。
>>> G = nx.cycle_graph(4, create_using=nx.DiGraph()) >>> nx.add_cycle(G, [10, 11, 12]) >>> [ ... len(c) ... for c in sorted(nx.strongly_connected_components(G), key=len, reverse=True) ... ] [4, 3]
如果只需要最大的组件,那么使用max而不是sort会更有效。
>>> largest = max(nx.strongly_connected_components(G), key=len)