Table of Contents
The A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-A-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E-E
एडमंड्स-कार्प एल्गोरिदम एक प्रवाह नेटवर्क में अधिकतम प्रवाह की गणना के लिए फोर्ड-फल्करसन विधि का एक विशिष्ट कार्यान्वयन है। जबकि मूल फोर्ड-फल्कर्सन विधि प्रत्येक पुनरावृत्ति को चुनी जाती है। यह गारंटी एक अच्छी तरह से परिभाषित बहुपद रनटाइम की पैदा कर सकती है और एल्गोरिदम को परिचयात्मक नेटवर्क फ्लो सिद्धांत का एक आधार बनाती है।
Algorithmic विवरण और कुंजी गुण
एक निर्देशित ग्राफ G = (V, E) को एक स्रोत के साथ ]s , सिंक t ], और क्षमता कार्य c:E → R+], एडमंड्स-कैप एल्गोरिदम निम्नानुसार आगे बढ़ता है:
- सभी किनारों के लिए प्रवाह f(e) = 0 शुरू करें।
- अवशिष्ट ग्राफ Gf]]](वर्तमान प्रवाह के बराबर क्षमता वाले पिछड़े किनारों सहित) का निर्माण करना।
- Gf]]]]]]]]]]]]]t]]]]]]]]]]]]]]]]]]]]]][FLT]]]]]]]][[[[[FLT:[[[[[[[[[[[FLT:]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]][[[[[FLT[[[
- यदि कोई मार्ग मौजूद नहीं है, तो समाप्ति; वर्तमान प्रवाह अधिकतम है।
- अन्यथा, पथ (न्यूनतम अवशिष्ट क्षमता) के साथ बोतलबंद क्षमता निर्धारित करें।
- उस राशि से पथ के साथ गिरना और अवशिष्ट क्षमता को अद्यतन करना।
- चरण 2 से दोहराएं।
BFS का उपयोग यह सुनिश्चित करता है कि प्रत्येक पीड़ादायक पथ पाया अवशिष्ट ग्राफ में सबसे छोटा रास्ता है। एक महत्वपूर्ण संपत्ति उभरती है: s] से t] अवशिष्ट ग्राफ में कभी कमी नहीं होती और हर O(E)]]]]]]]]]]] ]]]]]]]]] ]]]]]] ]]]]]]]]] ]]]]]]]]]] [FLT: [[FLT:[[[[[[FLT[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
जटिलता विश्लेषण
प्रत्येक BFS का रनटाइम O(V + E) है, जो O(E)] को सामान्य स्पर्स ग्राफ के लिए सरल बनाता है। कोर चुनौती बढ़ रही है की संख्या को बाध्य कर रहा है। क्योंकि प्रत्येक वृद्धि कम से कम एक किनारे (BLT-F: 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
ठीक से, मानक विश्लेषण से पता चलता है कि वृद्धि की संख्या सबसे अधिक है O(VE)], इसलिए समग्र समय O(V E2)](or ]O(V E * (V+E))]]]]]](FLT:5]]]]]]]] ]]], यह हो जाता है O(V4)[FLT:A, विशेष रूप से ss, ss, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s, s,
अन्य मैक्स फ्लो एल्गोरिथ्म के साथ तुलना
Dinic's Algorithm
Dinic's एल्गोरिदम भी BFS का उपयोग एक स्तर के ग्राफ बनाने के लिए करता है, लेकिन फिर स्तर के ग्राफ पर DFS के माध्यम से एक एकल चरण में कई बढ़ते रास्ते की अनुमति देता है। यह सामान्य रूप से BFS की संख्या को कम करता है O(E √V) (जिसके बाद सिंक का स्तर प्रत्येक चरण में बढ़ जाता है)। समग्र जटिलता O(V2 E) ]] है क्योंकि यह कई तरह के नेटवर्क के लिए है, क्योंकि यह कई तरह के हैं।
पुश-रिलाबेल अल्गोरिथम
पुश-रिलेबल विधियां, जैसे कि जेनेरिक एल्गोरिथ्म या उच्चतम लेबल संस्करण, O(V2 √E) ] या O(V3) बाउंड्स. वे स्थानीय रूप से योग्य किनारों के साथ प्रवाह धक्का और एक वैध लेबलिंग बनाए रखने के लिए vertices relabeling द्वारा काम करते हैं। ये एल्गोरिदम लागू करने के लिए अधिक जटिल हैं लेकिन अक्सर अभ्यास में तेजी से चल रहे हैं, विशेष रूप से बड़े, घने ग्राफ के लिए। उच्चतम लेबल पुश-रिलेबल एल्गोरिथ्म का व्यापक रूप से प्रतिस्पर्धी प्रोग्रामिंग और वास्तविक दुनिया के प्रवाह हलकों में उपयोग किया जाता है।
एक अन्य महत्वपूर्ण संस्करण capacity स्केलिंग एल्गोरिदम है, जो फोर्ड-फल्करसन विधि में स्केलिंग पैरामीटर जोड़ता है, पैदावार O(E2 log U)] जहां U]] अधिकतम क्षमता है। यह भी बहुपद लेकिन पुश-रिलाबेल की तुलना में सरल है।
क्यों Edmonds-Karp फिर भी मामला
डायनिक और पुश-रिलेबल की तुलना में धीमी होने के बावजूद, एडमंड्स-कार्प शैक्षणिक रूप से मूल्यवान है। इसकी सादगी और बहुपद रनटाइम (सबसे कम पथ मोनोटोनिसिटी पर आधारित) का सहज सबूत इसे एक उत्कृष्ट शिक्षण उपकरण बनाता है। कई कंप्यूटर विज्ञान पाठ्यक्रम अधिक उन्नत तरीकों तक जाने से पहले एडमंड्स-कार्प पेश करते हैं। इसके अतिरिक्त, छोटे से मध्यम आकार के नेटवर्क (say, कुछ हजार vertices और किनारों तक) के लिए, व्यावहारिक प्रदर्शन अंतर नगण्य हो सकता है, खासकर अगर ग्राफ sparse है और कम बढ़त क्षमता है।
प्रैक्टिकल इम्प्लीमेंट्स एंड यूज़ केस
वास्तविक दुनिया के अनुप्रयोगों में, एल्गोरिदम चयन समस्या बाधाओं पर भारी निर्भर करता है। उदाहरण के लिए:
- ] द्विपक्षीय मिलान : एडमंड्स-कर्प हॉप्रोफ्ट-कर्प एल्गोरिदम को कम करता है जब क्षमता इकाई होती है और नेटवर्क द्विपक्षीय होता है? वास्तव में नहीं - हॉप्रोफ्ट-कर्प O(E √V) समय के साथ एक समर्पित एल्गोरिथ्म है; हालांकि, एडमंड्स-कर्प इकाई क्षमता द्विपक्षीय ग्राफों पर O(V E) ]] एक चक्रीय संख्या को जोड़ती है।
- ]Traffic Engineering: दूरसंचार और सड़क नेटवर्क में, प्रवाह अक्सर बड़े और ग्राफ sparse होते हैं। बेहतर स्केलिंग के कारण डायनिक या पुश-रिलाबेल को प्राथमिकता दी जाती है।
- Image विभाजन : कंप्यूटर दृष्टि के लिए ग्राफ कट एल्गोरिदम अक्सर अधिकतम प्रवाह / मिनट कटौती गणना पर निर्भर करते हैं। Boykov-Kolmogorov एल्गोरिदम, एक विशेष संवर्धित-पथ विधि, अक्सर इन ग्रिड जैसे ग्राफ के लिए सामान्य एल्गोरिदम को अलग करता है, लेकिन एडमंड्स-कैप छोटी समस्याओं के लिए इस्तेमाल किया जा सकता है।
- शिक्षा और प्रोटोटाइप : जब सादगी और शुद्धता कच्चे गति पर निर्भर है, तो एडमंड्स-कर्प एक सुरक्षित विकल्प है। इसका व्यवहार पूर्वानुमान योग्य है, और डीबगिंग सीधा है क्योंकि BFS लागू करना आसान है।
अनुभवजन्य प्रदर्शन
यादृच्छिक ग्राफ़ पर बेंचमार्क दिखाते हैं कि एडमंड्स-कर्प अक्सर अभ्यास में निकट-रेखीय समय में चलता है जब किनारे की क्षमता छोटी होती है (O(1)]) क्योंकि वृद्धि की संख्या अधिकतम प्रवाह मान से घिरा है, जो छोटा हो सकता है। हालांकि, उच्च क्षमता वाले नेटवर्क के लिए, एल्गोरिदम गिरावट हो सकती है। उदाहरण के लिए, एक नेटवर्क पर विचार करें जहां क्षमता बड़ी पूर्ण होती है; प्रवाह मूल्य विशाल हो सकता है, जिससे कई वृद्धि हो सकती है। ऐसे मामलों में, डायनिक या स्केलिंग विधियां अधिक मजबूत होती हैं।
कार्यान्वयन विचार
एडमंड्स-कैप को लागू करते समय, सावधानीपूर्वक अवशिष्ट ग्राफ प्रबंधन आवश्यक है। आगे और पीछे दोनों किनारों का प्रतिनिधित्व करने से आसान वृद्धि और बैकट्रैकिंग की अनुमति मिलती है। किनारों को रिवर्स करने के लिए पॉइंटर्स के साथ एक अदला-बदली सूची का उपयोग करना (या रिवर्स एज इंडेक्स को स्टोर करना) अद्यतन को सरल बनाता है। BFS को पूर्ववर्तीों को भी ऑगमेंटिंग पथ को फिर से बनाने के लिए रिकॉर्ड करना चाहिए। मेमोरी का उपयोग O(V + E) ] है, जो अन्य एल्गोरिदम के समान है।
अनुकूलन में शामिल हैं:
- प्रारंभिक समाप्ति अगर BFS पहुँच नहीं सकता t].
- फ्लोटिंग-पॉइंट मुद्दों से बचने के लिए पूर्णांक क्षमताओं और प्रवाह का उपयोग करना।
- यदि रेखा के कई समानांतर किनारों (हालांकि कम आम) है, तो एकाधिक वृद्धि को एकत्र करना।
बहुत बड़े नेटवर्क के लिए, एक गतिशील BFS का उपयोग करने पर विचार करें जो दूरी को बढ़ाकर अद्यतन करता है, लेकिन यह अक्सर Edmonds-Karp विशेष रूप से के लिए महत्वपूर्ण लाभ के बिना जटिलता को जोड़ता है।
मूल फोर्ड-फल्करसन विधि से संबंधित
जैक एडमंड्स और रिचर्ड कार्प ने 1972 में अपने एल्गोरिथ्म को प्रकाशित किया, यह दर्शाता है कि BFS का उपयोग एक बहुपद अधिकतम प्रवाह एल्गोरिथ्म उत्पन्न करता है। इससे पहले, फोर्ड-फुल्करसन विधि (1956) ने पथ चयन नियम को निर्दिष्ट नहीं किया था, और यह ज्ञात था कि खराब विकल्प समय से घातीय समय तक हो सकता है। एडमंड्स और कार्प का काम नेटवर्क प्रवाह के लिए दृढ़ता से बहुपद एल्गोरिदम के विकास में एक मूलभूत कदम था। कागज "नेट फ्लो समस्याओं के लिए एल्गोरिथ्मिक क्षमता में सैद्धांतिक सुधार"] एक क्लासिक संदर्भ बना हुआ है।
एक्सटेंशन और विविधता
एडमंड्स-कैप के विभिन्न प्रकारों में शामिल हैं:
- Capacity स्केलिंग संस्करण : सबसे कम रास्ते के साथ हमेशा बढ़ रहा है के बजाय, एल्गोरिदम एक स्केलिंग पैरामीटर के साथ काम करता है ]Δ] और केवल अवशिष्ट क्षमता ≥ Δ के साथ किनारों पर विचार करता है। यह एक O(E2 लॉग U) एल्गोरिथ्म पैदा करता है।
- ]Unit क्षमता अनुकूलन : जब सभी क्षमता 1 होती है, तो BFS-आधारित वृद्धि पथ एल्गोरिदम हॉपक्रॉफ्ट-कर्प एल्गोरिदम के लिए माहिर हैं, हालांकि बाद में BFS/DFS को प्राप्त करने के लिए सावधान वैकल्पिक BFS/DFS का उपयोग करता है O(E √V)]]].
- ]Integrality : एल्गोरिदम स्वाभाविक रूप से अभिन्न प्रवाह बनाए रखता है जब क्षमता अभिन्न होती है, तो यह combinatorial समस्याओं के लिए उपयुक्त बनाती है।
निष्कर्ष
एडमंड्स-कर्प एल्गोरिदम अधिकतम प्रवाह समस्याओं को हल करने के लिए एक विश्वसनीय और अच्छी तरह से अंडरस्टोड विधि है। इसका O(V E2)] सबसे खराब मामलों का समय जटिलता यह बहुत बड़े या घने नेटवर्क के लिए अव्यवहारिक बनाता है, लेकिन इसकी सादगी और बहुपद रनटाइम के स्पष्ट सबूत ने एल्गोरिदम पाठ्यपुस्तकों में अपनी जगह को सीमेंट किया है। वास्तविक दुनिया प्रणालियों के लिए उच्च प्रदर्शन की आवश्यकता होती है, डायनिक के एल्गोरिदम या पुश-रिलाबेल तरीकों को आम तौर पर पसंद किया जाता है। हालांकि, शैक्षिक सेटिंग्स, छोटे पैमाने की समस्याओं या शुद्धता सत्यापन के लिए एक आधार रेखा के रूप में, एडमंड्स-कर्प एक मूल्यवान उपकरण बना हुआ है।
उन्नत प्रवाह एल्गोरिदम पर आगे पढ़ने को ] विकिपीडिया लेख और क्लासिक पाठ्यपुस्तक में Algorithms (CLRS) के लिए परिचय। प्रवाह एल्गोरिदम प्रदर्शन के गहरे विश्लेषण के लिए, NetworkX प्रवाह कार्यान्वयन नोट्स देखें।