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 أن تقنيات إعادة التوازن المستخدمة في بناء أشجار AVL أو الأشجار الحمراء-السوداء غير قابلة للتطبيق على أشجار k-d. لذلك، لبناء شجرة k-d متوازنة، يجب إيجاد الوسيط لكل تقسيم تكراري للبيانات. تؤثر عملية الفرز أو الاختيار المستخدمة للعثور على الوسيط لكل تقسيم بشكل كبير على التعقيد الحسابي لبناء شجرة k-d. تناقش هذه الورقة خوارزمية بديلة تبني شجرة k-d متوازنة من خلال فرز البيانات مسبقاً على كل من الأبعاد k قبل بناء الشجرة. ثم يتم الحفاظ على ترتيب الفرز k هذا أثناء عملية بناء الشجرة، مما يتجنب الحاجة إلى فرز إضافي. علاوة على ذلك، تتناسب الخوارزمية مع التنفيذ المتوازي متعدد الخيوط. بالمقارنة مع الخوارزميات التي تجد الوسيط لكل تقسيم تكراري، تتمتع خوارزمية الفرز المسبق هذه بأداء معادل في أربعة أبعاد وأداء أفضل في ثلاثة أبعاد أو أقل.
أهمية أشجار k-d: أشجار k-d هي هيكل بيانات مهم قدمه Bentley عام 1975 لتخزين البيانات ثنائية الأبعاد، وتُستخدم على نطاق واسع في البحث متعدد الأبعاد والبحث عن أقرب جار والاستعلامات عن النطاق.
تحديات مشكلة التوازن: بخلاف الأشجار الثنائية القياسية، تستخدم أشجار k-d مفاتيح مختلفة للتقسيم في مستويات مختلفة، مما يجعل تقنيات إعادة التوازن التقليدية (مثل عمليات الدوران في أشجار AVL أو الأشجار الحمراء-السوداء) غير قابلة للتطبيق على أشجار k-d.
قيود الطرق الموجودة:
تتطلب الطريقة التقليدية إيجاد الوسيط عند كل تقسيم تكراري
استخدام Quicksort للعثور على الوسيط: أفضل حالة O(n)، أسوأ حالة O(n²)
استخدام Merge sort أو Heap sort: يضمن O(n log n)، لكنه يؤدي إلى تعقيد إجمالي O(n log² n)
خوارزمية الوسيط O(n) من Blum وآخرون ممتازة نظرياً، لكن التنفيذ معقد
الإدخال: مجموعة من n نقطة بيانات ثنائية الأبعاد
الإخراج: شجرة k-d متوازنة تدعم عمليات بحث متعددة الأبعاد فعالة
القيود: الحفاظ على توازن الشجرة وتجنب نقاط البيانات المكررة
تدفق الخوارزمية:
1. اختيار عنصر الوسيط من مصفوفة الفهرس للبعد الحالي كنقطة تقسيم
2. تقسيم مصفوفات الفهرس الأخرى حسب نقطة التقسيم هذه
3. الحفاظ على ترتيب الفرز داخل كل مصفوفة أثناء التقسيم
4. معالجة المصفوفات الفرعية اليمنى واليسرى بشكل تكراري، مع الدوران عبر الأبعاد المختلفة
خوارزمية البحث عن الوسيط في الوقت الخطي من Blum وآخرون 6
الأدبيات الكلاسيكية لخوارزميات الفرز المختلفة 8,12,20
الأعمال ذات الصلة في الحوسبة المتوازية ونمذجة الأداء 2,10
تطبيقات البحث عن أقرب جار والبحث عن أقرب جار معكوس 7,13
التقييم الإجمالي: هذه ورقة بحثية عالية الجودة تقترح طريقة فرز مسبق مبتكرة في مجال بناء أشجار k-d. يتمتع البحث بتحليل نظري صارم وتصميم تجريبي كامل وقيمة عملية عالية. على الرغم من وجود قيود في حالات الأبعاد العالية، إلا أنه يوفر حلاً فعالاً لمعالجة بيانات الفضاء منخفضة الأبعاد، وله قيمة مرجعية مهمة للمجالات ذات الصلة.