c - उपय - स्थानिक सूचना प्रौद्योगिकी क्या है




गैर समान रूप से आकार वाले हाइपरशेयरों के बीच निकटतम पड़ोसी खोज के लिए फास्ट स्थानिक डेटा संरचना (2)

एक कश्मीर आयामी निरंतर (ईक्लिडियन) स्थान को देखते हुए, जो अनपेक्षित रूप से बढ़ते / बढ़ते / सिकुड़ते हाइपरपेयर्स से भरा हुआ है, मुझे बार-बार हाइपरस्पेर खोजने की आवश्यकता है जिनकी सतह किसी दिए गए समन्वय के निकट है। यदि कुछ हाइपरस्पेरस मेरे समन्वय के समान दूरी के हैं, तो सबसे बड़ा हाइपरस्फेयर जीत जाता है। (हाइपरशेस की कुल संख्या को समय के साथ ही रहने की गारंटी है।)

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

मेरी बुनियादी आवश्यकता एक कश्मीर आयामी स्थानिक डाटा संरचना है जो मात्रा को खाते में लेती है और या तो किसी भी असंतुलन के साथ (ऑफ़लाइन) या गतिशील बनाने के लिए सुपर फास्ट है

ऊपर मेरी आवश्यकताओं को देखते हुए, आप किस डेटा संरचना के साथ जाएंगे? कोई अन्य लोगों का मैंने भी उल्लेख नहीं किया था?

1 संपादित करें: उल्लेख करने के लिए भूल गए: अतिपरिवर्तन की अनुमति है (वास्तव में अत्यधिक उम्मीद) ओवरलैप करने के लिए!

2 संपादित करें: "विशेष" की तुलना में "दूरी" (और "नकारात्मक दूरी") के बजाय मेरी वर्णित मीट्रिक एक बिंदु की शक्ति से बेहतर मेल खाता है


मैं क्वैडट्री / ओक्टीरी / सामान्य से 2 ^ के-पेस्ट की अपेक्षा करता हूं कि आपके कश्मीर की आयाम को चाल करता है; ये पुनरावृत्त विभाजन स्थान है, और संभवतः आप जब के-सबक्यूब (या कश्मीर-आयताकार ईंट यदि विभाजन भी नहीं हैं) में हाइपरस्पेयर शामिल नहीं हो सकता है, या संभवतः आप एक या अधिक हाइपरस्पेरस को रोक सकते हैं जैसे विभाजन किसी भी अलग नहीं होता है, या वैकल्पिक रूप से सिर्फ एक ही हाइपरस्फेयर (शायद आसान) का केंद्र होता है

इस तरह के पेड़ों में संस्थाओं को सम्मिलित करना और हटा देना तेजी से होता है, इसलिए एक हाइपरस्फेयर आकार बदलता है, जो कि आपरेशनों के एक हटाए / सम्मिलित जोड़ी का कारण बनता है। (मुझे संदेह है कि आप इसे अनुकूलित कर सकते हैं यदि आपके क्षेत्र का आकार स्थानीय अतिरिक्त पुनरावर्ती विभाजन से बदल जाता है, यदि क्षेत्र छोटा हो जाता है, या यदि यह बढ़ता है तो स्थानीय के-ब्लॉक मर्जिंग)।

मैंने उनके साथ काम नहीं किया है, लेकिन आप बाइनरी स्पेस विभाजन को भी मान सकते हैं। ये आपको आपके स्थान को विभाजित करने के लिए k-trees के बजाय द्विआधारी पेड़ का उपयोग करते हैं। मैं समझता हूं कि KDTrees इस का एक विशेष मामला है।

लेकिन किसी भी मामले में मैंने सोचा कि 2 ^ के वृक्षों और / या बसपा / केडीटीरीज के लिए सम्मिलन / विलोपन एल्गोरिदम अच्छी तरह से समझा और तेज़ थे। तो हाइपरस्फेयर का आकार हटाए जाने / प्रविष्टि संचालन के कारण होता है लेकिन वे तेज़ हैं इसलिए मैं केडी-पेड़ों पर आपत्ति नहीं समझता।

मुझे लगता है कि इन सभी का प्रदर्शन समान रूप से समान है।


मैं SQLite के लिए आर * पेड़ विस्तार का उपयोग करेगा एक तालिका में आमतौर पर 1 या 2 आयामी डेटा होंगे एसक्यूएल प्रश्नों उच्च आयामों में खोज करने के लिए कई तालिकाओं को जोड़ सकते हैं।

नकारात्मक दूरी के साथ तैयार करना थोड़ा अजीब है दूरी ज्यामिति में सकारात्मक है, इसलिए उपयोग करने के लिए उपयोगी सिद्धांत नहीं हो सकता है।

एक अलग सूत्रीकरण जो केवल सकारात्मक दूरी का उपयोग करता है, वह सहायक हो सकता है। हाइपरबॉलिक रिक्त स्थान के बारे में पढ़ें इससे दूरी का वर्णन करने के अन्य तरीकों के लिए विचार प्रदान करने में मदद मिल सकती है