संशोधित Borůvka के एल्गोरिथ्म के सख्त विश्लेषण


11

बोरिवका का एल्गोरिथ्म एक ग्राफ लिए न्यूनतम फैले पेड़ की गणना के लिए मानक एल्गोरिदम में से एक है साथ है ।G=(V,E)|V|=n,|E|=m

छद्म कोड है:

MST T = empty tree
Begin with each vertex as a component
While number of components > 1
    For each component c
       let e = minimum edge out of component c
       if e is not in T
           add e to T  //merging the two components connected by e

हम बाहरी लूप के प्रत्येक पुनरावृत्ति को एक दौर कहते हैं। प्रत्येक दौर में, आंतरिक लूप कम से कम आधे में घटकों की संख्या में कटौती करता है। इसलिए अधिकांश राउंड हैं। प्रत्येक दौर में, आंतरिक लूप प्रत्येक किनारे पर दो बार (प्रत्येक घटक से एक बार) दिखता है। इसलिए चलने का समय अधिकांश ।O(logn)O(mlogn)

अब मान लें कि प्रत्येक दौर के बाद, हम सभी किनारों को हटाते हैं जो केवल एक ही घटक के भीतर कोने को जोड़ता है और घटकों के बीच डुप्लिकेट किनारों को भी हटाता है, ताकि आंतरिक लूप केवल कुछ संख्याओं पर दिखता है m '<m जो कि न्यूनतम वजन के किनारों हैं जो पहले से डिस्कनेक्ट किए गए दो घटकों को कनेक्ट करें।

यह अनुकूलन रनिंग टाइम को कैसे प्रभावित करता है?

यदि हम किसी तरह जानते थे कि प्रत्येक दौर में, यह किनारों की संख्या को आधे में काट देगा, तो चल रहे समय में काफी सुधार होगा: ।T(m)=T(m/2)+O(m)=O(m)

हालांकि, जबकि अनुकूलन नाटकीय रूप से जांच किए गए किनारों की संख्या को कम कर देगा, (अंतिम दौर तक केवल 1 बढ़त, और अधिकांश # घटकों में सामान्य रूप से 2 का चयन करें), यह स्पष्ट नहीं है कि / हम इस तथ्य का उपयोग विश्लेषण को कसने के लिए कैसे कर सकते हैं रन-टाइम का।


सबसे खराब स्थिति में (एक श्रृंखला) आप प्रति चक्कर में एक किनारे को हटा देंगे, इसलिए आप सामान्य ग्राफ़ के लिए सीमा में सुधार के लिए उस तथ्य का उपयोग नहीं कर सकते। आप उदाहरण के लिए केवल पूर्ण रेखांकन पर विचार कर सकते हैं।

@Xodarap यदि एक सरल पथ है (क्या आप श्रृंखला से क्या मतलब है?), तो पहले दौर में आप कम से कम आधे किनारों का चयन करते हैं। इन किनारों को बाद के दौर से हटा दिया जाता है। G
जो

ध्यान दें कि आप इस एल्गोरिथ्म को बेहतर बनाने के लिए एक उच्च अनुकूलित यूनियन-खोज संरचनाओं का उपयोग कर सकते हैं ।
राफेल

जवाबों:


5

सामान्य रेखांकन के लिए परीक्षण मामलों को शिल्प करना संभव है जहां आपके बोरवाका के कदम प्रत्येक चरण में किनारों की संख्या को आधा नहीं करेंगे, भले ही यह कोने की संख्या को आधा कर दे। एक दिलचस्प बात यह है कि आपके द्वारा सुझाए गए अनुकूलन प्लानर ग्राफ़ के लिए काम करते हैं। ऐसा इसलिए है क्योंकि प्लानर ग्राफ के लिए i, e । और सामान्य तौर पर यह ग्राफ के छोटे बंद परिवारों के वर्ग के लिए तेजी की ओर जाता है।|E|3|V|6|E|=O(|V|)

संदर्भ:

  • मास्टर्स थीसिस, क्लाउड एंडरसन (पृष्ठ 100 पर बोरोवका के एल्गोरिदम के लिए सबसे खराब स्थिति का वर्णन किया गया है)। [संपर्क]

  • "मामूली बंद ग्राफ कक्षाओं पर एमएसटी के लिए दो रैखिक समय एल्गोरिदम"। आर्किवम गणित 40 (3): 315–320, 2004. [लिंक]

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.