【发布时间】:2013-06-22 12:27:12
【问题描述】:
我在这里寻找的很可能是networkx 中的一个内置函数,并且有一个数学名称——如果是这样,我想知道它是什么! Google 似乎很难做到。
给定一个图G 和一个起始节点i,我想从i 中找到所有“在P 边内”的节点的子图——即那些连接到@ 的节点987654326@ 通过小于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 库提供。
当您的代码崩溃并且您想了解原因时,它非常有用 - 您可以仅在问题节点附近呈现图形的“位置/区域”。
【问题讨论】: