2017-06-06 35 views
0

我想模擬一個具有時變性和節點移動行爲的無線網絡。因此,我需要每次節點醒來或移動以在距離以內搜索其鄰居。我怎樣才能找到附近的節點?有什麼功能?謝謝如何在網絡中找到未連接節點的距離內的鄰居x python圖形

+1

你是在拓撲距離還是幾何距離之後? WSN的上下文表示可能是物理距離,而不是你需要遍歷的邊數。但問題不明確。 (當前答案讀取它作爲拓撲距離) – Bonlenfum

+0

@Bonlenfum更新我的答案來解決這個問題。 –

+0

如果這些答案中的任何一個解決了您的問題,您應該用旁邊的複選框標記最有幫助的答案。這有助於未來的用戶誰也有你的問題。 –

回答

0

不出所料,這是.neighbors()

D = nx.Graph() 
D.add_path([1,2,3,4]) 
D.neighbors(2) 

會給你

[1,3]

如果你想要的距離內,說節點2的鄰居和它的鄰居,你可以遞歸地應用.neighbors

visited = set() 
for node in D.neighbors(2): 
    visited.add(node) 
    visited.update(D.neighbors(node)) 
1

這是一個單一的功能:ego_graph。它可以讓你指定一個距離參數,稱爲radius

進口networkx作爲NX

# Sample data 
G = nx.florentine_families_graph() 
nx.draw_networkx(G, with_labels=True) 

# Desired graph 
H = nx.ego_graph(G, node=4, radius=2) 
nx.draw_networkx(H, with_labels=True) 

整個佛羅倫薩家庭圖表:

florentine_families_graph

而不僅僅是那些節點 'Acciauoli' 的距離2內:

acciauoli ego graph

如果你「重新使用除了簡單拓撲距離之外的距離度量(即,計數邊緣),您可以將distance參數提供給ego_graph函數以指定用於距離的邊緣屬性。

相關問題