首页 > 解决方案 > 如何将“networkx.digraph”视为无向

问题描述

我有一个G表示为的有向图networkx.digraph。我希望能够对该图的无向版本进行最短路径计算。如何获得该图的无向版本的对象。

我知道这将涉及制作一个图表视图,但是文档对于generic_graph_view解释如何实现这一点并不是很有用;对于不熟悉库内部的人来说,代码本身也不是。

标签: pythonnetworkx

解决方案


您可以将有向图传递给nx.Graph

G=nx.fast_gnp_random_graph(10,.2,directed=True)
G_undirected = nx.Graph(G)

print(G.edges)
# OutEdgeView([(0, 1), (0, 5), (1, 0), (1, 2), (1, 6), (1, 9),
# (2, 7), (2, 9), (3, 4), (4, 7), (5, 4), (6, 0), (7, 8),
# (8, 9), (9, 4)])

print(G_undirected.edges)
# EdgeView([(0, 1), (0, 5), (0, 6), (1, 2), (1, 6), (1, 9), (2, 7),
# (2, 9), (3, 4), (4, 7), (4, 5), (4, 9), (7, 8), (8, 9)])


推荐阅读