अपेक्षित रैखिक समय एमएसटी एल्गोरिदम

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

न्यूनतम स्पैनिंग ट्री खोजने वाले नियतात्मक एल्गोरिदम में प्राइम का एल्गोरिदम, क्रुस्कल का एल्गोरिदम, रिवर्स-डिलीट एल्गोरिदम और बोरव्का का एल्गोरिदम शामिल हैं।

अवलोकन
एल्गोरिथम की मुख्य अंतर्दृष्टि  यादृच्छिक नमूनाकरण चरण है जो प्रत्येक सबग्राफ में शामिल करने के लिए किनारों को यादृच्छिक रूप से चुनकर   ग्राफ़ को दो Gglosary_of_graph_theory#Subgraphs में विभाजित करता है। एल्गोरिथ्म पुनरावर्ती रूप से पहले उप-समस्या के न्यूनतम फैलाव वाला पेड़ को ढूंढता है और ग्राफ़ में किनारों को हटाने के लिए   रैखिक समय सत्यापन एल्गोरिदम के साथ समाधान का उपयोग करता है जो न्यूनतम स्पैनिंग ट्री में नहीं हो सकता है। बोरोव्का के एल्गोरिदम से ली गई   प्रक्रिया का उपयोग प्रत्येक रिकर्सन (कंप्यूटर विज्ञान) में ग्राफ़ के आकार को कम करने के लिए भी किया जाता है।

बोरोव्का चरण
एल्गोरिदम का प्रत्येक पुनरावृत्ति बोरोव्का के एल्गोरिदम के अनुकूलन पर निर्भर करता है जिसे बोरोव्का चरण कहा जाता है:

इनपुट:  ग्राफ़ G जिसमें कोई पृथक शीर्ष नहीं है 1 प्रत्येक शीर्ष v के लिए, v पर पड़ने वाले सबसे हल्के किनारे का चयन करें 2 चरण 1 में चयनित किनारों से जुड़े G के प्रत्येक घटक को  एकल शीर्ष से प्रतिस्थापित करके   अनुबंधित ग्राफ G' बनाएं 3 G' से सभी पृथक शीर्षों, सेल्फ-लूप और गैर-न्यूनतम दोहराव वाले किनारों को हटा दें आउटपुट: चरण 1 में चयनित किनारे और अनुबंधित ग्राफ़ G'

बोरोव्का चरण बोरोव्का के एल्गोरिदम के आंतरिक लूप के बराबर है, जो ओ (एम) समय में चलता है जहां एम जी में किनारों की संख्या है। इसके अलावा, चूंकि प्रत्येक किनारे को अधिकतम दो बार चुना जा सकता है (प्रत्येक घटना शीर्ष पर  बार) चरण 1 के बाद डिस्कनेक्ट किए गए घटकों की अधिकतम संख्या शीर्षों की आधी संख्या के बराबर है। इस प्रकार,   बोरोव्का चरण ग्राफ़ में शीर्षों की संख्या को कम से कम दो गुना कम कर देता है और कम से कम n/2 किनारों को हटा देता है जहां n G में शीर्षों की संख्या है।

बोरोव्का चरण का उदाहरण निष्पादन

एफ-भारी और एफ-हल्के किनारे
प्रत्येक पुनरावृत्ति में एल्गोरिथ्म विशेष गुणों वाले किनारों को हटा देता है जो उन्हें न्यूनतम स्पैनिंग ट्री से बाहर कर देता है। इन्हें एफ-भारी किनारे कहा जाता है और इन्हें निम्नानुसार परिभाषित किया गया है। मान लीजिए F ग्राफ़ (अलग गणित) H पर  जंगल है।   F-भारी किनारा   किनारा है जो शीर्ष u,v को जोड़ता है जिसका वजन F में u से v तक के रास्ते पर सबसे भारी किनारे के वजन से अधिक है। (यदि कोई पथ F में मौजूद नहीं है तो इसे अनंत भार वाला माना जाता है)। कोई भी किनारा जो एफ-भारी नहीं है वह एफ-लाइट है। यदि F, G का   शब्दकोष_of_graph_theory#Subgraphs है, तो G में कोई भी F-भारी किनारा, Minim_spanning_tree#Cycle_property द्वारा G के न्यूनतम स्पैनिंग ट्री में नहीं हो सकता है।   जंगल को देखते हुए, एफ-भारी किनारों की गणना न्यूनतम फैले हुए पेड़ सत्यापन एल्गोरिदम का उपयोग करके रैखिक समय में की जा सकती है।

एल्गोरिदम
इनपुट:  ग्राफ़ G जिसमें कोई पृथक शीर्ष नहीं है आउटपुट: जी' का न्यूनतम फैला हुआ जंगल और बोरोव्का चरणों से अनुबंधित किनारे
 * 1) यदि G खाली है तो   खाली जंगल लौटाएं
 * 2) G पर लगातार दो Borůvka चरण चलाकर   अनुबंधित ग्राफ G' बनाएं
 * 3) प्रायिकता 1/2 के साथ G' में प्रत्येक किनारे का चयन करके   सबग्राफ H बनाएं। न्यूनतम फैले हुए वन F को प्राप्त करने के लिए एल्गोरिदम को H पर पुनरावर्ती रूप से लागू करें।
 * 4) रैखिक समय न्यूनतम फैले वृक्ष सत्यापन एल्गोरिदम का उपयोग करके जी' (जहां एफ चरण 3 से जंगल है) से सभी एफ-भारी किनारों को हटा दें।  # न्यूनतम फैले हुए जंगल को प्राप्त करने के लिए एल्गोरिदम को G' पर पुनरावर्ती रूप से लागू करें।

शुद्धता
ग्राफ़ में शीर्षों की संख्या को शामिल करके शुद्धता सिद्ध की जाती है। आधार मामला तुच्छ रूप से सत्य है। मान लीजिए T* G का न्यूनतम स्पैनिंग ट्री है। Borůvka चरण में चयनित प्रत्येक किनारा मिनिमम_spanning_tree#Cut_property द्वारा T* में है और अनुबंधित ग्राफ़ बनाने के लिए हटाए गए किनारों में से कोई भी मिनिमम_spanning_tree#Cut_property द्वारा T* में नहीं है (अनावश्यक के लिए) किनारे) और मिनिमम_स्पैनिंग_ट्री#साइकिल_प्रॉपर्टी (सेल्फ लूप के लिए)। चरण 2 में चयनित नहीं किए गए T* के शेष किनारे, Minim_spanning_tree#Cut_property द्वारा अनुबंधित ग्राफ़ का न्यूनतम स्पैनिंग ट्री बनाते हैं (प्रत्येक कट को  सुपरनोड होने दें)। हटाया गया प्रत्येक '#F-भारी और F-प्रकाश किनारा|F-भारी किनारा' मिनिमम_स्पैनिंग_ट्री#साइकिल_प्रॉपर्टी द्वारा न्यूनतम स्पैनिंग ट्री में नहीं है। अंततः F ' आगमनात्मक परिकल्पना द्वारा अनुबंधित ग्राफ का न्यूनतम फैलाव वाला वृक्ष है। इस प्रकार F ' और बोरोव्का चरणों से अनुबंधित किनारे न्यूनतम फैले हुए पेड़ का निर्माण करते हैं।

प्रदर्शन
अपेक्षित प्रदर्शन यादृच्छिक नमूनाकरण चरण का परिणाम है। यादृच्छिक नमूनाकरण चरण की प्रभावशीलता को निम्नलिखित लेम्मा द्वारा वर्णित किया गया है जो जी में #एफ-भारी और एफ-लाइट किनारों | एफ-लाइट किनारों की संख्या पर  सीमा लगाता है जिससे दूसरे उप-समस्या का आकार सीमित हो जाता है।

यादृच्छिक नमूनाकरण प्रमेय
लेम्मा- मान लें कि H G का  उपसमूह है, जो G के प्रत्येक किनारे को स्वतंत्र रूप से प्रायिकता p के साथ शामिल करके बनाया गया है और F को का न्यूनतम फैला हुआ जंगल है। 'एच। #F-भारी और F-लाइट किनारों का अपेक्षित मान|G में F-लाइट किनारों का अधिकतम n/p है जहां n G में शीर्षों की संख्या है '.

लेम्मा को साबित करने के लिए जी के किनारों की जांच करें क्योंकि उन्हें एच में जोड़ा जा रहा है। जी में #एफ-भारी और एफ-लाइट किनारों | एफ-लाइट किनारों की संख्या उस क्रम से स्वतंत्र है जिसमें एच के न्यूनतम फैले जंगल के बाद से एच के किनारों का चयन किया जाता है। 'सभी चयन आदेशों के लिए समान है। प्रमाण के लिए जी के किनारों को हल्के से भारी तक किनारे के वजन के क्रम में  बार में लेकर एच के लिए किनारों का चयन करने पर विचार करें। मान लीजिए ई को वर्तमान बढ़त माना जा रहा है। यदि ई के अंतिम बिंदु एच के दो अलग किए गए घटकों में हैं तो ई उन घटकों को जोड़ने वाला सबसे हल्का किनारा है और यदि इसे एच में जोड़ा जाता है तो यह में होगा एफ मिनिमम_स्पैनिंग_ट्री#कट_प्रॉपर्टी द्वारा। इसका मतलब यह भी है कि ई #एफ-भारी है और एफ-लाइट किनारे|एफ-लाइट है, भले ही इसे एच में जोड़ा गया हो या नहीं, क्योंकि बाद में केवल भारी किनारों पर ही विचार किया जाता है। यदि ई के दोनों समापन बिंदु एच के   ही घटक में हैं तो यह मिनिमम_स्पैनिंग_ट्री#साइकिल_प्रॉपर्टी द्वारा एफ-भारी है (और हमेशा रहेगा)। फिर एज ई को प्रायिकता पी के साथ एच में जोड़ा जाता है।

H में जोड़े गए #F-भारी और F-लाइट किनारों|F-लाइट किनारों की अधिकतम संख्या n-1 है क्योंकि H के किसी भी न्यूनतम फैले हुए पेड़ में n है -1 किनारे. बार एन-1 एफ-लाइट किनारों को एच में जोड़ दिया गया है, तो मिनिमम_स्पैनिंग_ट्री#साइकिल_प्रॉपर्टी द्वारा बाद के किसी भी किनारे को एफ-लाइट नहीं माना जाता है। इस प्रकार, जी में एफ-लाइट किनारों की संख्या एन-1 एफ-लाइट किनारों को वास्तव में जोड़ने से पहले एच के लिए माने जाने वाले एफ-लाइट किनारों की संख्या से सीमित होती है। एच। चूंकि किसी भी एफ-लाइट किनारे को प्रायिकता पी के साथ जोड़ा जाता है, यह चित आने की प्रायिकता पी वाले सिक्के को तब तक उछालने के बराबर है जब तक एन-1 चित सामने नहीं आ जाता। सिक्का उछालने की कुल संख्या जी में एफ-लाइट किनारों की संख्या के बराबर है। सिक्का उछालने की संख्या का वितरण n-1 और p मापदंडों के साथ नकारात्मक द्विपद वितरण द्वारा दिया जाता है। इन मापदंडों के लिए इस वितरण का अपेक्षित मूल्य (n-1)/p'' है।

अपेक्षित विश्लेषण
पुनरावर्ती उपसमस्याओं में किए गए कार्य को अनदेखा करते हुए एल्गोरिदम के एकल आह्वान में किए गए कार्य की कुल मात्रा इनपुट ग्राफ़ में किनारों की संख्या में रैखिक समय है। चरण 1 में निरंतर समय लगता है। जैसा कि #Borůvka चरण|Borůvka चरण अनुभाग में बताया गया है, Borůvka चरणों को किनारों की संख्या में रैखिक समय में निष्पादित किया जा सकता है। चरण 3 किनारों के माध्यम से पुनरावृत्त करता है और प्रत्येक के लिए  सिक्का उछालता है ताकि यह किनारों की संख्या में रैखिक हो। चरण 4 को संशोधित रैखिक समय न्यूनतम फैले हुए वृक्ष सत्यापन एल्गोरिदम का उपयोग करके रैखिक समय में निष्पादित किया जा सकता है।  चूंकि एल्गोरिदम के   पुनरावृत्ति में किया गया कार्य किनारों की संख्या में रैखिक होता है, इसलिए एल्गोरिदम के   पूर्ण रन में किया गया कार्य (सभी पुनरावर्ती कॉल सहित) मूल समस्या में किनारों की कुल संख्या के गुणा   स्थिर कारक से घिरा होता है और सभी पुनरावर्ती उपसमस्याएँ।

एल्गोरिदम का प्रत्येक आह्वान अधिकतम दो उपसमस्याएं उत्पन्न करता है इसलिए उपसमस्याओं का सेट  द्विआधारी वृक्ष बनाता है। प्रत्येक #Borůvka चरण|Borůvka चरण शीर्षों की संख्या को कम से कम दो गुना कम कर देता है, इसलिए दो Borůvka चरणों के बाद शीर्षों की संख्या चार गुना कम हो गई है। इस प्रकार, यदि मूल ग्राफ़ में n कोने और m किनारे हैं तो पेड़ की गहराई d पर प्रत्येक उपसमस्या अधिकतम n/4 के ग्राफ़ पर हैघ शीर्ष. इसके अलावा पेड़ में अधिकतम लॉग है4n स्तर.

रिकर्सन ट्री के बारे में तर्क करने के लिए चरण 3 में पुनरावर्ती कॉल में बाएं चाइल्ड समस्या को उपसमस्या होने दें और चरण 5 में रिकर्सिव कॉल में दाएं चाइल्ड समस्या को उपसमस्या होने दें। मूल समस्या और सभी उपसमस्याओं में किनारों की कुल संख्या की गणना करें पेड़ के प्रत्येक बाएँ पथ में किनारों की संख्या की गणना करके। बायाँ पथ या तो दाएँ बच्चे या जड़ से शुरू होता है और इसमें बाएँ बच्चे के पथ के माध्यम से पहुँचने योग्य सभी नोड्स शामिल होते हैं। दाईं ओर के चित्र में बाइनरी ट्री के बाएँ पथ को नीले रंग में परिक्रमा करते हुए दिखाया गया है।

बाएं बच्चे की समस्या में प्रत्येक किनारे को उसकी मूल समस्या के किनारों से चुना जाता है (#Borůvka चरण|Borůvka चरणों में अनुबंधित किनारों को छोड़कर) प्रायिकता 1/2 के साथ। यदि मूल समस्या में x किनारे हैं तो बाएं बच्चे की समस्या में किनारों का अपेक्षित मान अधिकतम x/2 है। यदि x को  यादृच्छिक चर $$E[Y] \leq E[X]/2$$. इस प्रकार यदि किसी समस्या में बाएं पथ के शीर्ष पर किनारों की अपेक्षित संख्या k है तो बाएं पथ में प्रत्येक उपसमस्या में किनारों की अपेक्षित संख्या का योग अधिकतम होता है $$\sum_{d=0}^{\infty} \frac{k}{2^d}=2k$$ (ज्यामितीय श्रृंखला देखें)। जड़ में m किनारे हैं इसलिए किनारों का अपेक्षित मान 2m के बराबर है और प्रत्येक दाएँ उपसमस्या में किनारों की अपेक्षित संख्या दोगुनी है।

प्रत्येक दाएँ उपसमस्या में किनारों की अपेक्षित संख्या मूल समस्या में #F-भारी और F-प्रकाश किनारों|F-प्रकाश किनारों की संख्या के बराबर है जहाँ F बाएँ उपसमस्या का न्यूनतम फैला हुआ वृक्ष है। एफ-लाइट किनारों की संख्या #रैंडम सैंपलिंग लेम्मा द्वारा उप-समस्या में शीर्षों की संख्या से दोगुनी से कम या उसके बराबर है। गहराई d पर  उपसमस्या में शीर्षों की संख्या n/4 हैd तो सभी सही उपसमस्याओं में शीर्षों की कुल संख्या दी गई है $$\sum_{d=1}^{\infty}\frac{2^{d-1}n}{4^d}=n/2$$. इस प्रकार, मूल समस्या और सभी उपसमस्याओं में किनारों की अपेक्षित संख्या अधिकतम 2m+n है। चूंकि बिना किसी पृथक शीर्ष वाले ग्राफ़ के लिए n अधिकतम 2m है, इसलिए एल्गोरिथम अपेक्षित समय O(m) में चलता है।

सबसे खराब स्थिति का विश्लेषण
सबसे खराब स्थिति का रनटाइम बोरोव्का के एल्गोरिदम के रनटाइम के बराबर है। ऐसा तब होता है जब प्रत्येक आह्वान पर सभी किनारों को बाएँ या दाएँ उपसमस्या में जोड़ा जाता है। इस मामले में एल्गोरिथ्म Borůvka के एल्गोरिदम के समान है जो O(min{n) में चलता है2, mlogn}) n शीर्षों और m किनारों वाले ग्राफ़ पर।

अग्रिम पठन

 * Minimum Spanning Tree Verification in Linear Time