[英]how to compute 'nearby' nodes with networkx
我在这里寻找的很可能是networkx
一个内置函数,并且有一个数学名称——如果是这样,我想知道它是什么! 谷歌似乎很难找到。
给定图G
和一个起始节点i
,我想找到的所有节点的子图“内P
边缘”从i
-即,那些被连接到i
由小于一路径P
的边缘。
我对此的实施草案是:
import networkx as nx
N = 30
G = nx.Graph()
# populate the graph...
G.add_cycle(range(N))
# the starting node:
i = 15
# the 'distance' limit:
P = 4
neighborhood = [i]
new_neighbors = [i]
depth = 0
while depth < P:
new_neighbors = list(set(sum([
[k for k in G[j].keys() if k not in neighborhood]
for j in new_neighbors], [])))
neighborhood.extend(new_neighbors)
depth += 1
Gneighbors = G.subgraph(neighborhood)
顺便说一下,这段代码有效,所以我不需要帮助来实现。 我只想知道这是否有名称,以及它是否由networkx
库提供。
当您的代码崩溃并且您想了解原因时,它非常有用 - 您可以仅在问题节点附近渲染图形的“位置/区域”。
使用single_source_shortest_path
或single_source_shortest_path_length
与p
的截止值
就像是:
nx.single_source_shortest_path_length(G ,source=i, cutoff=p)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.