transitive_closure_dag#
- transitive_closure_dag(G, topo_order=None)[源代码]#
返回有向无环图的传递闭包。
这个函数比函数快
transitive_closure
,但如果图形有循环,则失败。G=(V,E)的传递闭包是一个图G+=(V,E+)使得对于V中的所有V,w,在E+中有一条边(V,w)当且仅当G中有一条从V到w的非空路径。
- 参数
- G网络X有向图
有向无环图(DAG)
- topo_order: list or tuple, optional
G的拓扑序(如果没有,则函数将计算一个拓扑序)
- 返回
- 网络X有向图
传递闭包
G
- 加薪
- NetworkXNotImplemented
如果
G
不定向- NetworkXUnfeasible
如果
G
有一个循环
笔记
这个算法可能很简单,可以广为人知,但我在文献中没有发现一个提及。
实例
>>> DG = nx.DiGraph([(1, 2), (2, 3)]) >>> TC = nx.transitive_closure_dag(DG) >>> TC.edges() OutEdgeView([(1, 2), (1, 3), (2, 3)])