【发布时间】:2015-11-09 13:23:02
【问题描述】:
我有一个有向图 x->y y->z
我想添加到这个 grpah 传递闭包 x->z
我应该在我的算法中改变什么,因为现在我在两个方向上创建 x、y 和 z 之间的所有可能组合。
我的代码如下。
def transitive_closure(G):
TC = nx.DiGraph()
TC.add_nodes_from(G.nodes())
TC.add_edges_from(G.edges())
for v in G:
TC.add_edges_from((v, u) for u in nx.dfs_preorder_nodes(G, source=v)
if v != u)
return TC
【问题讨论】:
-
G 是有向图吗?这当然看起来应该有效。您是否尝试在
for循环中打印出所有边缘(v,u)?