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

प्रिम और क्रुस्कल एल्गोरिदम में अंतर


इस पोस्ट में, हम प्रिम और क्रुस्कल के एल्गोरिदम के बीच अंतर को समझेंगे।

न्यूनतम स्पैनिंग ट्री (MST) के लिए क्रुस्कल का एल्गोरिदम

  • जब एक कनेक्टेड और अनडायरेक्टेड ग्राफ दिया जाता है, तो ऐसे ग्राफ का स्पैनिंग ट्री वह सबग्राफ है जो एक ट्री है जो सभी वर्टेक्स को जोड़ता है।
  • एक सिंगल ग्राफ के कई स्पैनिंग ट्री हो सकते हैं।
  • एक वेटेड, कनेक्टेड और अनडायरेक्टेड ग्राफ के लिए न्यूनतम स्पैनिंग ट्री (MST) (जिसे न्यूनतम वजन स्पैनिंग ट्री भी कहा जाता है) एक स्पैनिंग ट्री है जिसका वजन हर दूसरे स्पैनिंग ट्री के वजन से कम या बराबर होता है।
  • स्पैनिंग ट्री का वजन स्पैनिंग ट्री के हर एज से जुड़े वजन को जोड़कर निर्धारित किया जाता है।
  • न्यूनतम स्पैनिंग ट्री को ग्राफ में न्यूनतम वजन वाले वर्टेक्स से बनाया जा सकता है।
  • एक नोड को केवल एक बार पार किया जाता है।
  • यह स्पार्स ग्राफ में तेजी से चलता है।
  • समय जटिलता O(E log V) है, जहां V वर्टेक्स की संख्या है।
  • यह डिस्कनेक्टेड कंपोनेंट्स के साथ भी काम कर सकता है।

क्रुस्कल के एल्गोरिदम का उपयोग करके MST खोजने के चरण:

  • एजेस को उनके संबंधित वजन के आरोही क्रम में सॉर्ट करें।
  • सबसे छोटा एज चुनें।
  • चेक करें कि क्या यह उस बिंदु तक बने स्पैनिंग-ट्री के साथ साइकिल बनाता है।
  • यदि साइकिल नहीं बनी है, तो इस एज को शामिल करना होगा।
  • अन्यथा, इसे छोड़ दिया जा सकता है।
  • चरण 2,3,4 को तब तक दोहराएं जब तक स्पैनिंग ट्री में V-1 एज न हों।

न्यूनतम स्पैनिंग ट्री (MST) के लिए प्रिम का एल्गोरिदम

  • यह क्रुस्कल के एल्गोरिदम के समान है, यानी यह एक ग्रीडी एल्गोरिदम है।
  • यह एक खाली स्पैनिंग ट्री से शुरू होता है। वर्टेक्स के दो सेट बनाए रखे जाते हैं।
  • पहला सेट उन वर्टेक्स को समाहित करेगा जो पहले से MST में शामिल हैं, जबकि दूसरा सेट उन वर्टेक्स को समाहित करता है जिन्हें अभी तक शामिल नहीं किया गया है।
  • हर चरण में, एल्गोरिदम उन सभी एजेस पर विचार करता है जो दोनों सेट्स को जोड़ते हैं। यह इन एजेस में से न्यूनतम वजन वाली एज चुनता है।
  • इस चरण के बाद, एल्गोरिदम MST वाले सेट के एज के दूसरे एंडपॉइंट पर जाता है।
  • न्यूनतम स्पैनिंग ट्री को ग्राफ में किसी भी वर्टेक्स से बनाया जा सकता है।
  • न्यूनतम दूरी मान प्राप्त करने के लिए एक नोड को कई बार पार किया जाता है।
  • इसकी समय जटिलता O(V²) है, जहां V वर्टेक्स की संख्या है। फाइबोनैचि हीप्स का उपयोग करके इस समय जटिलता को O(E + log V) तक बढ़ाया जा सकता है।
  • यह डेंस ग्राफ में तेजी से चलता है।
  • यह कनेक्टेड कंपोनेंट्स देता है, और केवल कनेक्टेड ग्राफ के साथ काम करता है।

प्रिम के एल्गोरिदम का उपयोग करके MST खोजने के चरण:

  • एक mstSet बनाया जाता है, जो उन वर्टेक्स को ट्रैक करता है जो पहले से MST में शामिल हैं।
  • इनपुट ग्राफ के सभी वर्टेक्स को एक की वैल्यू असाइन की जाती है।
  • की वैल्यूज को प्रारंभ में 'INFINITE' असाइन किया जाता है।
  • पहले वर्टेक्स को की वैल्यू 0 असाइन की जाती है ताकि इसे पहले चुना जा सके।
  • जब mstSet में सभी वर्टेक्स शामिल नहीं होते, तो नीचे के चरणों का पालन किया जाता है।
    • एक वर्टेक्स 'u' चुना जाता है जो mstSet में मौजूद नहीं है और जिसकी न्यूनतम की वैल्यू है।
    • यह 'u' अब mstSet में शामिल है।
    • 'u' के सभी आसन्न वर्टेक्स की की वैल्यू अपडेट की जाती है।
    • यह सभी आसन्न वर्टेक्स के माध्यम से पुनरावृति करके किया जा सकता है।
    • हर आसन्न वर्टेक्स 'v' के लिए, यदि एज 'u'-'v' का वजन 'v' की पिछली की वैल्यू से कम है, तो की वैल्यू को 'u-v' के वजन के रूप में अपडेट किया जाता है।
  1. C++ में क्रुस्कल का न्यूनतम स्पैनिंग ट्री एल्गोरिदम - लालची एल्गोरिदम C++ में क्रुस्कल का न्यूनतम स्पैनिंग ट्री एल्गोरिदम - लालची एल्गोरिदम

    एक स्पैनिंग ट्री एक लिंक्ड और अनडायरेक्टेड ग्राफ का सबग्राफ है जो सभी वर्टेक्स को जोड़ता है। एक ग्राफ में कई स्पैनिंग ट्री हो सकते हैं। प्रत्येक ग्राफ पर न्यूनतम स्पैनिंग ट्री (MST) का वजन अन्य सभी स्पैनिंग ट्री के समान या कम होता है। स्पैनिंग ट्री के किनारों को वजन दिए जाते हैं और योग प्रत्येक किन

  1. एल्गोरिदम और फ्लोचार्ट में अंतर एल्गोरिदम और फ्लोचार्ट में अंतर

    इस पोस्ट में, आइए फ्लोचार्ट और एल्गोरिदम के बीच अंतर को समझते हैं। एल्गोरिदम यह अच्छी तरह से परिभाषित चरणों के अनुक्रम के रूप में परिभाषित है। ये चरण हाथ में समस्या को हल करने का एक समाधान/तरीका प्रदान करते हैं। यह एक व्यवस्थित और तार्किक दृष्टिकोण है, जहां प्रक्रिया चरणबद्ध तरीके से परिभाषित है।

  1. BFS और DFS में अंतर BFS और DFS में अंतर

    BFS और DFS ग्राफ ट्रैवर्सल एल्गोरिदम हैं।BFSब्रेडथ फर्स्ट सर्च (BFS) एल्गोरिदम एक ग्राफ को ब्रेडथवार्ड मोशन में ट्रैवर्स करता है और अगले वर्टेक्स को याद रखने के लिए एक कतार का उपयोग करता है जब किसी भी इटरेशन में डेड एंड होता है।DFSडेप्थ फर्स्ट सर्च (DFS) एल्गोरिदम एक ग्राफ को डेप्थवार्ड मोशन में ट्र