8

पर लागू कर सकते हैं मुझे पता है कि बेलमैन-फोर्ड एल्गोरिदम निर्देशित ग्राफ के लिए काम करता है लेकिन केवल जानकारी के लिए मैं यह जानना चाहता हूं कि यह अन-निर्देशित ग्राफ के लिए काम करेगा या नहीं? चूंकि अन-निर्देशित ग्राफ के साथ यह चक्रों का पता लगाने में सक्षम नहीं होगा क्योंकि समांतर किनारों को साइकिल के रूप में माना जाएगा !! कृपया स्पष्ट करें।क्या हम बेलमैन फोर्ड एल्गोरिदम को अप्रत्यक्ष ग्राफ

+2

[इस] (http://stackoverflow.com/questions/14538403/shortest-path-algorithms-for-undirected-graph) पर एक नज़र डालें। – Nik

उत्तर

23

वास्तव में कोई अप्रत्यक्ष ग्राफ भी एक निर्देशित ग्राफ है।

आपको बस किसी भी किनारे {u, v} को दो बार (u, v) और (v, u) निर्दिष्ट करना होगा।

लेकिन यह न भूलें, इसका मतलब यह भी है कि नकारात्मक वजन वाले किसी भी किनारे को लूप के रूप में गिना जाएगा। बेलमैन-फोर्ड एल्गोरिदम केवल उन ग्राफों पर काम करता है जिनमें नकारात्मक वजन वाले चक्र नहीं होते हैं, इसका वास्तव में मतलब है कि आपके अन-निर्देशित ग्राफ़ में नकारात्मक वजन वाले किनारों को शामिल नहीं होना चाहिए।

यदि बेलमैन-फोर्ड का उपयोग करने के लिए यह बहुत अच्छा नहीं है।

+9

इस पर विस्तृत करने के लिए - चूंकि ग्राफ़ में केवल नॉनगेटिव किनारों का होना है, इसका मतलब यह है कि आप इसके बजाय डिजस्ट्रा के एल्गोरिदम का उपयोग करना चाहेंगे, क्योंकि यह असंवेदनशील रूप से तेज़ है। – templatetypedef

+0

मुझे एक ही संदेह है। स्पष्टीकरण के लिए धन्यवाद। – whitehat

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