Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

सभी जोड़े सबसे छोटे रास्ते

<घंटा/>

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

सभी जोड़े सबसे छोटे रास्ते

सबसे पहले आउटपुट मैट्रिक्स ग्राफ के दिए गए लागत मैट्रिक्स के समान है। उसके बाद आउटपुट मैट्रिक्स को सभी शीर्षों k के साथ मध्यवर्ती शीर्ष के रूप में अद्यतन किया जाएगा।

इस एल्गोरिथम की समय जटिलता O(V3) है, यहाँ V ग्राफ़ में शीर्षों की संख्या है।

इनपुट - ग्राफ़ का लागत मैट्रिक्स।

0 3 6 3 0 2 1 6 2 0 1 4 2 1 1 0 2 ∞ 4∞ 4 2 0 2 1∞ ∞ 2 ∞ 2 0 1∞ 4 1 1 0

आउटपुट - सभी जोड़ी सबसे छोटे पथ का मैट्रिक्स।

0 3 4 5 6 7 73 0 2 1 3 4 44 2 0 1 3 2 35 1 1 0 2 3 36 3 3 2 0 2 17 4 2 3 2 0 17 4 3 3 1 1 0

एल्गोरिदम

floydWarshal(लागत)

इनपुट − दिए गए ग्राफ़ का लागत मैट्रिक्स।

आउटपुट - किसी भी शीर्ष से किसी भी शीर्ष के बीच सबसे छोटे पथ के लिए मैट्रिक्स।

k के लिए शुरू करें:=0 से n, i के लिए करें:=0 से n, j के लिए करें:=0 से n, यदि लागत [i, k] + लागत [k, j] <लागत [i, j], फिर लागत[i,j] :=लागत[i,k] + लागत[k,j] किया गया हो गया वर्तमान लागत मैट्रिक्स प्रदर्शित करेंअंत

उदाहरण

#include#include
#define NODE 7#define INF 999 यूज़िंग नेमस्पेस एसटीडी;//ग्रैफिंट कॉस्टमैट का कॉस्ट मैट्रिक्स [NODE][NODE] ={ {0, 3, 6, INF, INF , INF, INF}, {3, 0, 2, 1, INF, INF, INF}, {6, 2, 0, 1, 4, 2, INF}, {INF, 1, 1, 0, 2, INF , 4}, {INF, INF, 4, 2, 0, 2, 1}, {INF, INF, 2, INF, 2, 0, 1}, {INF, INF, INF, 4, 1, 1, 0 }};Void floydWarshal(){ int cost[NODE][NODE]; // (int i =0; i 

आउटपुट

मैट्रिक्स:0 3 5 4 6 7 73 0 2 1 3 4 45 2 0 1 3 2 34 1 1 0 2 3 36 3 3 2 0 2 17 4 2 3 2 0 17 4 3 3 1 1 0 
  1. एकल-स्रोत सबसे छोटा पथ, गैर-ऋणात्मक भार

    सिंगल सोर्स शॉर्टेस्ट पाथ एल्गोरिथम (गैर-नकारात्मक वजन के लिए) को दिज्क्स्ट्रा एल्गोरिथम भी कहा जाता है। इसके आसन्न मैट्रिक्स प्रतिनिधित्व के साथ एक दिया गया ग्राफ G(V,E) है, और एक स्रोत शीर्ष भी प्रदान किया गया है। ग्राफ़ जी के किसी अन्य शीर्ष से स्रोत शीर्ष के बीच न्यूनतम सबसे छोटा पथ खोजने के लिए

  1. डेटा संरचना में येन का k- सबसे छोटा पथ एल्गोरिथम

    एक सबसे छोटा रास्ता देने के बजाय, येन का k- सबसे छोटा पथ एल्गोरिथम k . देता है सबसे छोटा रास्ता ताकि हम दूसरा सबसे छोटा रास्ता और तीसरा सबसे छोटा रास्ता आदि प्राप्त कर सकें। आइए एक परिदृश्य पर विचार करें कि हमें स्थान A से स्थान B तक यात्रा करनी है और स्थान A और स्थान B के बीच कई मार्ग उपलब्ध हैं,

  1. सी ++ में एक बाइनरी ट्री में छद्म-पैलिंड्रोमिक पथ

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है जहां नोड मान 1 से 9 तक के अंक हैं। बाइनरी ट्री में एक पथ को छद्म-पैलिंड्रोमिक कहा जाता है, जब पथ में नोड मानों का कम से कम एक क्रमपरिवर्तन एक पैलिंड्रोम होता है। हमें रूट नोड से लीफ नोड्स तक जाने वाले छद्म-पैलिंड्रोमिक पथों की संख्या ज्ञात करनी होगी। तो, अगर