2012-02-24 12 views
6

मैं 5012 नोड्स वाले बड़े नेटवर्क ग्राफ़ को प्रबंधित करने के लिए networkx का उपयोग कर रहा हूं।नेटवर्कक्स - सबसे कम पथ लंबाई

मैं नोड्स के एक विशिष्ट सेट के बीच सबसे छोटी पथ लंबाई की गणना करना चाहता हूं, एन
कहें कि मैं nx.shortest_path_length फ़ंक्शन का उपयोग कर रहा हूं।

एन के कुछ नोड्स में कोई रास्ता नहीं हो सकता है, इसलिए नेटवर्कक्स मेरे प्रोग्राम को बढ़ा रहा है और रोक रहा है।

क्या इस प्रोग्राम को बिना किसी त्रुटि के चलाने का कोई तरीका है?
और कुछ अधिकतम मूल्य वापस करने के लिए shortest_path_length पर बताना?

कोड लूप में nx.shortest_path_length(G,i,j) का उपयोग करता है। और त्रुटि के रूप में

raise nx.NetworkXNoPath("No path between %s and %s." % (source, target)) networkx.exception.NetworkXNoPath: No path between V and J

+2

"और मेरे कार्यक्रम रोक" इस प्रकार है? क्या आपका मतलब यह अपवाद उठाता है? क्या आप 'कोशिश करें' कथन के साथ मदद मांग रहे हैं? क्या आप कोड और वास्तविक त्रुटि संदेश पोस्ट कर सकते हैं जिसे आप वास्तव में प्राप्त कर रहे हैं? –

+0

हाँ यह अपवाद उठा रहा है और रन टाइम त्रुटि है इसलिए यह आउटपुट में अपवाद संदेश प्रिंट करता है और पुनरावृत्ति में अन्य नोड्स को भी संसाधित नहीं करता है। –

+0

टिप्पणी मदद नहीं है। असल में ** अद्यतन ** कोड और अपवाद के विवरण के साथ प्रश्न अद्यतन करें। और - यदि आप कोशिश कथन से अपरिचित हैं, तो ट्यूटोरियल ढूंढें और ट्यूटोरियल करने के बाद प्रयास कथन के बारे में ** विशिष्ट ** प्रश्न पूछें। –

उत्तर

9
import networkx as nx 
G=nx.Graph() 
G.add_nodes_from([1,2,3,4]) 
G.add_edge(1,2) 
G.add_edge(3,4) 
try: 
    n=nx.shortest_path_length(G,1,4) 
    print n 
except nx.NetworkXNoPath: 
    print 'No path' 
संबंधित मुद्दे