ここで探しているのは の組み込み関数でnetworkx
あり、数学的な名前を持っている可能性があります。もしそうなら、それが何であるか知りたいです! Google で検索するのは非常に難しいようです。
グラフ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
これに名前があるかどうか、およびライブラリによって提供されているかどうかを知りたいだけです。
コードがクラッシュし、その理由を確認したい場合に非常に便利です。問題のあるノードの近くにあるグラフの「局所性/領域」だけをレンダリングできます。