रैंक के बिना, पथ-संपीड़न के साथ संघ-जटिलता की जटिलता


10

विकिपीडिया कहता है कि पथ संपीड़न के बिना रैंक द्वारा संघ एक परिमाणित समय जटिलता देता है , और रैंक और पथ संपीड़न द्वारा संघ दोनों एक परिमाणित समय जटिलता देता है (जहाँ है एकरमैन फंक्शन का विलोम)। हालांकि, इसमें यूनियन रैंक के बिना पथ संपीड़न के चल रहे समय का उल्लेख नहीं है, जो कि मैं आमतौर पर खुद को लागू करता हूं।O(logn)O(α(n))α

पथ-संपीड़न अनुकूलन के साथ संघ-परिशोधित समय जटिलता क्या है, लेकिन रैंक अनुकूलन द्वारा संघ के बिना?


5
ध्यान दें कि एकरमैन फ़ंक्शन का विलोम है, न कि । यहाँ "प्रतिलोम" का अर्थ एक फ़ंक्शन के रूप में होता है, न कि पारस्परिक: अर्थात, यदि , , । α(n)1/A(n,n))f(n)=A(n,n)α(n)=f1(n)1/f(n)
डीडब्ल्यू

मैं समझता हूं कि यह एक अपेक्षाकृत पुराना प्रश्न है, लेकिन मेरा उत्तर और एक प्रासंगिक पेपर देखें: epubs.siam.org/doi/abs/10.1137/S0097539703439088 । सीमा पर नकल करते समय मुझे एक या दो विवरण याद आ गए होंगे। उस स्थिति में, कृपया संपादित करें :-)
BearAqua

जवाबों:


4

2005 में [1] साबित किया गया कि सीडल और शारिर ने ऑपरेशंस पर मोटे तौर पर लिंकिंग के साथ पथ संपीड़न का उपयोग करके लगभग जटिलता की है ।mO((m+n)log(n))

देखें [१], धारा ३ (मनमाना लिंक): चलो संघ के रनटाइम को निरूपित करते हैं- संचालन और तत्वों के साथ। उन्होंने निम्नलिखित सिद्ध किया:f(m,n)mn

दावा 3.1। किसी भी पूर्णांक हमारे पास ।k>1f(m,n)(m+(k1)n)logk(n)

[1] के अनुसार, को सेट करने से ।k=m/n+1

f(m,n)(2m+n)logm/n+1n

[२], धारा ३: में टार्जन और वैन लीउवेन द्वारा एक अधिक जटिल विधि का उपयोग करके एक समान बाउंड दिया गया था:

लेम्मा 7 का [2]। मान लीजिए । किसी भी प्रकार के संघनन और भोले लिंकिंग के उपयोग से लागू किए गए सेट ऑपरेशंस के किसी भी अनुक्रम में, पाथ पाथ पर नोड्स की कुल संख्या सबसे अधिक है हॉल्टिंग और भोले लिंकिंग के साथ, पाथ पाथ पर नोड्स की कुल संख्या सबसे अधिक ।mn(4m+n)log1+m/nn(8m+2n)log1+m/n(n)

[२] का लेम्मा ९। मान लीजिए। संपीड़न और अनुभवहीन लिंकिंग का उपयोग करके लागू किए गए किसी भी अनुक्रम में, रास्तों पर नोड्स की कुल संख्या सबसे अधिक ।m<nn+2mlogn+m

[१]: आर। सेडेल और एम। शायर। पथ संपीड़न का टॉप-डाउन विश्लेषण। सियाम जे कम्प्यूटिंग, 2005, वॉल्यूम। 34, नंबर 3, पीपी। 515-525।

[२]: आर। तरजन और जे। वैन लीउवेन। सबसे खराब स्थिति सेट यूनियन एल्गोरिदम का विश्लेषण। जे। एसीएम, वॉल्यूम। 31, नंबर 2, अप्रैल 1984, पीपी 245-281।


2

मुझे नहीं पता कि एमॉर्टाइज्ड रनिंग टाइम क्या है, लेकिन मैं एक संभावित कारण का हवाला दे सकता हूं कि कुछ स्थितियों में आप केवल पथ संपीड़न के बजाय दोनों का उपयोग करना चाहते हैं: प्रति ऑपरेशन के लिए सबसे खराब स्थिति है आप सिर्फ पथ संपीड़न का उपयोग करते हैं, जो कि रैंक और पथ संपीड़न दोनों संघ का उपयोग करने की तुलना में बहुत बड़ा है।Θ(n)

दुर्भावनापूर्ण रूप से गहराई पेड़ की उपज के लिए चुने गए संघ संचालन के एक क्रम पर विचार करें (यह सिर्फ नोड्स का एक अनुक्रमिक मार्ग है, जहां प्रत्येक नोड पिछले नोड का बच्चा है)। फिर सबसे गहरे नोड पर सिंगल फाइंड ऑपरेशन करने में समय लगता है। इस प्रकार, प्रति ऑपरेशन सबसे खराब स्थिति वाला समय ।nn1Θ(n)Θ(n)

इसके विपरीत, यूनियन-दर-रैंक ऑप्टिमाइज़ेशन के साथ, प्रति ऑपरेशन सबसे खराब स्थिति वाला समय : कोई भी ऑपरेशन कभी भी से अधिक समय नहीं ले सकता है । कई अनुप्रयोगों के लिए, यह कोई फर्क नहीं पड़ेगा: केवल सभी संचालन का कुल समय चल रहा है (यानी, परिचालित चल रहा समय) कोई एक ऑपरेशन के लिए सबसे खराब समय नहीं होगा। हालांकि, कुछ मामलों में प्रति ऑपरेशन सबसे खराब स्थिति समय मायने रख सकती है: उदाहरण के लिए, प्रति ऑपरेशन के लिए सबसे खराब समय को कम करनाO(logn)O(logn)O(logn) एक इंटरैक्टिव अनुप्रयोग में उपयोगी हो सकता है जहाँ आप यह सुनिश्चित करना चाहते हैं कि कोई भी एकल ऑपरेशन लंबे विलंब का कारण नहीं बन सकता है (उदाहरण के लिए, आप एक गारंटी चाहते हैं कि कोई भी एकल ऑपरेशन लंबे समय तक फ्रीज़ करने का कारण नहीं बन सकता) या वास्तविक समय में आवेदन जहां आप यह सुनिश्चित करना चाहते हैं कि आप हमेशा वास्तविक समय की गारंटी को पूरा करेंगे।

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