1

假设有一个具有多条边的网络,对于任意一对顶点 (u, v),该图包含从 u 到 v 和从 v 到 u 的多条有向边,每条边都有自己的容量和权重。

如何将此多重图简化为一个简单的有向图,在 u 和 v 之间只有一条边?

注意*:不确定这种方法是否正确,我将 u 和 v 之间的各个边的容量和权重相加,并将它们合并为一个从 u 到 v 的超级边,以及一个从 v 到 u 的超级边。但是我如何进一步将这两个合并为 u 和 v 之间的一条边,它应该指向哪个方向?

4

1 回答 1

0

以下代码应该可以工作:

    G = nx.Graph(G) #delete repeated edges
    G.remove_edges_from(G.selfloop_edges()) #delete self loops
    remove = [node for node,degree in G.degree().items() if degree < 1]
    G.remove_nodes_from(remove) 
    # these last two code lines delete nodes having degree 0 and are not
    # requied if all you want is to convert a multigraph into a simple graph
于 2017-01-15T10:23:38.710 回答