2013-06-25 7 views
10

साथ गणना करने के लिए कैसे 'आस-पास' नोड्स क्या मैं यहाँ के लिए देख रहा हूँ अच्छी तरह से networkx में निर्मित एक समारोह हो सकता है, और एक गणितीय नाम है - यदि हां, तो मुझे पता है कि यह क्या है चाहते हैं! ऐसा लगता है कि Google के लिए यह बहुत मुश्किल है।networkx

एक ग्राफ G और एक शुरू करने नोड i, मैं i से सभी नोड्स "P किनारों के भीतर" की subgraph प्राप्त करना चाहते हैं को देखते हुए - जो है, उन है कि कम से कम 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 पुस्तकालय द्वारा प्रदान किया जाता है।

यह बहुत उपयोगी है जब आपके कोड क्रैश हो रहा है और आप क्यों देखना चाहते हैं - आप समस्या नोड के पास ग्राफ की बस "इलाके/क्षेत्र" प्रदान कर सकते हैं।

उत्तर

9

उपयोग single_source_shortest_path या single_source_shortest_path_lengthp

कुछ तरह के एक कटऑफ के साथ:

nx.single_source_shortest_path_length(G ,source=i, cutoff=p) 
+1

धन्यवाद, वास्तव में ऐसा लगता है कि यह nx.single_source_shortest_path_length बेहतर होगा, क्योंकि इससे कम डेटा मिलता है (मुझे लगता है कि यह कम काम भी करता है)। लेकिन हाँ, लिखने/बनाए रखने के लिए यह कम से कम कोड है, धन्यवाद! – tehwalrus

17

दो साल देर से, लेकिन मैं इस एक ही बात के लिए देख रहा था और पाया एक अंतर्निहित मुझे लगता है कि मिल जाएगा उपग्राफ जो आप चाहते हैं: ego_graph। समारोह हस्ताक्षर और दस्तावेज:

ego_graph(G, n, radius=1, center=True, undirected=False, distance=None) 

रिटर्न प्रेरित नोड पर n एक दिया के दायरे में केंद्रित पड़ोसियों के subgraph।

+0

वास्तव में वास्तव में उपयोगी सामान! +1 – FaCoffee

संबंधित मुद्दे