شجرة التانغو
شجرة التانغو هي نوع من أشجار البحث الثنائية التي اقترحها إريك دي. ديمين ، وديون هارمون، وجون إياكونو ، وميهاي باتراسكو في عام 2004. [ 1 ] وقد سميت على اسم بوينس آيرس ، التي يعتبر التانغو رمزًا لها.
هو عبارة عن شجرة بحث ثنائية عبر الإنترنت تحققنسبة تنافسية مقارنة بشجرة البحث الثنائية المثلى غير المتصلة بالإنترنت ، مع استخداموحدات ذاكرة إضافية لكل عقدة. وقد حسّن هذا من أفضل نسبة تنافسية معروفة سابقًا، والتي كانت.
بناء
تعمل أشجار التانجو عن طريق تقسيم شجرة البحث الثنائية إلى مجموعة من المسارات المفضلة ، والتي يتم تخزينها بدورها في أشجار مساعدة (لذا يتم تمثيل شجرة التانجو كشجرة من الأشجار).
شجرة مرجعية
لإنشاء شجرة تانغو، نقوم بمحاكاة شجرة بحث ثنائية كاملة تُسمى شجرة المرجع ، وهي ببساطة شجرة بحث ثنائية تقليدية تحتوي على جميع العناصر. لا تظهر هذه الشجرة أبدًا في التطبيق الفعلي، ولكنها الأساس المفاهيمي لأجزاء شجرة تانغو اللاحقة.
على وجه الخصوص، يبلغ ارتفاع الشجرة المرجعية ⌈ log 2 ( n +1) ⌉ . وهذا يساوي طول أطول مسار، وبالتالي حجم أكبر شجرة مساعدة. من خلال الحفاظ على توازن معقول بين الأشجار المساعدة، يمكن حصر ارتفاعها في O (log log n ). وهذا هو مصدر ضمانات أداء الخوارزمية.
المسارات المفضلة

أولًا، نُعرّف لكل عقدة ابنها المُفضّل ، وهو ببساطة آخر عقدة تمّت زيارتها في عملية بحث تقليدية في شجرة البحث الثنائية. بتعبير أدق، لنفترض شجرة فرعية T ، جذرها p ، ولها ابنان l (يسار) و r (يمين). نُعيّن r الابن المُفضّل لـ p إذا كانت آخر عقدة تمّ الوصول إليها في T تقع في الشجرة الفرعية التي جذرها r ، ونُعيّن l الابن المُفضّل في غير ذلك. لاحظ أنه إذا كانت آخر عقدة تمّ الوصول إليها في T هي p نفسها، فإن l هو الابن المُفضّل بحكم التعريف.
يُحدد المسار المُفضل بالبدء من الجذر وتتبع الأبناء المفضلين حتى الوصول إلى عقدة طرفية. يؤدي حذف العقد على هذا المسار إلى تقسيم ما تبقى من الشجرة إلى عدد من الأشجار الفرعية، ونقوم بالتكرار على كل شجرة فرعية (مشكلين مسارًا مُفضلًا من جذرها، والذي بدوره يقسم الشجرة الفرعية إلى المزيد من الأشجار الفرعية).
الأشجار المساعدة
لتمثيل مسار مُفضّل، نخزّن عُقده في شجرة بحث ثنائية متوازنة ، وتحديدًا شجرة حمراء-سوداء . لكل عُقدة غير طرفية n في المسار المُفضّل P ، يوجد لها ابن غير مُفضّل c ، وهو جذر شجرة مساعدة جديدة. نُلحق جذر هذه الشجرة المساعدة الأخرى ( c ) بالعقدة n في P ، وبذلك نربط الشجرتين المساعدتين معًا. كما نُوسّع الشجرة المساعدة بتخزين الحد الأدنى والحد الأقصى لعمق العُقد (أي العمق في الشجرة المرجعية) في الشجرة الفرعية أسفل كل عُقدة.
الخوارزمية
البحث
للبحث عن عنصر في شجرة التانغو، نقوم ببساطة بمحاكاة البحث في الشجرة المرجعية. نبدأ بالبحث في المسار المفضل المتصل بالجذر، والذي تتم محاكاته بالبحث في الشجرة المساعدة المقابلة لهذا المسار المفضل. إذا لم تحتوي الشجرة المساعدة على العنصر المطلوب، ينتهي البحث عند والد جذر الشجرة الفرعية التي تحتوي على العنصر المطلوب (بداية مسار مفضل آخر)، فنتابع البحث في الشجرة المساعدة عن هذا المسار المفضل، وهكذا.
تحديث
للحفاظ على بنية شجرة التانغو (حيث تُقابل الأشجار المساعدة المسارات المفضلة)، يجب علينا إجراء بعض التحديثات كلما تغيرت المسارات الفرعية المفضلة نتيجةً لعمليات البحث. عند تغيير مسار فرعي مفضل، ينفصل الجزء العلوي من المسار المفضل عن الجزء السفلي (الذي يصبح مسارًا مفضلًا مستقلًا) ثم يُعاد ربطه بمسار مفضل آخر (يصبح الجزء السفلي الجديد). ولتحقيق ذلك بكفاءة، سنُعرّف عمليات القطع والربط على أشجارنا المساعدة .
ينضم
ستدمج عملية الربط شجرتين مساعدتين طالما أنهما تتمتعان بخاصية أن العقدة العليا لإحداهما (في الشجرة المرجعية) هي ابن للعقدة السفلى للأخرى (أي أنه يمكن دمج المسارات المفضلة المتناظرة). يعتمد هذا على عملية دمج الأشجار الحمراء والسوداء، التي تدمج شجرتين طالما أن جميع عناصر إحداهما أصغر من جميع عناصر الأخرى، وعملية التقسيم ، التي تقوم بالعكس. في الشجرة المرجعية، لاحظ وجود عقدتين في المسار العلوي بحيث تكون العقدة في المسار السفلي إذا وفقط إذا كانت قيمة مفتاحها بينهما. الآن، لربط المسار السفلي بالمسار العلوي، نقوم ببساطة بتقسيم المسار العلوي بين هاتين العقدتين، ثم ندمج الشجرتين المساعدتين الناتجتين على جانبي الشجرة المساعدة للمسار السفلي، وبذلك نحصل على شجرتنا المساعدة المدمجة النهائية.
يقطع
ستقوم عملية القطع بتقسيم المسار المفضل إلى جزأين عند عقدة معينة، جزء علوي وجزء سفلي. بتعبير أدق، ستقوم بتقسيم شجرة مساعدة إلى شجرتين مساعدتين، بحيث تحتوي إحداهما على جميع العقد عند عمق معين أو أعلى منه في الشجرة المرجعية، بينما تحتوي الأخرى على جميع العقد أسفل ذلك العمق. كما هو الحال في عملية الربط ، لاحظ أن الجزء العلوي يحتوي على عقدتين تُحيطان بالجزء السفلي. بالتالي، يمكننا ببساطة تقسيم المسار عند كل من هاتين العقدتين لتقسيمه إلى ثلاثة أجزاء، ثم دمج الجزأين الخارجيين لنحصل في النهاية على جزأين، العلوي والسفلي، كما هو مطلوب.
تحليل
لتقدير نسبة التنافس لأشجار التانغو، يجب إيجاد حد أدنى لأداء الشجرة المثلى غير المتصلة بالإنترنت التي نستخدمها كمعيار. وبمجرد إيجاد حد أعلى لأداء شجرة التانغو، يمكننا قسمة الحدين لتقدير نسبة التنافس.
غلاف متداخل
لإيجاد حد أدنى للعمل الذي تقوم به شجرة البحث الثنائية المثلى غير المتصلة بالإنترنت، نستخدم مجددًا مفهوم الأبناء المفضلين. عند النظر في تسلسل وصول (تسلسل عمليات بحث)، نتتبع عدد مرات تبديل الابن المفضل لعقدة شجرة مرجعية. يعطي العدد الإجمالي للتبديلات (مجموعًا على جميع العقد) حدًا أدنى تقاربيًا للعمل الذي تقوم به أي خوارزمية لشجرة البحث الثنائية على تسلسل الوصول المحدد. يُسمى هذا الحد الأدنى للتداخل . [ 1 ]
شجرة التانغو
لربط هذا بأشجار التانغو، سنجد حدًا أعلى للعمل الذي تقوم به شجرة التانغو لتسلسل وصول معين. سيكون حدنا الأعلى هو، حيث k هو عدد التداخلات.
يتم تقسيم التكلفة الإجمالية إلى جزأين، البحث عن العنصر، وتحديث بنية شجرة التانجو للحفاظ على الثوابت المناسبة (تبديل الأبناء المفضلين وإعادة ترتيب المسارات المفضلة).
البحث
لإثبات أن عملية البحث (وليس التحديث) تندرج ضمن هذا النطاق، لاحظ ببساطة أنه في كل مرة تفشل فيها عملية بحث في الشجرة المساعدة ونضطر إلى الانتقال إلى الشجرة المساعدة التالية، ينتج عن ذلك تبديل الفرع المفضل (حيث يغير مسار الأصل المفضل اتجاهه الآن للانضمام إلى مسار الفرع المفضل). وبما أن جميع عمليات البحث في الشجرة المساعدة تفشل باستثناء الأخيرة (نتوقف بمجرد نجاح البحث، بطبيعة الحال)، فإننا نبحثالأشجار المساعدة. كل عملية بحث تأخذلأن حجم الشجرة المساعدة محدود بـ، ارتفاع الشجرة المرجعية.
تحديث
تتناسب تكلفة التحديث مع هذا الحد أيضًا، لأننا نحتاج فقط إلى إجراء عملية قطع واحدة وعملية ضم واحدة لكل شجرة مساعدة تمت زيارتها. تتطلب عملية القطع أو الضم الواحدة عددًا ثابتًا من عمليات البحث والتقسيم والدمج ، ويستغرق كل منها وقتًا لوغاريتميًا يتناسب مع حجم الشجرة المساعدة، لذا فإن تكلفة التحديث لدينا هي.
نسبة تنافسية
أشجار التانغو هي-تنافسية، لأن العمل الذي تقوم به شجرة البحث الثنائية المثلى غير المتصلة بالإنترنت يكون على الأقل خطيًا في k (العدد الإجمالي لتبديلات الأبناء المفضلة)، والعمل الذي تقوم به شجرة التانغو يكون على الأكثر.
انظر أيضاً
مراجع
- 1 2 ديمين، إي دي؛ هارمون، دي؛ إياكونو، جيه؛ باتراسكو، إم. (2007). "الأمثلية الديناميكية - تقريبًا" (ملف PDF) . مجلة SIAM للحوسبة . 37 (1): 240. doi : 10.1137/S0097539705447347 .
- الأشجار الثنائية
- شجرة البحث
