شجرة علوية

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

شجرة عالية{\displaystyle \Re }يتم تعريفها لشجرة أساسية T ومجموعةتي{\displaystyle \partial {T}}تتكون من رأسين على الأكثر، وتسمى رؤوس الحدود الخارجية.

صورة توضح شجرة علوية مبنية على شجرة أساسية (عقد سوداء). شجرة مقسمة إلى مجموعات حواف، والشجرة العلوية الكاملة لها. العقد المظللة في الشجرة العلوية هي مجموعات مسارات، بينما العقد الدائرية الصغيرة هي مجموعات أوراق. العقدة الدائرية الكبيرة هي الجذر. الأحرف الكبيرة تدل على المجموعات، والأحرف الصغيرة تدل على العقد.

مسرد المصطلحات

عقدة الحدود

انظر إلى رأس الحدود

رأس الحدود

يُعتبر الرأس الموجود في الشجرة الفرعية المتصلة رأسًا حدوديًا إذا كان متصلًا برأس خارج الشجرة الفرعية بواسطة حافة.

رؤوس الحدود الخارجية

يصل إلى زوج من الرؤوس في الشجرة العلوية{\displaystyle \Re }يمكن تسميتها برؤوس الحدود الخارجية، ويمكن اعتبارها رؤوس حدودية للمجموعة التي تمثل الشجرة العليا بأكملها.

تَجَمَّع

المجموعة هي شجرة فرعية متصلة تحتوي على رأسين حدوديين على الأكثر . يُرمز إلى مجموعة الرؤوس الحدودية لمجموعة معينة C بالرمز .ج.{\displaystyle \partial {C}.}يمكن للمستخدم ربط بعض المعلومات الوصفية بكل مجموعة Cأنا(ج)،{\displaystyle I({\mathcal {C}}),} وتقديم طرق للحفاظ عليه في ظل العمليات الداخلية المختلفة .

مجموعة المسارات

لوπ(ج){\displaystyle \pi ({\mathcal {C}})}إذا احتوى على حافة واحدة على الأقل، فإن C يسمى مجموعة مسارات .

مجموعة النقاط

انظر مجموعة الأوراق

مجموعة أوراق

لوπ(ج){\displaystyle \pi ({\mathcal {C}})}إذا لم تحتوي على أي حافة، أي أن C لها رأس حدودي واحد فقط، فإن C تسمى مجموعة أوراق .

مجموعة الحافة

تُسمى المجموعة التي تحتوي على حافة واحدة مجموعة الحواف .

مجموعة حواف الأوراق

يتم تمثيل الورقة في المجموعة الأصلية بواسطة مجموعة تحتوي على رأس حدودي واحد فقط وتسمى مجموعة حافة الورقة .

مجموعة حواف المسار

تُسمى مجموعات الحواف التي تحتوي على عقدتين حدوديتين بمجموعة حواف المسار .

العقدة الداخلية

عقدة فيجج{\displaystyle {\mathcal {C}}\setminus \partial {C}}يُطلق عليه اسم العقدة الداخلية للغة C.

مسار المجموعة

يُطلق على المسار بين رؤوس حدود المجموعة C اسم مسار المجموعة C ، ويُرمز إليه بـπ(ج).{\displaystyle \pi ({\mathcal {C}}).}

مجموعات قابلة للدمج

يمكن دمج مجموعتين A و B إذاأب{\displaystyle {\mathcal {A}}\cap {\mathcal {B}}}هي مجموعة أحادية (لها عقدة واحدة مشتركة فقط) وأب{\displaystyle {\mathcal {A}}\cup {\mathcal {B}}}هو مجموعة.

مقدمة

تُستخدم الأشجار العليا للحفاظ على غابة ديناميكية (مجموعة من الأشجار) في ظل عمليات الربط والقطع.

الفكرة الأساسية هي الحفاظ على شجرة ثنائية متوازنة{\displaystyle \Re }بارتفاع لوغاريتمي بالنسبة لعدد العقد في الشجرة الأصلية T (أي فييا(سجلن){\displaystyle {\mathcal {O}}(\log n)}الوقت)؛ تمثل الشجرة العليا بشكل أساسي التقسيم المتكرر للشجرة الأصلية T إلى مجموعات .

بشكل عام، قد يكون للشجرة T وزن على حوافها.

توجد علاقة تناظرية بين حواف الشجرة الأصلية T وعقد الأوراق في الشجرة العلوية.{\displaystyle \Re }وكل عقدة داخلية من{\displaystyle \Re }يمثل مجموعة تتشكل نتيجة اتحاد المجموعات التي هي أبنائها.

يمكن تهيئة بنية بيانات الشجرة العليا فييا(ن){\displaystyle {\mathcal {O}}(n)}وقت.

لذلك الشجرة العليا{\displaystyle \Re }زيادة(تي،تي){\displaystyle ({\mathcal {T}},\partial {T})}هي شجرة ثنائية بحيث

  • عقد{\displaystyle \Re }هي مجموعات من(تي،تي){\displaystyle ({\mathcal {T}},\partial {T})}؛
  • أوراق{\displaystyle \Re }هي حواف T ؛
  • تعتبر المجموعات الشقيقة جيرانًا بمعنى أنها تتقاطع في رأس واحد، ثم تكون مجموعتها الأصلية هي اتحادها.
  • أصل{\displaystyle \Re }هي الشجرة T نفسها، مع مجموعة من رأسين حدوديين خارجيين على الأكثر.

الشجرة ذات الرأس الواحد لها شجرة علوية فارغة، والشجرة ذات الحافة الواحدة لها عقدة واحدة فقط.

هذه الأشجار قابلة للتعديل بحرية مما يسمح للمستخدم بمجموعة واسعة من المرونة والإنتاجية دون الخوض في تفاصيل العمليات الداخلية لهيكل البيانات، وهو أمر يشار إليه أيضًا باسم الصندوق الأسود .

العمليات الديناميكية

التحديثات الثلاثة التالية هي تحديثات الغابة المسموح بها للمستخدم.

  • Link(v, w): حيث v و w هما رأسان في شجرتين مختلفتين T1 و T2 . تُرجع هذه الدالة شجرة علوية واحدة تمثلvw(v،w){\displaystyle \Re _{v}\cup \Re _{w}\cup {(v,w)}}
  • Cut(v, w) : يزيل الحافة(v،w){\displaystyle {(v,w)}}من شجرة T مع شجرة علوية،{\displaystyle \Re ,}وبذلك يتم تحويلها إلى شجرتين T v و T w وإعادة شجرتين علويتينv{\displaystyle \Re _{v}}وw{\displaystyle \Re _{w}}.
  • Expose(S) : يتم استدعاؤها كإجراء فرعي لتنفيذ معظم الاستعلامات على الشجرة العليا. تحتوي S على رأسين على الأكثر. تقوم هذه العملية بتحويل الرؤوس الخارجية الأصلية إلى رؤوس عادية، وتجعل الرؤوس من S رؤوس الحدود الخارجية الجديدة للشجرة العليا. إذا كانت S غير فارغة، فإنها تُرجع مجموعة الجذور الجديدة C.ج=S.{\displaystyle \partial {C}=S.}يفشل الأمر Expose({v,w}) إذا كانت الرؤوس من أشجار مختلفة.

العمليات الداخلية

يتم تنفيذ جميع تحديثات الغابة من خلال سلسلة من العمليات على الأكثريا(سجلن){\displaystyle {\mathcal {O}}(\log n)}العمليات الداخلية، التي يتم حساب تسلسلها لاحقًايا(سجلن){\displaystyle {\mathcal {O}}(\log n)}قد يحدث أثناء تحديث الشجرة أن تتحول مجموعة أوراق إلى مجموعة مسارات، والعكس صحيح. وتُجرى تحديثات الشجرة العليا حصريًا من خلال هذه العمليات الداخلية.

الأنا(ج){\displaystyle I({\mathcal {C}})}يتم تحديثها عن طريق استدعاء دالة معرفة من قبل المستخدم مرتبطة بكل عملية داخلية.

مهـرزهـ(أ،ب){\displaystyle \mathrm {Merge} ({\mathcal {A}},{\mathcal {B}})}
هنا ، A و B عبارة عن مجموعات قابلة للدمج ، وتُرجع الدالة C كمجموعة أصلية لـ A و B ، مع رؤوس حدودية تمثل رؤوس الحدود لـأب.{\displaystyle {\mathcal {A}}\cup {\mathcal {B}}.}يحسبأنا(ج){\displaystyle I({\mathcal {C}})}استخدامأنا(أ){\displaystyle I({\mathcal {A}})}وأنا(ب).{\displaystyle I({\mathcal {B}}).}
Sصلأنات(ج){\displaystyle \mathrm {Split} ({\mathcal {C}})}
هنا C هي المجموعة الجذريةأب.{\displaystyle {\mathcal {A}}\cup {\mathcal {B}}.}يتم تحديثهأنا(أ){\displaystyle I({\mathcal {A}})}وأنا(ب){\displaystyle I({\mathcal {B}})}استخدامأنا(ج){\displaystyle I({\mathcal {C}})}ثم يقوم بحذف المجموعة C من{\displaystyle \Re }.

يتم تنفيذ عملية التقسيم عادةً باستخدامجلهـأن(ج){\displaystyle \mathrm {Clean} ({\mathcal {C}})}طريقة تستدعي طريقة المستخدم لتحديثاتأنا(أ){\displaystyle I({\mathcal {A}})}وأنا(ب){\displaystyle I({\mathcal {B}})}استخدامأنا(ج){\displaystyle I({\mathcal {C}})}والتحديثاتأنا(ج){\displaystyle I({\mathcal {C}})}بحيث يُعرف أنه لا توجد حاجة إلى تحديث معلق في عناصره الفرعية. ثم يتم تجاهل C دون استدعاء الدوال المعرفة من قبل المستخدم. غالبًا ما تكون عملية التنظيف مطلوبة للاستعلامات التي لا تتطلب تقسيمًا . إذا لم يستخدم التقسيم روتين التنظيف الفرعي، وكانت عملية التنظيف مطلوبة، فيمكن تحقيق تأثيرها مع زيادة في الحمل عن طريق دمج الدمج والتقسيم .

الوظيفتان التاليتان مماثلتان للوظيفتين السابقتين وتستخدمان للمجموعات الأساسية.

جرهـأتهـ(v،w){\displaystyle \mathrm {Create} (v,w)}
يُنشئ مجموعة C للحافة(v،w).{\displaystyle (v,w).}مجموعاتج=(v،w).{\displaystyle \partial {C}=\partial (v,w).}أنا(ج){\displaystyle I({\mathcal {C}})}يتم حسابها من الصفر.
هـرأدأناجأتهـ(ج){\displaystyle \mathrm {Eradicate} ({\mathcal {C}})}
C هي مجموعة الحواف(v،w).{\displaystyle (v,w).}يتم استدعاء الدالة المعرفة من قبل المستخدم للمعالجةأنا(ج){\displaystyle I({\mathcal {C}})}ثم يتم حذف المجموعة C من الشجرة العليا.

يمكن للمستخدم تحديد الاختيار(ج):{\displaystyle ({\mathcal {C}}){:}}عمليةٌ تُحدِّد إحدى مجموعات فرعية لمجموعة جذرية (غير طرفية). يوفر الصندوق الأسود للشجرة العليا وظيفة البحث.(ج):{\displaystyle ({\mathcal {C}}){:}}روتين يُنظّم استعلامات الاختيار وإعادة تنظيم الشجرة العليا (باستخدام العمليات الداخلية) بحيث يُحدد الحافة الوحيدة في تقاطع جميع المجموعات المُختارة. في بعض الأحيان، يجب حصر البحث في مسار مُحدد. يوجد نوع من البحث غير المحلي لهذه الأغراض. إذا كان هناك رأسان حدوديان خارجيان في المجموعة الجذرية C ، فسيتم البحث عن الحافة على هذا المسار فقط.π(ج){\displaystyle \pi ({\mathcal {C}})}يكفي إجراء التعديل التالي: إذا كان أحد أبناء المجموعة الجذرية فقط هو مجموعة المسار، فسيتم تحديده افتراضيًا دون استدعاء عملية الاختيار .

يمكن إيجاد الحافة رقم i على المسار الأطول من v إلى w باستخدام C = Expose({v,w}) متبوعًا بـ Search( C ) مع Choose المناسب . لتنفيذ Choose، نستخدم متغيرًا عامًا يمثل v ومتغيرًا عامًا يمثل i . يختار Choose المجموعة A معvأ{\displaystyle v\in \partial {A}}إذا كان طولπ(أ){\displaystyle \pi ({\mathcal {A}})}يجب أن يكون طولها على الأقل i . لدعم العملية، يجب الحفاظ على الطول في I.

يمكن صياغة مهمة مماثلة للرسم البياني ذي الحواف ذات الأطوال غير الموحدة. في هذه الحالة، يمكن أن تشير المسافة إلى حافة أو رأس بين حافتين. يمكننا تعريف دالة Choose بحيث تُعاد الحافة المؤدية إلى الرأس في الحالة الأخيرة. يمكن تعريف دالة update لزيادة أطوال جميع الحواف على طول مسار ما بمقدار ثابت. في هذا السيناريو، تُجرى هذه التحديثات في وقت ثابت فقط في المجموعة الجذرية. يلزم استخدام دالة Clean لتوزيع التحديث المؤجل على المجموعات الفرعية. يجب استدعاء دالة Clean قبل استدعاء دالة Choose . للحفاظ على الطول في المجموعة I، يتطلب الأمر في هذه الحالة الحفاظ على الطول الموحد في المجموعة I أيضًا.

يمكن إيجاد مركز الشجرة التي تحتوي على الرأس v من خلال إيجاد إما حافة ثنائية المركز أو حافة يكون مركزها أحد طرفيها. يمكن إيجاد الحافة باستخدام C = Expose({v}) متبوعةً بـ Search( C ) مع Choose المناسب . يختار Choose بين الأبناء A و B معأأب{\displaystyle a\in \partial {A}\cap \partial {B}}الطفل ذو المسافة القصوى الأعلى ( أ ). لدعم هذه العملية، يجب الحفاظ على أقصى مسافة في الشجرة الفرعية للمجموعة من رأس حدودي في I. وهذا يتطلب الحفاظ على طول مسار المجموعة أيضًا.

نتائج وتطبيقات مثيرة للاهتمام

تم تنفيذ عدد من التطبيقات المثيرة للاهتمام، التي كانت تُنفذ في الأصل بطرق أخرى، بسهولة باستخدام واجهة الشجرة العليا. ومن بينها:

  • [سليتور وتارجان 1983]. يمكننا الحفاظ على مجموعة ديناميكية من الأشجار الموزونة فييا(سجلن){\displaystyle {\mathcal {O}}(\log n)}الوقت لكل رابط وقطع، مع دعم الاستعلامات حول أقصى وزن للحافة بين أي رأسين فييا(سجلن){\displaystyle O(\log n)}وقت.
    • مخطط البرهان: يتضمن الحفاظ على أقصى وزن عند كل عقدة ( الأعلىwت{\displaystyle {\max }_{wt}}) على مسار مجموعتها، إذا كانت مجموعة نقطية، فـالأعلىwت(ج){\displaystyle {\max }_{wt}({\mathcal {C}})}يتم تهيئتها كـ-.{\displaystyle -\infty .}عندما تكون المجموعة عبارة عن اتحاد مجموعتين، فإنها تمثل القيمة القصوى للمجموعتين المدمجتين. إذا أردنا إيجاد أقصى قيمة لـ wt بين v و فإننا نقوم بما يلي:ج=هـxصosهـ(v،w)،{\displaystyle {\mathcal {C}}=\mathrm {Expose} (v,w),}وتقديم تقريرالأعلىwت(ج).{\displaystyle {\max }_{wt}({\mathcal {C}}).}
  • [سليتور وتارجان 1983]. في سيناريو التطبيق المذكور أعلاه، يمكننا أيضًا إضافة وزن مشترك x إلى جميع الحواف على مسار معين v · · · w inيا(سجلن){\displaystyle {\mathcal {O}}(\log n)}وقت.
    • مخطط البرهان: نُدخل وزنًا يُسمى إضافي ( C ) ليتم إضافته إلى جميع الحواف فيπ(ج).{\displaystyle \pi ({\mathcal {C}}).}والتي يتم الحفاظ عليها بشكل مناسب  ؛ يتطلب split( C ) أنه لكل مسار فرعي A من C ، نقوم بتعيينالأعلىwت(أ):=الأعلىwت(أ)+هـxترأ(ج){\displaystyle {\max }_{wt}(A):={\max }_{wt}({\mathcal {A}})+\mathrm {extra} ({\mathcal {C}})}وهـxترأ(أ):=هـxترأ(أ)+هـxترأ(ج){\displaystyle \mathrm {extra} ({\mathcal {A}}):=\mathrm {extra} ({\mathcal {A}})+\mathrm {extra} ({\mathcal {C}})}بالنسبة لـ C  := join( A , B )، نُعيّنالأعلىwت(ج):=الأعلى{الأعلىwت(أ)،الأعلىwت(ب)}{\displaystyle {\max }_{wt}({\mathcal {C}}):=\max\{{\max }_{wt}({\mathcal {A}}),{\max }_{wt}({\mathcal {B}})\}}وهـxترأ(ج):=0{\displaystyle \mathrm {extra} ({\mathcal {C}}):=0}وأخيرًا، لإيجاد أقصى وزن على المسار v · · · w ، نضعج:=هـxصosهـ(v،w){\displaystyle {\mathcal {C}}:=\mathrm {Expose} (v,w)}ثم العودةالأعلىwت(ج){\displaystyle {\max }_{wt}({\mathcal {C}})}.
  • [جولدبيرج وآخرون، 1991]. يمكننا طلب الوزن الأقصى في الشجرة الأساسية التي تحتوي على رأس معين v فييا(سجلن){\displaystyle {\mathcal {O}}(\log n)}وقت.
    • مخطط البرهان: يتطلب هذا الاحتفاظ بمعلومات إضافية حول حافة المسار غير العنقودي ذات الوزن الأقصى في عنقود تحت عمليات الدمج والتقسيم.
  • يمكن إيجاد المسافة بين رأسين v و w فييا(سجلن){\displaystyle {\mathcal {O}}(\log n)}الوقتلهـنزتح(هـxصosهـ(v،w)){\displaystyle \mathrm {length} (\mathrm {Expose} (v,w))}.
    • مخطط البرهان: سنحتفظ بطول المسار العنقودي ( C ). يُحتفظ بالطول كأقصى وزن، باستثناء أنه إذا تم إنشاء C عن طريق دمج (دمج)، فإن طول ( C ) هو مجموع الأطوال المخزنة مع مساراته الفرعية.
  • الاستفسارات المتعلقة بقطر الشجرة وصيانتها اللاحقة تستغرقيا(سجلن){\displaystyle {\mathcal {O}}(\log n)}وقت.
  • يمكن الاحتفاظ بالمركز والوسيط من خلال عمليات الربط (الدمج) والقص (التقسيم) والاستعلام عنهما من خلال البحث غير المحلي فييا(سجلن){\displaystyle {\mathcal {O}}(\log n)}وقت.
  • تُستخدم الأشجار العليا في أحدث الخوارزميات لحساب الاتصال الديناميكي ثنائي الحواف . في هذه المسألة، كما هو الحال في الاتصال الديناميكي ، يخضع الرسم البياني لعمليات حذف وإضافة الحواف، بالإضافة إلى الاستعلامات التي تسأل عما إذا كان زوج من الرؤوس متصلًا ثنائي الحواف، أو ما إذا كان هناك جسر يفصل بينهما. يقدم هولم ، ودي ليشتنبرغ، وثورب [ 1 ] خوارزمية حتمية بوقت تحديث مُعدَّل.يا(سجل4ن){\displaystyle O(\log ^{4}n)}، ويا(سجلن/سجلسجلن){\displaystyle O(\log n/\log \log n)}وقت الاستعلام. وقد حسّن العمل اللاحق الذي قام به هولم وروتنبرغ وثورب هذا إلى وقت تحديث مُستهلك قدرهيا(سجل2نسجل2سجلن){\displaystyle O(\log ^{2}n\log ^{2}\log n)}، وكذلك باستخدام الأشجار العليا [ 2 ] [ 3 ]
  • يمكن الحفاظ على الرسم البياني مما يسمح بتحديث مجموعة الحواف وطرح استعلامات حول اتصال الرؤوس من الدرجة الثانية. التعقيد المُستهلك للتحديثات هويا(سجل5ن){\displaystyle O(\log ^{5}n)}يمكن تنفيذ الاستعلامات بشكل أسرع. الخوارزمية ليست بسيطة.أنا(ج){\displaystyle I({\mathcal {C}})}الاستخداماتΘ(سجل2ن){\displaystyle \Theta (\log ^{2}n)}[ 4 ] مساحة.
  • يمكن استخدام الأشجار العليا لضغط الأشجار بطريقة لا تقل سوءًا عن ضغط DAG ، بل قد تكون أفضل بشكل كبير. [ 5 ]

تطبيق

تم تنفيذ الأشجار العليا بطرق متنوعة، بعضها يتضمن التنفيذ باستخدام تقسيم متعدد المستويات (الأشجار العليا وخوارزميات الرسم البياني الديناميكي جاكوب هولم وكريستيان دي ليشتنبرغ. تقرير فني)، وحتى باستخدام أشجار سليتور-تارجان st (عادة مع حدود زمنية مستهلكة)، وأشجار فريدريكسون الطوبولوجية (مع حدود زمنية في أسوأ الحالات) (ألستروب وآخرون. الحفاظ على المعلومات في الأشجار الديناميكية بالكامل باستخدام الأشجار العليا).

تتميز التطبيقات المُستهلكة ببساطتها، ومعاملات التعقيد الزمني فيها ضئيلة. في المقابل، تسمح تطبيقات أسوأ الحالات بتسريع الاستعلامات عن طريق إيقاف تحديثات المعلومات غير الضرورية أثناء الاستعلام (باستخدام تقنيات الثبات ). بعد إتمام الاستعلام، تُستخدم الحالة الأصلية للشجرة العليا ويتم تجاهل نسخة الاستعلام.

استخدام التقسيم متعدد المستويات

يمكن تمثيل أي تقسيم لمجموعات شجرة T بواسطة شجرة تقسيم المجموعات CPT(تي)،{\displaystyle ({\mathcal {T}}),}عن طريق استبدال كل مجموعة في الشجرة T بحافة. ​​إذا استخدمنا استراتيجية P لتقسيم فإن CPT ستكون CPT Pتي.{\displaystyle {\mathcal {T}}.}يتم ذلك بشكل متكرر حتى لا يتبقى سوى حافة واحدة.

سنلاحظ أن جميع عقد الشجرة العليا المقابلة{\displaystyle \Re }تُربط هذه النقاط بشكل فريد بحواف هذا التقسيم متعدد المستويات. قد توجد بعض الحواف في التقسيم متعدد المستويات لا تُقابل أي عقدة في الشجرة العليا، وهذه هي الحواف التي تُمثل فرعًا واحدًا فقط في المستوى الأدنى، أي مجموعة بسيطة. فقط الحواف التي تُقابل مجموعات مركبة تُقابل عقدًا في الشجرة العليا..{\displaystyle \Re .}

تُعدّ استراتيجية التقسيم مهمة عند تقسيم الشجرة T إلى مجموعات. فالاستراتيجية الدقيقة وحدها هي التي تضمن لنا الوصول إلى نتيجة مُرضية.يا(سجلن){\displaystyle {\mathcal {O}}(\log n)}ارتفاع التقسيم متعدد المستويات (وبالتالي الشجرة العليا).

  • ينبغي أن ينخفض ​​عدد الحواف في المستويات اللاحقة بمعامل ثابت.
  • إذا تم تغيير مستوى أدنى بواسطة تحديث، فيجب أن نكون قادرين على تحديث المستوى الذي يعلوه مباشرة باستخدام عدد ثابت على الأكثر من عمليات الإضافة والحذف.

تضمن استراتيجية التقسيم المذكورة أعلاه الحفاظ على الشجرة العليا في يا(سجلن){\displaystyle {\mathcal {O}}(\log n)}وقت.

انظر أيضاً

مراجع

  • ستيفن ألستروب، جاكوب هولم، كريستيان دي ليشتنبرغ، وميكيل ثوروب ، الحفاظ على المعلومات في الأشجار الديناميكية بالكامل مع الأشجار العليا ، معاملات 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.
  1. هولم، ج.؛ دي ليشتنبرغ، ك.؛ ثورب، م. (2001). "خوارزميات حتمية متعددة اللوغاريتمات ديناميكية بالكامل للاتصال، والشجرة الممتدة الدنيا، والحافة الثنائية، والاتصال الثنائي". مجلة ACM . 48 (4): 723. doi : 10.1145/502090.502095 . S2CID 7273552 . 
  2. ثورب، ميكيل (2000)، "اتصال الرسم البياني الديناميكي الكامل شبه الأمثل"، وقائع الندوة السنوية الثانية والثلاثين لجمعية آلات الحوسبة (ACM) حول نظرية الحوسبة
  3. ^ هولم ، يعقوب. روتنبرغ، إيفا؛ ثوروب، ميكيل (2018)، “إيجاد الجسور الديناميكية فييا~(سجل2ن){\displaystyle {\tilde {O}}(\log ^{2}n)}"الوقت المستهلك"، وقائع الندوة السنوية التاسعة والعشرين لجمعية آلات الحوسبة والجمعية الدولية للرياضيات التطبيقية حول الخوارزميات المنفصلة، ​​SODA 2018 ، doi : 10.1137/1.9781611975031.3 ، S2CID 33964042 
  4. هولم، ج.؛ دي ليشتنبرغ، ك.؛ ثورب، م. (2001). "خوارزميات حتمية متعددة اللوغاريتمات ديناميكية بالكامل للاتصال، والشجرة الممتدة الدنيا، والحافة الثنائية، والاتصال الثنائي". مجلة ACM . 48 (4): 723. doi : 10.1145/502090.502095 . S2CID 7273552 . 
  5. بيل، فيليب؛ غورتز، إنجي لي؛ لانداو، جاد م.؛ وايمان، أورين (2015). "ضغط الشجرة باستخدام الأشجار العليا". معلومات وحوسبة . 243 : 166-177 . arXiv : 1304.5702 . doi : 10.1016/j.ic.2014.12.012 .