उकोकोन के एल्गोरिथ्म का रनटाइम वर्णमाला के आकार पर कैसे निर्भर करता है?


19

मैं उककोन के एल्गोरिथ्म के स्पर्शोन्मुख चल रहे समय के सवाल से चिंतित हूं , शायद रैखिक (?) समय में प्रत्यय पेड़ों के निर्माण के लिए सबसे लोकप्रिय एल्गोरिथ्म ।

यहाँ डैन गुसफ़ील्ड (खंड 6.5.1) द्वारा "स्ट्रिंग्स, पेड़ों और दृश्यों पर एल्गोरिदम" पुस्तक का उद्धरण दिया गया है:

"... Aho-Corasick, वेनर, Ukkonen और McCreight एल्गोरिदम सब या तो आवश्यकता स्थान, या हे ( मीटर ) समयबद्ध की न्यूनतम के साथ प्रतिस्थापित किया जाना चाहिए हे ( मीटर लॉग मीटर ) और हे ( मीटर लॉग | Σ | ) "।Θ(|Σ|)हे()हे(लॉग)हे(लॉग|Σ|)

[ स्ट्रिंग की लंबाई है और Σ वर्णमाला के आकार का है]Σ

मुझे समझ नहीं आता कि यह सच क्यों है।

  • अंतरिक्ष: ठीक है, मामले में हम शाखाओं आकार की सरणियों का उपयोग कर नोड्स के बाहर प्रतिनिधित्व करते हैं , तो वास्तव में, हम ऊपर के साथ समाप्त Θ ( मीटर | Σ | ) स्थान उपयोग। हालाँकि, जहाँ तक मैं देख सकता हूँ, यह भी हैश तालिकाओं का उपयोग करके स्टोर करना संभव है (जैसे, पायथन में शब्दकोशों)। तब हमारे पास सभी हैश टेबल में केवल ers ( m ) पॉइंटर्स संग्रहीत होते हैं (क्योंकि पेड़ में Θ ( m ) किनारे होते हैं), जबकि अभी भी O ( 1 ) में बच्चों के नोड्स तक पहुंचने में सक्षम हैंΘ(|Σ|)Θ(|Σ|)Θ()Θ()हे(1) समय, सरणियों का उपयोग करते समय उपवास।
  • समय : जैसा कि ऊपर बताया गया है, हैश टेबल का उपयोग करने से हमें समय में किसी भी नोड की आउटगोइंग शाखाओं तक पहुंचने की अनुमति मिलती है । चूंकि उकोकोन के एल्गोरिथ्म को ( एम ) संचालन की आवश्यकता होती है ( बच्चों के नोड्स तक पहुंचने सहित), समग्र चलने का समय तब भी ( एम ) होगाहे(1)हे()हे()

मैं किसी भी संकेत के लिए आपका बहुत आभारी रहूंगा कि मैं अपने निष्कर्षों में गलत क्यों हूं और गुस्कफील्ड ने वर्णमाला पर उककोन के एल्गोरिथ्म की निर्भरता के बारे में सही क्यों है।


3
मुझे नहीं लगता कि इस बात का कोई प्रमाण है कि वर्णमाला के आकार का स्वतंत्र समय / स्थान बाध्य होना असंभव है। मेरा मानना ​​है कि गूसफील्ड ने बयान दिया क्योंकि समय से पूरी तरह से छुटकारा पाने के लिए कोई ज्ञात विधि नहीं है। किसी एक को स्थापित करने के लिए, आपको अपने हैश कार्यों को अधिक विस्तार से बताना होगा। हैश लुकअप के लिए बाध्य एक सच्चे सबसे खराब स्थिति O (1) समय के लिए एक सही हैश की आवश्यकता होती है। यह मेरे लिए स्पष्ट नहीं है कि यह एल्गोरिथम के दौरान कैसे किया जाए (क्योंकि हैश प्रविष्टियाँ उस बिंदु पर स्थिर नहीं हैं)।
जोगोजपन

(cont'd) पेड़ पूरा होने के बाद आप इसे कर सकते हैं, लेकिन फिर एल्गोरिथ्म के लिए बाध्य समय अभी भी अपरिवर्तित रहेगा। (हालांकि सवाल के लिए +1)।
जोगोजपन

जवाबों:


2

हे(1)हे(1)Ω(Σ)Θ(Σ)

क्या अधिक है, अभ्यास में इन सभी हैश टेबल को स्थापित करने के लिए समय सरणियों को स्थापित करने के समय से बहुत अधिक होगा।

आप एक वैश्विक हैश तालिका का उपयोग करने के साथ बेहतर किराया कर सकते हैं जो (नोड, चरित्र) -pairs के साथ अनुक्रमित है, लेकिन कम से कम "केवल परिशोधित" तर्क रहेगा।

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