2017-04-21 14 views
0

ネットワーク内の特定のノードを囲む接続されたコンポーネントの数はどのように計算できますか?Networkx内のノードのコンポーネント数

例:AがBに接続されているとします.AもCとDに接続され、CとDも接続されます。この場合、ノードAには[B]と[C、D]を含む2つの接続されたコンポーネントがあります。

+0

接続されたコンポーネントがノードを「囲む」とはどういう意味ですか?ノードは、1つの接続されたコンポーネントの一部にしかなりません。 –

+0

質問を@aryamccarthy – msmazh

+0

に更新しましたあなたの質問はこのように再構成することができます:接続されたグラフからノード** A **を削除した場合、存在するコンポーネントは何ですか? –

答えて

1

私は今あなたの意図を理解していると思います。

Padgett's Florentineファミリーをモデルとして使用しましょう。メディチノードの近隣のここ

Florentine families graph

、リドルフィとトルナブオーニのみが互いに隣接しています。

# Setup 
import networkx as nx 
G = nx.florentine_families_graph() # Or whatever else your graph is. 

# Computation 
node_id = 'Medici' # Your nodes are probably identified by a number. 
ego = nx.ego_graph(G, n=node_id, center=False) 
components = nx.connected_components(ego) 
for c in components: 
    print(c) 
# {'Acciaiuoli'} 
# {'Ridolfi', 'Tornabuoni'} 
# {'Albizzi'} 
# {'Salviati'} 
# {'Barbadori'} 

エゴグラフはすべてノードのすぐ隣にありますnです。 center=Falseはそのグラフからnを除外します。そこから、コンポーネントを見つけます。

+0

素晴らしい。ありがとう@aryamccarthy – msmazh

関連する問題