【问题标题】:Spanning tree of directed graph with networkx使用networkx生成有向图的树
【发布时间】:2014-06-25 13:43:27
【问题描述】:

我在 networkx 中有一个有向图 G,我想得到它的最小生成树。 我愿意:

 T = nx.algorithms.minimum_spanning_tree( G.to_undirected()  )

这是无方向的,我想恢复方向,但我不知道该怎么做。 我试过了:

G[T.edges()]

最后一行看起来很 Pythonic,但这不是 networkx 的工作方式,显然...... 有人知道怎么做吗?

换句话说:在给定(无向)边的情况下,如何获得有向树的子图?

【问题讨论】:

    标签: python graph networkx minimum-spanning-tree subgraph


    【解决方案1】:

    您可以通过简单的理解获得出现在MST T 中的G 中的边缘:

    E = set(T.edges())  # optimization
    [e for e in G.edges() if e in E or reversed(e) in E]
    

    然后您可以从中构建一个新图表。

    【讨论】:

    • 一个保持体重:[(i,o,w) for i,o,w in G.edges_iter(data=True) if ((i,o) in T.edges() or (o,i) in T.edges())]
    • 更新 G.edges_iter 已在 networkx-2 中删除。
    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 2019-04-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多