То, что я ищу здесь, может быть встроенной функцией в networkx
и иметь математическое имя - если это так, я хотел бы знать, что это такое! для Google это очень сложно.
Учитывая график G
и начальный node 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
.
Это очень полезно, когда ваш код падает, и вы хотите понять, почему - вы можете отобразить только "локальность/область" графика рядом с проблемой node.