The original description of the k-d tree recognized that rebalancing techniques, such as are used to build an AVL tree or a red-black tree, are not applicable to a k-d tree. Hence, in order to build a balanced k-d tree, it is necessary to find the median of the data for each recursive subdivision of those data. The sort or selection that is used to find the median for each subdivision strongly influences the computational complexity of building a k-d tree. This paper discusses an alternative algorithm that builds a balanced k-d tree by presorting the data in each of k dimensions prior to building the tree. It then preserves the order of these k sorts during tree construction and thereby avoids the requirement for any further sorting. Moreover, this algorithm is amenable to parallel execution via multiple threads. Compared to an algorithm that finds the median for each recursive subdivision, this presorting algorithm has equivalent performance for four dimensions and better performance for three or fewer dimensions.
k-d tree के मूल विवरण में यह स्वीकार किया गया कि AVL tree या red-black tree के निर्माण के लिए उपयोग की जाने वाली पुनः संतुलन तकनीकें k-d tree पर लागू नहीं होती हैं। इसलिए, संतुलित k-d tree बनाने के लिए, डेटा के प्रत्येक पुनरावर्ती विभाजन के लिए माध्यिका खोजना आवश्यक है। प्रत्येक विभाजन के लिए माध्यिका खोजने के लिए उपयोग की जाने वाली सॉर्टिंग या चयन तकनीक k-d tree के निर्माण की कम्प्यूटेशनल जटिलता को दृढ़ता से प्रभावित करती है। यह पेपर एक वैकल्पिक एल्गोरिदम पर चर्चा करता है जो tree के निर्माण से पहले k आयामों में से प्रत्येक पर डेटा को पूर्व-सॉर्ट करके संतुलित k-d tree बनाता है। फिर tree निर्माण प्रक्रिया के दौरान इन k सॉर्ट किए गए क्रमों को बनाए रखा जाता है, जिससे आगे की सॉर्टिंग की आवश्यकता समाप्त हो जाती है। इसके अलावा, यह एल्गोरिदम बहु-थ्रेडेड समानांतर निष्पादन के माध्यम से उपयुक्त है। प्रत्येक पुनरावर्ती विभाजन के लिए माध्यिका खोजने वाले एल्गोरिदम की तुलना में, यह पूर्व-सॉर्टिंग एल्गोरिदम चार आयामों में समान प्रदर्शन रखता है और तीन या उससे कम आयामों में बेहतर प्रदर्शन करता है।
k-d tree का महत्व: k-d tree Bentley द्वारा 1975 में प्रस्तुत किया गया एक महत्वपूर्ण डेटा संरचना है, जिसका उपयोग k-आयामी डेटा संग्रहीत करने के लिए किया जाता है, जो बहु-आयामी खोज, निकटतम पड़ोसी खोज, श्रेणी क्वेरी आदि में व्यापक रूप से लागू होता है।
संतुलन समस्या की चुनौती: मानक बाइनरी tree के विपरीत, k-d tree विभिन्न स्तरों पर विभिन्न key मानों का उपयोग करता है, जिससे पारंपरिक पुनः संतुलन तकनीकें (जैसे AVL tree या red-black tree के घूर्णन संचालन) k-d tree पर लागू नहीं होती हैं।
मौजूदा विधियों की सीमाएं:
पारंपरिक विधि को प्रत्येक पुनरावर्ती विभाजन पर माध्यिका खोजनी पड़ती है
Quicksort का उपयोग करके माध्यिका खोजना: सर्वश्रेष्ठ स्थिति O(n), सबसे खराब स्थिति O(n²)
Merge sort या Heap sort का उपयोग: O(n log n) की गारंटी, लेकिन कुल जटिलता O(n log² n) हो जाती है
Blum आदि का O(n) माध्यिका एल्गोरिदम सैद्धांतिक रूप से उत्कृष्ट है, लेकिन कार्यान्वयन जटिल है
O(kn log n) जटिलता का k-d tree निर्माण एल्गोरिदम प्रस्तावित किया: पूर्व-सॉर्टिंग के माध्यम से पुनरावर्ती प्रक्रिया में पुनरावर्ती सॉर्टिंग से बचा जाता है
सॉर्टिंग क्रम को बनाए रखने की विभाजन रणनीति डिज़ाइन की: Tree निर्माण प्रक्रिया में k पूर्व-सॉर्ट किए गए arrays की क्रमबद्धता को बनाए रखा जाता है
कुशल समानांतर करण योजना लागू की: एल्गोरिदम स्वाभाविक रूप से बहु-थ्रेडेड समानांतर निष्पादन के लिए उपयुक्त है
व्यापक प्रदर्शन विश्लेषण प्रदान किया: सैद्धांतिक जटिलता विश्लेषण और व्यावहारिक प्रदर्शन परीक्षण दोनों शामिल हैं
कई अनुकूलन तकनीकें विकसित की: छह अनुकूलन रणनीतियों सहित, जिनमें सुपरकी तुलना अनुकूलन, विलंबित सॉर्टिंग विभाजन आदि शामिल हैं
इनपुट: n k-आयामी डेटा बिंदुओं का समूह
आउटपुट: संतुलित k-d tree, जो कुशल बहु-आयामी खोज संचालन का समर्थन करता है
बाधाएं: Tree की संतुलितता बनाए रखना, डुप्लिकेट डेटा बिंदुओं से बचना
एल्गोरिदम प्रवाह:
1. वर्तमान आयाम के index array की माध्यिका तत्व को विभाजन बिंदु के रूप में चुनें
2. अन्य आयामों के index arrays को इस विभाजन बिंदु के अनुसार विभाजित करें
3. विभाजन प्रक्रिया प्रत्येक array के भीतर सॉर्टिंग क्रम को बनाए रखती है
4. बाएं और दाएं sub-arrays को पुनरावर्ती रूप से संभालें, विभिन्न आयामों का चक्रीय उपयोग करें
यह पेपर 21 महत्वपूर्ण संदर्भों का हवाला देता है, जिनमें शामिल हैं:
Bentley का k-d tree मूल पेपर 4
Blum आदि का रैखिक समय माध्यिका एल्गोरिदम 6
विभिन्न सॉर्टिंग एल्गोरिदम के शास्त्रीय साहित्य 8,12,20
समानांतर कंप्यूटिंग और प्रदर्शन मॉडलिंग का संबंधित कार्य 2,10
निकटतम पड़ोसी खोज और रिवर्स निकटतम पड़ोसी के अनुप्रयोग 7,13
समग्र मूल्यांकन: यह k-d tree निर्माण क्षेत्र में एक उच्च-गुणवत्ता वाला एल्गोरिदम पेपर है जो पूर्व-सॉर्टिंग विधि का नवाचार प्रस्तुत करता है। पेपर सैद्धांतिक विश्लेषण में कठोर है, प्रयोगात्मक डिज़ाइन पूर्ण है, और व्यावहारिक मूल्य अधिक है। हालांकि उच्च-आयामी स्थितियों में सीमाएं हैं, लेकिन कम-आयामी स्थानिक डेटा प्रसंस्करण के लिए प्रभावी समाधान प्रदान करता है, और संबंधित क्षेत्रों के लिए महत्वपूर्ण संदर्भ मूल्य रखता है।