साथ गणना करने के लिए कैसे 'आस-पास' नोड्स क्या मैं यहाँ के लिए देख रहा हूँ अच्छी तरह से 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
पुस्तकालय द्वारा प्रदान किया जाता है।
यह बहुत उपयोगी है जब आपके कोड क्रैश हो रहा है और आप क्यों देखना चाहते हैं - आप समस्या नोड के पास ग्राफ की बस "इलाके/क्षेत्र" प्रदान कर सकते हैं।
धन्यवाद, वास्तव में ऐसा लगता है कि यह nx.single_source_shortest_path_length बेहतर होगा, क्योंकि इससे कम डेटा मिलता है (मुझे लगता है कि यह कम काम भी करता है)। लेकिन हाँ, लिखने/बनाए रखने के लिए यह कम से कम कोड है, धन्यवाद! – tehwalrus