首页 > 解决方案 > 如何在networkx中选择计算平均路径长度为1或2的路径?

问题描述

如何计算networkx中平均路径长度为1或2的路径?例如,在下图中,平均路径长度等于 1 为 6,2 为 2。

import networkx as nx
import matplotlib.pyplot as plt
G=nx.DiGraph()
G.add_edges_from([(1, 2), (1, 5), (1, 6), (1, 9), (2, 3), (2, 4), (6, 7)])
pos=nx.spring_layout(G, iterations=5000) 
plt.figure()
nx.draw(G, pos)

在此处输入图像描述

标签: pythonnetworkx

解决方案


如果我正确理解您的问题,您的意思不是平均路径长度,而是一般的简单路径长度。您的问题旨在找到具有给定长度的路径。

鉴于您的图似乎是一棵树,我们可以将树的根命名为“A”,然后运行以下代码以生成所需的结果:

path=nx.single_source_shortest_path(G,'A',cutoff=2)
for i in path:
    print(str(i)+" has path length "+ str(len(path[i]-1))))

推荐阅读