Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

आर * डेटा संरचना में पेड़

मूल अवधारणा

डेटा प्रोसेसिंग के मामले में, R*-trees को स्थानिक जानकारी को अनुक्रमित करने के लिए लागू किए गए R-trees के एक प्रकार के रूप में परिभाषित किया गया है।

R*-ट्री की निर्माण लागत मानक R-पेड़ों की तुलना में थोड़ी अधिक होती है, क्योंकि डेटा को फिर से डालने की आवश्यकता हो सकती है; लेकिन परिणामी पेड़ में आम तौर पर बेहतर क्वेरी प्रदर्शन होगा। मानक आर-पेड़ के समान, यह बिंदु और स्थानिक डेटा दोनों को स्टोर कर सकता है। 1990 में नॉरबर्ट बेकमैन, हैंस-पीटर क्रिगल, राल्फ श्नाइडर और बर्नहार्ड सीगर द्वारा R*-ट्री की अवधारणा प्रस्तावित की गई थी।

R*-पेड़ों और R-पेड़ों के बीच अंतर

R*-Tree बार-बार डालने से बनता है। इस पेड़ में बहुत कम (यानी लगभग नहीं) ओवरलैप है, जिसके परिणामस्वरूप अच्छा क्वेरी प्रदर्शन होता है। आर-पेड़ों के प्रदर्शन के लिए कवरेज और ओवरलैप दोनों को कम करना बहुत महत्वपूर्ण है। डेटा सम्मिलन या क्वेरी पर ओवरलैप का अर्थ यह है कि पेड़ की एक से अधिक शाखाओं का विस्तार करने की आवश्यकता होती है (जिस तरह से डेटा को उन क्षेत्रों में विभाजित किया जा रहा है जो ओवरलैप हो सकते हैं)। एक न्यूनतम कवरेज प्रूनिंग प्रदर्शन को बढ़ाता है, विशेष रूप से नकारात्मक श्रेणी प्रश्नों के लिए पूरे पृष्ठों को बार-बार खोज से बाहर करने की अनुमति देता है। R*-tree दोनों को कम करने का प्रयास करता है, एक संशोधित नोड स्प्लिट एल्गोरिथम के संग्रह को लागू करता है और नोड ओवरफ्लो पर जबरन पुनर्निवेश की अवधारणा को लागू करता है। यह अवधारणा इस अवलोकन पर आधारित है कि आर-पेड़ संरचनाएं उस क्रम के लिए अतिसंवेदनशील होती हैं जिसमें उनकी प्रविष्टियां डाली जाती हैं, इसलिए एक सम्मिलन-निर्मित (बल्क-लोडेड के बजाय) संरचना उप-इष्टतम होने की संभावना है। प्रविष्टियों को हटाने और पुन:सम्मिलित करने से उन्हें पेड़ में ऐसी जगह "ढूंढने" की अनुमति मिलती है जो उनके वास्तविक स्थान से अधिक उपयुक्त हो सकती है।

एल्गोरिदम और जटिलता

  • R*-tree क्वेरी और डिलीट ऑपरेशंस के लिए नियमित R-ट्री के समान एल्गोरिदम लागू करता है।
  • सम्मिलित करते समय, R*-tree एक संयुक्त रणनीति लागू करता है। लीफ नोड्स के लिए, ओवरलैप को न्यूनतम किया जाता है, जबकि आंतरिक नोड्स के लिए, इज़ाफ़ा और क्षेत्र को न्यूनतम किया जाता है।
  • विभाजन के समय, R*-ट्री एक टोपोलॉजिकल स्प्लिट लागू करता है जो परिधि के आधार पर विभाजित अक्ष का चयन करता है, फिर ओवरलैप को कम करता है।
  • बढ़ी हुई विभाजन रणनीति के अलावा, आर*-ट्री बी-ट्री को संतुलित करने की अवधारणा से प्रेरित होकर पेड़ में वस्तुओं और उप-वृक्षों को पुन:सम्मिलित करके विभाजन को छोड़ने की भी कोशिश करता है।

सबसे खराब स्थिति की क्वेरी और हटाने की जटिलता इस प्रकार आर-ट्री के समान है। R*-tree में सम्मिलन रणनीति O(M log M) के साथ R-पेड़ की रैखिक विभाजन रणनीति (O(M)) की तुलना में अधिक जटिल है, लेकिन द्विघात विभाजन रणनीति (O(M2 )) M वस्तुओं के पृष्ठ आकार के लिए और कुल जटिलता पर बहुत कम प्रभाव डालता है। कुल सम्मिलन जटिलता अभी भी आर-पेड़ के बराबर है:पुनर्निवेश पेड़ की अधिकतम एक शाखा को प्रभावित करता है और इस प्रकार ओ (लॉग एन) पुनर्स्थापन, नियमित आर-पेड़ पर एक विभाजन करने के बराबर होता है। तो कुल मिलाकर, R*-tree की जटिलता एक नियमित R-ट्री के समान ही है।


  1. डेटा संरचना में बसपा पेड़

    कंप्यूटर विज्ञान में, बाइनरी स्पेस पार्टीशनिंग (बीएसपी) के रूप में जाना जाने वाला एक तरीका हाइपरप्लेन को विभाजन के रूप में लागू करके एक स्थान को दो उत्तल सेटों में पुनरावर्ती रूप से उप-विभाजित करने के लिए लागू किया जाता है। उप-विभाजन की यह प्रक्रिया एक पेड़ डेटा संरचना के रूप में क्षेत्र के भीतर वस्

  1. डेटा संरचना में पेड़ों की श्रेणी

    एक श्रेणी ट्री को बिंदुओं की सूची रखने के लिए एक आदेशित ट्री डेटा संरचना के रूप में परिभाषित किया गया है। यह किसी दी गई सीमा के भीतर सभी बिंदुओं को कुशलता से पुनर्प्राप्त करने की अनुमति देता है, और आमतौर पर दो या उच्च आयामों में लागू किया जाता है। O(logd . के तेज़ क्वेरी समय को छोड़कर यह kd-tree के

  1. डेटा संरचना में वर्चुअल ट्री में स्प्ले

    आभासी पेड़ में, कुछ किनारों को ठोस माना जाता है और कुछ को धराशायी माना जाता है। सामान्य खेल केवल ठोस वृक्षों में ही किया जाता है। वर्चुअल ट्री में नोड y पर splay करने के लिए, निम्न विधि लागू की जाती है। एल्गोरिथ्म पेड़ को तीन बार देखता है, प्रत्येक पास में एक बार, और उसे बदल देता है। पहले पास में,