شجرة علوية
الشجرة العليا هي بنية بيانات مبنية على شجرة ثنائية للأشجار الديناميكية غير الجذرية ، وتُستخدم بشكل أساسي في عمليات المسارات المختلفة. وهي تُتيح خوارزميات فرق تسد بسيطة . وقد تم تطويرها لاحقًا للحفاظ ديناميكيًا على خصائص الشجرة المختلفة مثل القطر والمركز والوسيط.
شجرة عاليةيتم تعريفها لشجرة أساسية T ومجموعةتتكون من رأسين على الأكثر، وتسمى رؤوس الحدود الخارجية.

مسرد المصطلحات
عقدة الحدود
انظر إلى رأس الحدود
رأس الحدود
يُعتبر الرأس الموجود في الشجرة الفرعية المتصلة رأسًا حدوديًا إذا كان متصلًا برأس خارج الشجرة الفرعية بواسطة حافة.
رؤوس الحدود الخارجية
يصل إلى زوج من الرؤوس في الشجرة العلويةيمكن تسميتها برؤوس الحدود الخارجية، ويمكن اعتبارها رؤوس حدودية للمجموعة التي تمثل الشجرة العليا بأكملها.
تَجَمَّع
المجموعة هي شجرة فرعية متصلة تحتوي على رأسين حدوديين على الأكثر . يُرمز إلى مجموعة الرؤوس الحدودية لمجموعة معينة C بالرمز .يمكن للمستخدم ربط بعض المعلومات الوصفية بكل مجموعة C وتقديم طرق للحفاظ عليه في ظل العمليات الداخلية المختلفة .
مجموعة المسارات
لوإذا احتوى على حافة واحدة على الأقل، فإن C يسمى مجموعة مسارات .
مجموعة النقاط
انظر مجموعة الأوراق
مجموعة أوراق
لوإذا لم تحتوي على أي حافة، أي أن C لها رأس حدودي واحد فقط، فإن C تسمى مجموعة أوراق .
مجموعة الحافة
تُسمى المجموعة التي تحتوي على حافة واحدة مجموعة الحواف .
مجموعة حواف الأوراق
يتم تمثيل الورقة في المجموعة الأصلية بواسطة مجموعة تحتوي على رأس حدودي واحد فقط وتسمى مجموعة حافة الورقة .
مجموعة حواف المسار
تُسمى مجموعات الحواف التي تحتوي على عقدتين حدوديتين بمجموعة حواف المسار .
العقدة الداخلية
عقدة فييُطلق عليه اسم العقدة الداخلية للغة C.
مسار المجموعة
يُطلق على المسار بين رؤوس حدود المجموعة C اسم مسار المجموعة C ، ويُرمز إليه بـ
مجموعات قابلة للدمج
يمكن دمج مجموعتين A و B إذاهي مجموعة أحادية (لها عقدة واحدة مشتركة فقط) وهو مجموعة.
مقدمة
تُستخدم الأشجار العليا للحفاظ على غابة ديناميكية (مجموعة من الأشجار) في ظل عمليات الربط والقطع.
الفكرة الأساسية هي الحفاظ على شجرة ثنائية متوازنةبارتفاع لوغاريتمي بالنسبة لعدد العقد في الشجرة الأصلية T (أي فيالوقت)؛ تمثل الشجرة العليا بشكل أساسي التقسيم المتكرر للشجرة الأصلية T إلى مجموعات .
بشكل عام، قد يكون للشجرة T وزن على حوافها.
توجد علاقة تناظرية بين حواف الشجرة الأصلية T وعقد الأوراق في الشجرة العلوية.وكل عقدة داخلية منيمثل مجموعة تتشكل نتيجة اتحاد المجموعات التي هي أبنائها.
يمكن تهيئة بنية بيانات الشجرة العليا فيوقت.
لذلك الشجرة العليازيادةهي شجرة ثنائية بحيث
- عقدهي مجموعات من؛
- أوراقهي حواف T ؛
- تعتبر المجموعات الشقيقة جيرانًا بمعنى أنها تتقاطع في رأس واحد، ثم تكون مجموعتها الأصلية هي اتحادها.
- أصلهي الشجرة T نفسها، مع مجموعة من رأسين حدوديين خارجيين على الأكثر.
الشجرة ذات الرأس الواحد لها شجرة علوية فارغة، والشجرة ذات الحافة الواحدة لها عقدة واحدة فقط.
هذه الأشجار قابلة للتعديل بحرية مما يسمح للمستخدم بمجموعة واسعة من المرونة والإنتاجية دون الخوض في تفاصيل العمليات الداخلية لهيكل البيانات، وهو أمر يشار إليه أيضًا باسم الصندوق الأسود .
العمليات الديناميكية
التحديثات الثلاثة التالية هي تحديثات الغابة المسموح بها للمستخدم.
- Link(v, w): حيث v و w هما رأسان في شجرتين مختلفتين T1 و T2 . تُرجع هذه الدالة شجرة علوية واحدة تمثل
- Cut(v, w) : يزيل الحافةمن شجرة T مع شجرة علويةوبذلك يتم تحويلها إلى شجرتين T v و T w وإعادة شجرتين علويتينو.
- Expose(S) : يتم استدعاؤها كإجراء فرعي لتنفيذ معظم الاستعلامات على الشجرة العليا. تحتوي S على رأسين على الأكثر. تقوم هذه العملية بتحويل الرؤوس الخارجية الأصلية إلى رؤوس عادية، وتجعل الرؤوس من S رؤوس الحدود الخارجية الجديدة للشجرة العليا. إذا كانت S غير فارغة، فإنها تُرجع مجموعة الجذور الجديدة C.يفشل الأمر Expose({v,w}) إذا كانت الرؤوس من أشجار مختلفة.
العمليات الداخلية
يتم تنفيذ جميع تحديثات الغابة من خلال سلسلة من العمليات على الأكثرالعمليات الداخلية، التي يتم حساب تسلسلها لاحقًاقد يحدث أثناء تحديث الشجرة أن تتحول مجموعة أوراق إلى مجموعة مسارات، والعكس صحيح. وتُجرى تحديثات الشجرة العليا حصريًا من خلال هذه العمليات الداخلية.
اليتم تحديثها عن طريق استدعاء دالة معرفة من قبل المستخدم مرتبطة بكل عملية داخلية.
- هنا ، A و B عبارة عن مجموعات قابلة للدمج ، وتُرجع الدالة C كمجموعة أصلية لـ A و B ، مع رؤوس حدودية تمثل رؤوس الحدود لـيحسباستخدامو
- هنا C هي المجموعة الجذريةيتم تحديثهواستخدامثم يقوم بحذف المجموعة C من.
يتم تنفيذ عملية التقسيم عادةً باستخدامطريقة تستدعي طريقة المستخدم لتحديثاتواستخداموالتحديثاتبحيث يُعرف أنه لا توجد حاجة إلى تحديث معلق في عناصره الفرعية. ثم يتم تجاهل C دون استدعاء الدوال المعرفة من قبل المستخدم. غالبًا ما تكون عملية التنظيف مطلوبة للاستعلامات التي لا تتطلب تقسيمًا . إذا لم يستخدم التقسيم روتين التنظيف الفرعي، وكانت عملية التنظيف مطلوبة، فيمكن تحقيق تأثيرها مع زيادة في الحمل عن طريق دمج الدمج والتقسيم .
الوظيفتان التاليتان مماثلتان للوظيفتين السابقتين وتستخدمان للمجموعات الأساسية.
- يُنشئ مجموعة C للحافةمجموعاتيتم حسابها من الصفر.
- C هي مجموعة الحوافيتم استدعاء الدالة المعرفة من قبل المستخدم للمعالجةثم يتم حذف المجموعة C من الشجرة العليا.
بحث غير محلي
يمكن للمستخدم تحديد الاختيارعمليةٌ تُحدِّد إحدى مجموعات فرعية لمجموعة جذرية (غير طرفية). يوفر الصندوق الأسود للشجرة العليا وظيفة البحث.روتين يُنظّم استعلامات الاختيار وإعادة تنظيم الشجرة العليا (باستخدام العمليات الداخلية) بحيث يُحدد الحافة الوحيدة في تقاطع جميع المجموعات المُختارة. في بعض الأحيان، يجب حصر البحث في مسار مُحدد. يوجد نوع من البحث غير المحلي لهذه الأغراض. إذا كان هناك رأسان حدوديان خارجيان في المجموعة الجذرية C ، فسيتم البحث عن الحافة على هذا المسار فقط.يكفي إجراء التعديل التالي: إذا كان أحد أبناء المجموعة الجذرية فقط هو مجموعة المسار، فسيتم تحديده افتراضيًا دون استدعاء عملية الاختيار .
أمثلة على البحث غير المحلي
يمكن إيجاد الحافة رقم i على المسار الأطول من v إلى w باستخدام C = Expose({v,w}) متبوعًا بـ Search( C ) مع Choose المناسب . لتنفيذ Choose، نستخدم متغيرًا عامًا يمثل v ومتغيرًا عامًا يمثل i . يختار Choose المجموعة A معإذا كان طوليجب أن يكون طولها على الأقل i . لدعم العملية، يجب الحفاظ على الطول في I.
يمكن صياغة مهمة مماثلة للرسم البياني ذي الحواف ذات الأطوال غير الموحدة. في هذه الحالة، يمكن أن تشير المسافة إلى حافة أو رأس بين حافتين. يمكننا تعريف دالة Choose بحيث تُعاد الحافة المؤدية إلى الرأس في الحالة الأخيرة. يمكن تعريف دالة update لزيادة أطوال جميع الحواف على طول مسار ما بمقدار ثابت. في هذا السيناريو، تُجرى هذه التحديثات في وقت ثابت فقط في المجموعة الجذرية. يلزم استخدام دالة Clean لتوزيع التحديث المؤجل على المجموعات الفرعية. يجب استدعاء دالة Clean قبل استدعاء دالة Choose . للحفاظ على الطول في المجموعة I، يتطلب الأمر في هذه الحالة الحفاظ على الطول الموحد في المجموعة I أيضًا.
يمكن إيجاد مركز الشجرة التي تحتوي على الرأس v من خلال إيجاد إما حافة ثنائية المركز أو حافة يكون مركزها أحد طرفيها. يمكن إيجاد الحافة باستخدام C = Expose({v}) متبوعةً بـ Search( C ) مع Choose المناسب . يختار Choose بين الأبناء A و B معالطفل ذو المسافة القصوى الأعلى ( أ ). لدعم هذه العملية، يجب الحفاظ على أقصى مسافة في الشجرة الفرعية للمجموعة من رأس حدودي في I. وهذا يتطلب الحفاظ على طول مسار المجموعة أيضًا.
نتائج وتطبيقات مثيرة للاهتمام
تم تنفيذ عدد من التطبيقات المثيرة للاهتمام، التي كانت تُنفذ في الأصل بطرق أخرى، بسهولة باستخدام واجهة الشجرة العليا. ومن بينها:
- [سليتور وتارجان 1983]. يمكننا الحفاظ على مجموعة ديناميكية من الأشجار الموزونة فيالوقت لكل رابط وقطع، مع دعم الاستعلامات حول أقصى وزن للحافة بين أي رأسين فيوقت.
- مخطط البرهان: يتضمن الحفاظ على أقصى وزن عند كل عقدة ( ) على مسار مجموعتها، إذا كانت مجموعة نقطية، فـيتم تهيئتها كـعندما تكون المجموعة عبارة عن اتحاد مجموعتين، فإنها تمثل القيمة القصوى للمجموعتين المدمجتين. إذا أردنا إيجاد أقصى قيمة لـ wt بين v و w، فإننا نقوم بما يلي:وتقديم تقرير
- [سليتور وتارجان 1983]. في سيناريو التطبيق المذكور أعلاه، يمكننا أيضًا إضافة وزن مشترك x إلى جميع الحواف على مسار معين v · · · w inوقت.
- مخطط البرهان: نُدخل وزنًا يُسمى إضافي ( C ) ليتم إضافته إلى جميع الحواف فيوالتي يتم الحفاظ عليها بشكل مناسب ؛ يتطلب split( C ) أنه لكل مسار فرعي A من C ، نقوم بتعيينوبالنسبة لـ C := join( A , B )، نُعيّنووأخيرًا، لإيجاد أقصى وزن على المسار v · · · w ، نضعثم العودة.
- [جولدبيرج وآخرون، 1991]. يمكننا طلب الوزن الأقصى في الشجرة الأساسية التي تحتوي على رأس معين v فيوقت.
- مخطط البرهان: يتطلب هذا الاحتفاظ بمعلومات إضافية حول حافة المسار غير العنقودي ذات الوزن الأقصى في عنقود تحت عمليات الدمج والتقسيم.
- يمكن إيجاد المسافة بين رأسين v و w فيالوقت.
- مخطط البرهان: سنحتفظ بطول المسار العنقودي ( C ). يُحتفظ بالطول كأقصى وزن، باستثناء أنه إذا تم إنشاء C عن طريق دمج (دمج)، فإن طول ( C ) هو مجموع الأطوال المخزنة مع مساراته الفرعية.
- الاستفسارات المتعلقة بقطر الشجرة وصيانتها اللاحقة تستغرقوقت.
- يمكن الاحتفاظ بالمركز والوسيط من خلال عمليات الربط (الدمج) والقص (التقسيم) والاستعلام عنهما من خلال البحث غير المحلي فيوقت.
- تُستخدم الأشجار العليا في أحدث الخوارزميات لحساب الاتصال الديناميكي ثنائي الحواف . في هذه المسألة، كما هو الحال في الاتصال الديناميكي ، يخضع الرسم البياني لعمليات حذف وإضافة الحواف، بالإضافة إلى الاستعلامات التي تسأل عما إذا كان زوج من الرؤوس متصلًا ثنائي الحواف، أو ما إذا كان هناك جسر يفصل بينهما. يقدم هولم ، ودي ليشتنبرغ، وثورب [ 1 ] خوارزمية حتمية بوقت تحديث مُعدَّل.، ووقت الاستعلام. وقد حسّن العمل اللاحق الذي قام به هولم وروتنبرغ وثورب هذا إلى وقت تحديث مُستهلك قدره، وكذلك باستخدام الأشجار العليا [ 2 ] [ 3 ]
تطبيق
تم تنفيذ الأشجار العليا بطرق متنوعة، بعضها يتضمن التنفيذ باستخدام تقسيم متعدد المستويات (الأشجار العليا وخوارزميات الرسم البياني الديناميكي جاكوب هولم وكريستيان دي ليشتنبرغ. تقرير فني)، وحتى باستخدام أشجار سليتور-تارجان st (عادة مع حدود زمنية مستهلكة)، وأشجار فريدريكسون الطوبولوجية (مع حدود زمنية في أسوأ الحالات) (ألستروب وآخرون. الحفاظ على المعلومات في الأشجار الديناميكية بالكامل باستخدام الأشجار العليا).
تتميز التطبيقات المُستهلكة ببساطتها، ومعاملات التعقيد الزمني فيها ضئيلة. في المقابل، تسمح تطبيقات أسوأ الحالات بتسريع الاستعلامات عن طريق إيقاف تحديثات المعلومات غير الضرورية أثناء الاستعلام (باستخدام تقنيات الثبات ). بعد إتمام الاستعلام، تُستخدم الحالة الأصلية للشجرة العليا ويتم تجاهل نسخة الاستعلام.
استخدام التقسيم متعدد المستويات
يمكن تمثيل أي تقسيم لمجموعات شجرة T بواسطة شجرة تقسيم المجموعات CPTعن طريق استبدال كل مجموعة في الشجرة T بحافة. إذا استخدمنا استراتيجية P لتقسيم T، فإن CPT ستكون CPT Pيتم ذلك بشكل متكرر حتى لا يتبقى سوى حافة واحدة.
سنلاحظ أن جميع عقد الشجرة العليا المقابلةتُربط هذه النقاط بشكل فريد بحواف هذا التقسيم متعدد المستويات. قد توجد بعض الحواف في التقسيم متعدد المستويات لا تُقابل أي عقدة في الشجرة العليا، وهذه هي الحواف التي تُمثل فرعًا واحدًا فقط في المستوى الأدنى، أي مجموعة بسيطة. فقط الحواف التي تُقابل مجموعات مركبة تُقابل عقدًا في الشجرة العليا.
تُعدّ استراتيجية التقسيم مهمة عند تقسيم الشجرة T إلى مجموعات. فالاستراتيجية الدقيقة وحدها هي التي تضمن لنا الوصول إلى نتيجة مُرضية.ارتفاع التقسيم متعدد المستويات (وبالتالي الشجرة العليا).
- ينبغي أن ينخفض عدد الحواف في المستويات اللاحقة بمعامل ثابت.
- إذا تم تغيير مستوى أدنى بواسطة تحديث، فيجب أن نكون قادرين على تحديث المستوى الذي يعلوه مباشرة باستخدام عدد ثابت على الأكثر من عمليات الإضافة والحذف.
تضمن استراتيجية التقسيم المذكورة أعلاه الحفاظ على الشجرة العليا في وقت.
انظر أيضاً
مراجع
- ستيفن ألستروب، جاكوب هولم، كريستيان دي ليشتنبرغ، وميكيل ثوروب ، الحفاظ على المعلومات في الأشجار الديناميكية بالكامل مع الأشجار العليا ، معاملات ACM على الخوارزميات (TALG)، المجلد. 1 (2005)، 243-264، دوى : 10.1145 / 1103963.1103966
- ستيفن ألستروب، جاكوب هولم، كريستيان دي ليشتنبرغ، وميكيل ثورب ، خوارزميات حتمية متعددة اللوغاريتمات ديناميكية بالكامل للاتصال، والشجرة الممتدة الدنيا، والحافة الثنائية، والاتصال الثنائي ، مجلة ACM، المجلد 48، العدد 4 (يوليو 2001)، 723-760، doi : 10.1145/502090.502095
- دونالد كنوث . فن برمجة الحاسوب : الخوارزميات الأساسية ، الطبعة الثالثة. أديسون-ويسلي، 1997. ISBN 0-201-89683-4القسم 2.3: الأشجار، الصفحات 308-423.
- توماس هـ. كورمن ، تشارلز إي. ليسرسون ، رونالد ل. ريفست ، وكليفورد شتاين . مقدمة في الخوارزميات ، الطبعة الثانية. مطبعة معهد ماساتشوستس للتكنولوجيا وماكجرو هيل، 2001. ISBN 0-262-03293-7القسم 10.4: تمثيل الأشجار الجذرية، الصفحات 214-217. الفصول 12-14 (أشجار البحث الثنائية، الأشجار الحمراء والسوداء، تعزيز هياكل البيانات)، الصفحات 253-320.
- ↑ هولم، ج.؛ دي ليشتنبرغ، ك.؛ ثورب، م. (2001). "خوارزميات حتمية متعددة اللوغاريتمات ديناميكية بالكامل للاتصال، والشجرة الممتدة الدنيا، والحافة الثنائية، والاتصال الثنائي". مجلة ACM . 48 (4): 723. doi : 10.1145/502090.502095 . S2CID 7273552 .
- ↑ ثورب، ميكيل (2000)، "اتصال الرسم البياني الديناميكي الكامل شبه الأمثل"، وقائع الندوة السنوية الثانية والثلاثين لجمعية آلات الحوسبة (ACM) حول نظرية الحوسبة
- ^ هولم ، يعقوب. روتنبرغ، إيفا؛ ثوروب، ميكيل (2018)، “إيجاد الجسور الديناميكية في"الوقت المستهلك"، وقائع الندوة السنوية التاسعة والعشرين لجمعية آلات الحوسبة والجمعية الدولية للرياضيات التطبيقية حول الخوارزميات المنفصلة، SODA 2018 ، doi : 10.1137/1.9781611975031.3 ، S2CID 33964042
- ↑ هولم، ج.؛ دي ليشتنبرغ، ك.؛ ثورب، م. (2001). "خوارزميات حتمية متعددة اللوغاريتمات ديناميكية بالكامل للاتصال، والشجرة الممتدة الدنيا، والحافة الثنائية، والاتصال الثنائي". مجلة ACM . 48 (4): 723. doi : 10.1145/502090.502095 . S2CID 7273552 .
- ↑ بيل، فيليب؛ غورتز، إنجي لي؛ لانداو، جاد م.؛ وايمان، أورين (2015). "ضغط الشجرة باستخدام الأشجار العليا". معلومات وحوسبة . 243 : 166-177 . arXiv : 1304.5702 . doi : 10.1016/j.ic.2014.12.012 .
روابط خارجية
- الأشجار الثنائية
