여기에서 찾고있는 것은 networkx
에 내장 된 함수 일 수 있으며 수학적 이름이 있습니다. 그렇다면 무엇인지 알고 싶습니다. 그것은 Google에게는 매우 어렵습니다. networkx를 사용하여 '근처'노드를 계산하는 방법
G
및 시작 노드
i
, 나는
i
에서 "
P
가장자리에서"모든 노드의 서브 그래프를 찾으려면 감안할 때 - 즉, 이하
P
의 경로
i
에 연결되어있는 자들을 가장자리. 이것에 대한
내 초안 구현은 다음과 같습니다
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
라이브러리에 의해 제공되는지를 알고 싶을뿐입니다.
코드가 충돌 할 때 매우 유용합니다. 왜 그런지 알고 싶을 때 - 문제 노드 근처의 그래프의 "지역/지역"만 렌더링 할 수 있습니다. p
뭔가 등의 컷오프
실제로 nx.single_source_shortest_path_length가 더 좋을 것 같습니다. 그보다 적은 양의 데이터가 반환되기 때문입니다. 하지만 그래,이 최소한의 코드를 작성/유지, 감사합니다! – tehwalrus