Splay ट्री संभावित फ़ंक्शन: आकार के लॉग क्यों योग करते हैं?


16

मैं डेटा स्ट्रक्चर्स पर एक कोर्स पढ़ा रहा हूं और अगले हफ्ते की शुरुआत में स्प्ले ट्री को कवर किया जाएगा। मैंने कई बार आवारा पेड़ों पर पेपर पढ़ा है और डेटा संरचना के पीछे विश्लेषण और अंतर्ज्ञान से परिचित हूं। हालाँकि, मैं संभावित फ़ंक्शन के लिए एक ठोस अंतर्ज्ञान नहीं पा सकता हूं जो कि स्लेटोर और टारजन अपने विश्लेषण में उपयोग करते हैं।

विश्लेषण एक मनमाना वजन पेड़ में प्रत्येक तत्व बताए द्वारा काम करता है , तो स्थापित करने आकार एक नोड के सबट्री में निहित में एक नोड के वजन की राशि होने के लिए । वे तब नोड के रैंक को प्राप्त करने के लिए इस मान का लॉग लेते हैं , इसलिए । अंत में, पेड़ के संभावित कार्य को सभी नोड्स के रैंक के योग के रूप में परिभाषित किया गया है।wमैंरों(एक्स)एक्सआर(एक्स)आर(एक्स)=लॉगरों(एक्स)

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

क्या स्प्ले ट्री का संभावित कार्य पेड़ की कुछ प्राकृतिक संपत्ति के अनुरूप है? क्या "यह काम करता है" के अलावा कोई विशेष कारण है, कि वे इस क्षमता को चुनेंगे? (मैं विशेष रूप से उत्सुक हूं क्योंकि पाठ्यक्रम के इस सेट में उल्लेख किया गया है कि "विश्लेषण काला जादू है। [एन] ओ विचार कैसे खोजा गया"

धन्यवाद!


मैंने सुना है यह "यह काला जादू है" स्पष्टीकरण पहले भी। क्या आपने स्लेटोर और टारजन को ईमेल करने की कोशिश की?
jbapple

@jbapple मैंने उन्हें अभी तक ईमेल नहीं किया है, क्योंकि मैं उम्मीद कर रहा था कि "बड़े स्तर पर समुदाय" मदद करने में सक्षम होंगे। मुझे यह भी लगा कि 30 साल पहले उन्होंने जो काम किया था, उसके बारे में किसी को जवाब देना जरूरी नहीं कि एक प्रतिक्रिया हो। :-)
templatetypedef

मैं इससे बहुत परिचित नहीं हूं, लेकिन मैं बस बहुत मोटे तौर पर कागज को देखता हूं, मुझे लगता है कि एकमात्र कारण यह है कि वे अलग-अलग कार्यों के लिए संभावित संचालन के बाद एक छोटे से बदलाव करना चाहते हैं, जैसे कि अगर हम with प्रतिस्थापित करते हैं या साथ लगता है अभी भी सब कुछ ठीक काम करता है (मैंने इसे साबित नहीं किया लेकिन लगता है कि बस एक सरल गणित की आवश्यकता है)। लेकिन अगर हम इसे रूप में छोड़ देते हैं , तो यह सही है, जबकि विश्लेषण को परिशोधित करते हैं, लेकिन यह एक अच्छा ऊपरी (कुछ ऐसा नहीं है )। यह पेड़ की किसी भी संपत्ति से संबंधित नहीं है। लॉगलॉगलॉगएलजी*रों(+n)2
सईद

मैंने हमेशा x की रैंक को "आदर्श बाइनरी सर्च ट्री की गहराई में रखा है, जिसमें x के वंशज हैं", लेकिन यह उपयोगी अंतर्ज्ञान की तुलना में अधिक महामारी है।
जेफ

जवाबों:


13

सम-लॉग-लॉग क्षमता के साथ कैसे आएं

चलो BST एल्गोरिथ्म पर विचार है कि के लिए तत्व प्रत्येक उपयोग के लिए एक्स , यह खोज पथ में केवल तत्वों rearranges पी के एक्स के बाद पेड़ कहा जाता है से पहले-पथ कहा जाता है, कुछ पेड़ में। किसी भी तत्व के लिए एक , चलो रों ( एक ) और एस ' ( एक ) में निहित सबट्री के आकार होना एक पहले और क्रमशः पुनर्व्यवस्था के बाद। इसलिए s ( a ) और s ( a ) iff a f P भिन्न हो सकते हैं ।एक्सपीएक्सरों()रों'()रों()रों'()पी

इसके अलावा, केवल किसी भी समय खोज पथ में लगातार कई तत्वों को पुनर्व्यवस्थित करता है। आइए इस प्रकार के एल्गोरिथ्म को "स्थानीय" एल्गोरिथम कहते हैं। उदाहरण के लिए, स्प्ले ट्री स्थानीय है। यह zig, zigzig और zigzag द्वारा एक समय में केवल 3 तत्वों पर पुनर्व्यवस्थित करता है।

अब, किसी भी स्थानीय एल्गोरिथ्म जो कि स्पाय ट्री की तरह आफ्टर-ट्री में "कई" पत्तियां बनाता है, में निम्नलिखित अच्छी संपत्ति होती है।

हम एक मैपिंग बना सकते हैं : P P ऐसा:पीपी

  1. वहाँ रैखिक कई हैं , जहां रों ' ( ( एक ) ) रों ( एक ) / 2पीरों'(())रों()/2
  2. वहाँ लगातार कई हैं , जहां रों ' ( ( एक ) ) बड़े लेकिन तुच्छता से अधिक से अधिक हो सकता है nपीरों'(())n
  3. अन्य तत्वों , एस ' ( ( एक ) ) रों ( एक )पीरों'(())रों()

हम इसे खोज पथ के परिवर्तन को खोलकर देख सकते हैं। मानचित्रण वास्तव में काफी स्वाभाविक है। यह पेपर, ए ग्लोबल जियोमेट्रिक व्यू ऑफ सेपलिंग , विवरण को ठीक से दिखाता है कि उपरोक्त अवलोकन कैसे देखा जाए।

इस तथ्य को जानने के बाद, योग के लॉग्स क्षमता का चयन करना बहुत स्वाभाविक है। क्योंकि हम पूरी पुनर्व्यवस्था के लिए भुगतान करने के लिए टाइप -1 तत्वों के संभावित परिवर्तन का उपयोग कर सकते हैं। इसके अलावा, अन्य प्रकार के तत्वों के लिए, हमें अधिकांश लॉगरिदमिक द्वारा संभावित परिवर्तन के लिए भुगतान करना होगा। इसलिए, हम लघुगणक परिशोधन लागत को प्राप्त कर सकते हैं।

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

पुनश्च पेपर सम-लॉग्स क्षमता की कुछ सीमा दिखाता है। यही है, किसी को केवल स्थानीय एल्गोरिथ्म के योग-लॉग्स क्षमता के माध्यम से पहुंच लेम्मा की संतुष्टि साबित हो सकती है।

योग की लॉग्स क्षमता की व्याख्या

जोर्जकोपाउलोस और मैक्लर्किन के पेपर में बीएसटी की क्षमता को परिभाषित करने का एक और तरीका है जो अनिवार्य रूप से स्लेटोर टार्जन के पेपर में सम-ऑफ-लॉग्स क्षमता के समान है। लेकिन यह मेरे लिए अच्छा अंतर्ज्ञान देता है।

अब मैं कागज के अंकन पर स्विच करता हूं। हम प्रत्येक नोड यू के लिए एक वजन असाइन करते हैं । बता दें कि डब्ल्यू ( यू ) यू के सबट्री के वजन का योग है । (यह सिर्फ यू के सबट्री के आकार का है जब हर नोड का वजन एक है।)w(यू)यूडब्ल्यू(यू)यूयू

अब, हम नोड्स पर रैंक को परिभाषित करने के बजाय, रैंक को किनारों पर परिभाषित करते हैं, जिसे उन्होंने प्रगति कारक कहा है

पी()=लॉग(डब्ल्यू(यू)/डब्ल्यू(v))

और पेड़ की क्षमता हैएस

Φ(एस)=Σएसपी()

इस क्षमता की एक प्राकृतिक व्याख्या है: यदि एक खोज के दौरान हम एक किनारे पार करते हैं , तो हम यू के वंशजों से खोज स्थान को वी के वंशजों तक कम कर देते हैं, डब्ल्यू ( यू ) / डब्ल्यू ( वी ) का एक घर्षण कमी । हमारा प्रगति कारक इस 'प्रगति' का एक लघुगणक उपाय है, इसलिए इसका नाम है। [धारा २.४ से](यू,v)यूvडब्ल्यू(यू)/डब्ल्यू(v)

निरीक्षण करें कि यह लगभग स्लेटोर टार्जन की क्षमता के बराबर है, और यह रास्तों पर योगात्मक है।

संपादित करें: यह पता चला है कि इस वैकल्पिक परिभाषा और इसके पीछे के अंतर्ज्ञान का वर्णन कर्ट मेहालॉर्न द्वारा बहुत पहले किया गया था। उनकी पुस्तक "डेटा संरचनाएं और एल्गोरिदम" वॉल्यूम I, अनुभाग III देखें। ६.१.२ सिपेल ट्री, पृष्ठ २६३ - २rees४।

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