شجرة m -ary

في نظرية المخططات ، تُعرف الشجرة من الرتبة m (حيث m عدد صحيح غير سالب ) (وتُعرف أيضًا بالشجرة من الرتبة n أو k أو k - way أو الشجرة العامة ) بأنها شجرة متفرعة (أو، كما يسميها بعض الباحثين، شجرة مرتبة ) [ 1 ] [ 2 ] لا يزيد عدد الأبناء في كل عقدة فيها عن m . تُعد الشجرة الثنائية حالة مهمة حيث m = 2؛ وبالمثل، تُعد الشجرة الثلاثية حالة حيث m = 3.
أنواع الأشجار من النوع m
- الشجرة الكاملة من الرتبة m هي شجرة من الرتبة m حيث تحتوي كل عقدة في كل مستوى على 0 أو m من الأبناء.
- الشجرة الكاملة من النوع m [ 3 ] [ 4 ] (أو، بشكل أقل شيوعًا، الشجرة المثالية من النوع m [ 5 ] ) هي شجرة كاملة من النوع m تكون فيها جميع العقد الورقية على نفس العمق.
خصائص الأشجار من الرتبة m
- بالنسبة لشجرة من الرتبة m ذات ارتفاع h ، فإن الحد الأعلى لأقصى عدد من الأوراق هو.
- لا يشمل ارتفاع الشجرة m - ary العقدة الجذرية، حيث أن الشجرة التي تحتوي على عقدة جذرية فقط يكون ارتفاعها 0.
- ارتفاع الشجرة يساوي أقصى عمق D لأي عقدة في الشجرة.
- إجمالي عدد العقدفي شجرة كاملة من الرتبة m يكونبينما الارتفاع h هو
بحسب تعريف Big-Ω، فإن أقصى عمق
- ارتفاع شجرة كاملة من الرتبة m ذات n عقدة هو.
- العدد الإجمالي للأشجار الممكنة من الرتبة m ذات n عقدة هو (وهو رقم كاتالوني ). [ 6 ]
طرق اجتياز الأشجار المتعددة
يُشبه اجتياز شجرة من الرتبة m اجتياز شجرة ثنائية. في الترتيب المسبق، ينتقل الاجتياز إلى العقدة الأب، ثم الشجرة الفرعية اليسرى، ثم الشجرة الفرعية اليمنى. أما في الترتيب اللاحق، فينتقل الاجتياز إلى الشجرة الفرعية اليسرى، ثم الشجرة الفرعية اليمنى، ثم العقدة الأب. وللاجتياز بالترتيب الداخلي، ولأن عدد الأبناء لكل عقدة يزيد عن اثنين (حيث m > 2) ، يجب تحديد مفهومي الشجرة الفرعية اليسرى والشجرة الفرعية اليمنى . إحدى الطرق الشائعة لإنشاء الشجرتين الفرعيتين هي تقسيم قائمة العقد الأبناء إلى مجموعتين. بتحديد ترتيب للأبناء m لعقدة ما، فإن أولًا ستشكل العقد الشجرة الفرعية اليسرى وستشكل العقد الشجرة الفرعية اليمنى.
تحويل شجرة من النوع m إلى شجرة ثنائية

يُعدّ استخدام المصفوفة لتمثيل شجرة متعددة الفروع غير فعال، لأن معظم العقد في التطبيقات العملية تحتوي على أقل من m فرع. ونتيجةً لذلك، ينتج عن هذه الحقيقة مصفوفة متفرقة ذات مساحة كبيرة غير مستخدمة في الذاكرة. إن تحويل أي شجرة متعددة الفروع إلى شجرة ثنائية لن يؤدي إلا إلى زيادة ارتفاع الشجرة بمعامل ثابت، ولن يؤثر على تعقيد الوقت الإجمالي في أسوأ الحالات. بعبارة أخرى،منذ.
أولًا، نربط جميع العقد الفرعية المباشرة لعقدة أب معينة معًا لتكوين قائمة روابط. ثم نحتفظ بالرابط من الأب إلى الابن الأول (أي الأيسر) ونزيل جميع الروابط الأخرى إلى بقية الأبناء. نكرر هذه العملية لجميع الأبناء (إن وجدوا) حتى ننتهي من معالجة جميع العقد الداخلية وندير الشجرة 45 درجة باتجاه عقارب الساعة. الشجرة الناتجة هي الشجرة الثنائية المطلوبة المستخرجة من الشجرة m -ary المعطاة.
طرق تخزين الأشجار من الرتبة m
المصفوفات

يمكن أيضًا تخزين الأشجار من الرتبة m بترتيب البحث العرضي أولًا كبنية بيانات ضمنية في المصفوفات ، وإذا كانت الشجرة كاملة من الرتبة m ، فإن هذه الطريقة لا تهدر أي مساحة. في هذا الترتيب المُختصر، إذا كان للعقدة فهرس i ، فسيتم العثور على ابنها رقم c في النطاق {1، ...، m } عند الفهرس i.، بينما يوجد الأصل (إن وجد) في الفهرس(بافتراض أن الجذر له فهرس صفر، أي مصفوفة تبدأ من الصفر). تتميز هذه الطريقة بتخزين أكثر إحكامًا وموقع مرجعي أفضل ، خاصةً أثناء اجتياز الترتيب المسبق. التعقيد المكاني لهذه الطريقة هو.
قائم على المؤشر
تحتوي كل عقدة على مصفوفة داخلية لتخزين مؤشرات لكل منهاأطفال:

بالمقارنة مع التنفيذ القائم على المصفوفات، تتميز طريقة التنفيذ هذه بتعقيد مكاني فائق..
تعداد الأشجار المتعددة
يُعدّ سرد جميع الأشجار الممكنة من الرتبة m مفيدًا في العديد من المجالات كوسيلة للتحقق من الفرضيات أو النظريات. ويمكن لتمثيل كائنات الشجرة من الرتبة m تمثيلًا صحيحًا أن يُبسّط عملية التوليد بشكل كبير. يُمكن إنشاء تمثيل تسلسلي ثنائي باستخدام البحث العميق أولًا لشجرة من الرتبة m ذات n عقدة، حيث يُشير وجود عقدة عند فهرس مُحدد باستخدام القيم الثنائية. على سبيل المثال، يُمثل التسلسل الثنائي x=1110000100010001000 شجرة من الرتبة 3 ذات n=6 عقدة كما هو موضح أدناه.

تكمن مشكلة هذا التمثيل في أن سرد جميع سلاسل البتات بترتيب معجمي يعني أن سلسلتين متتاليتين قد تمثلان شجرتين مختلفتين معجميًا بشكل كبير. لذلك، فإن تعداد السلاسل الثنائية لا يؤدي بالضرورة إلى توليد مرتب لجميع الأشجار متعددة الحدود. [ 7 ] يعتمد التمثيل الأفضل على سلسلة أعداد صحيحة تشير إلى عدد الأصفار بين كل واحد متتالٍ، والمعروفة باسم متتالية الأصفار البسيطة .هو تسلسل أصفار بسيط يتوافق مع تسلسل البتاتحيث يمثل j عدد الأصفار اللازمة في نهاية التسلسل لجعل السلسلة ذات الطول المناسب. على سبيل المثال،يمثل الشكل أعلاه تمثيلاً بسيطاً لتسلسل الأصفار. أما التمثيل الأكثر اختصاراً للرقم 00433 فهووهذا ما يُسمى بالتسلسل الصفري ، حيث لا يمكن أن تكون القواعد المكررة متجاورة. يسمح هذا التمثيل الجديد بإنشاء تسلسل صالح تالٍ فيتكون متتالية الأصفار البسيطة صالحة إذا بمعنى آخر، لا يمكن أن يتجاوز عدد الأصفار في تسلسل البتات لشجرة من الرتبة m العدد الإجمالي للمؤشرات الفارغة (أي المؤشرات التي لا ترتبط بها أي عقدة فرعية). هذا الجمع يفرض قيدًا علىالعقد بحيث يكون هناك مجال لإضافةدون إنشاء بنية غير صالحة (أي وجود مؤشر فارغ متاح لربط العقدة الأخيرة به).
يوضح الجدول أدناه قائمة بجميع متواليات الصفر البسيطة الصالحة لجميع الأشجار الثلاثية ذات 4 عقد:
| 222 | 200 | 111 | 033 | 013 |
| 221 | 132 | 110 | 032 | 012 |
| 220 | 131 | 105 | 031 | 011 |
| 213 | 130 | 104 | 030 | 010 |
| 212 | 123 | 103 | 024 | 006 |
| 211 | 122 | 102 | 023 | 005 |
| 210 | 121 | 101 | 022 | 004 |
| 204 | 120 | 100 | 021 | 003 |
| 203 | 114 | 042 | 020 | 002 |
| 202 | 113 | 041 | 015 | 001 |
| 201 | 112 | 040 | 014 | ٠٠٠ |
ابتداءً من أسفل يمين الجدول (أي "000")، يوجد قالب أساسي يتحكم في إنشاء الأشجار المرتبة الممكنة بدءًا من "000" إلى "006". يظهر أدناه القالب الأساسي لهذه المجموعة ("00X")، حيث تمت إضافة عقدة إضافية في المواضع المُشار إليها بـ "x".

بمجرد استنفاد جميع المواضع الممكنة في قالب العمود الفقري، سيتم إنشاء قالب جديد عن طريق تحريك العقدة الثالثة موضعًا واحدًا إلى اليمين كما هو موضح أدناه، وسيحدث نفس التعداد حتى يتم استنفاد جميع المواضع الممكنة التي تحمل علامة "X".

بالعودة إلى جدول تعداد جميع الأشجار من الرتبة m ، حيثويمكننا بسهولة ملاحظة القفزة الواضحة من "006" إلى "010" والتي يمكن تفسيرها بشكل بسيط بطريقة حسابية كما هو موضح أدناه:

يُعطى أدناه الكود الزائف لهذا التعداد: [ 7 ]
الإجراء NEXT( s1 , s2 , …, sn - 1 ) إذا كان si = 0 لجميع قيم i ، فإن انتهى وإلا فإن i ← max { i | s i > 0}، و s i ← s i − 1. إذا كان i < n − 1، فإن s i ← ( i + 1) ⋅ ( m − 1) − sum( s j ). نهاية الشرط. من أجل j ← i + 2، i + 3، …، n − 1 ، فإن s j ← k − 1. نهاية الشرط .التعداد بدون حلقات
خوارزمية توليد تأخذيُطلق على أسوأ حالات الوقت اسم "الوقت غير الحلقي" لأن تعقيد الوقت لا يتضمن حلقة أو استدعاء ذاتي. ويُقال إن تعداد الأشجار من الرتبة m غير حلقي إذا كان، بعد التهيئة، يُولّد كائنات شجرية متتالية فيبالنسبة لشجرة m- ary معينة T معكونها إحدى عقدها وإنهالطفل رقم -th، دوران يساري عنديتم ذلك عن طريق صنعالعقدة الجذرية، وجعل وجميع فروعها هي أبناء لـبالإضافة إلى ذلك، نقوم بتعيينترك معظم أطفاللوالطفل الأكثر يمينًا منيبقى ملتصقاً به بينماتمت ترقيته إلى الجذر، كما هو موضح أدناه:

حوّل شجرة من الرتبة m إلى شجرة يسارية من أجل i = 1... n : من أجل t = 2... m : طالما أن t ابن للعقدة عند العمق i ≠ 1: دوران Lt عند العقد على عمق i نهاية بينما نهاية ل نهاية ل
الدوران t -right عند النقطة d هو عكس هذه العملية. السلسلة اليسرى من T هي سلسلة منالعقد بحيثهو الجذر وجميع العقد باستثناءيكون لديهم طفل واحد متصل بأقصى اليسار (أي،مؤشر ) يمكن تحويل أي شجرة متعددة الفروع إلى شجرة سلسلة يسارية باستخدام سلسلة من عمليات الدوران اليسارية المحدودة من t ، حيث t من 2 إلى m . وبالتحديد، يمكن القيام بذلك عن طريق إجراء عمليات دوران يسارية على كل عقدة.حتى كلتصبح الشجرة الفرعية فارغة عند كل عمق. ثم، يُشار إلى تسلسل عدد عمليات الدوران اليسرى-t التي تُجرى عند العمق i بـيحدد كلمة رمزية لشجرة m- ary يمكن استعادتها عن طريق إجراء نفس تسلسل عمليات الدوران من اليمين إلى اليمين.
دعمجموعة منيمثل عدد دورات L-2 ، ودورات L-3 ، ...، ودورات Lm التي حدثت عند الجذر (أي، i = 1). ثم،يمثل عدد دورات Lt المطلوبة عند العمق i .
يُعدّ حساب عدد الدورانات اليسارية عند كل عمق طريقةً لترميز شجرة من الرتبة m . وبالتالي، فإنّ حصر جميع الترميزات القانونية الممكنة يُساعدنا على توليد جميع أشجار الرتبة m لقيم m و n مُعطاة . ولكن، ليس كلتمثل متواليات من m أعداد صحيحة غير سالبة شجرةً صالحةً من الرتبة m. متوالية منالأعداد الصحيحة غير السالبة تمثل تمثيلاً صحيحاً لشجرة متعددة الفروع إذا وفقط إذا [ 8 ]
أصغر تمثيل معجمي للكلمة المشفرة لـ m-ary مع n عقدة هو جميع الأصفار وأكبرها هو n −1 واحد متبوعًا بـ m −1 صفر على يمينه.
تهيئة c[i] إلى الصفر لجميع قيم i من 1 إلى n ⋅( k − 1) يتم تعيين p[i] إلى n − 1 لـ i من 1 إلى n، ويكون المجموع ← 0، ويكون j ← m − 1 شرط الإنهاء: يتم الإنهاء عندما يكون c[1] = n − 1 الإجراء التالي [ 8 ] المجموع ← المجموع + 1 − ج [ ج + 1] ج [ج] ← ج [ ج ] + 1 إذا كان ص [ ق [ ج ]] > ص [ ق [ ج + 1]] + 1 فإن ص [ ق [ ج ]] ← ص [ ق [ ج + 1]] + 1 نهاية إذا ص [ ق [ ج + ج [ ج ] ]] ← ص [ ق [ ج ]] ج [ ج + 1] ← 0 إذا كان المجموع = ص [ ق [ ج ]] فإن ج ← ج − 1 وإلا فإن ص [ ن ] ← المجموع ج ← م − 1 نهاية إذا نهاية
طلب
من تطبيقات الشجرة متعددة السلاسل (m -ary tree) إنشاء قاموس للتحقق من صحة السلاسل النصية المقبولة. وللقيام بذلك، نفرض أن m يساوي عدد الأحرف الأبجدية الصحيحة (مثل عدد أحرف الأبجدية الإنجليزية )، وأن جذر الشجرة يمثل نقطة البداية. وبالمثل، يمكن أن يحتوي كل فرع من فروع الشجرة على m فرعًا يمثل كل منها الحرف التالي المحتمل في السلسلة النصية. وبالتالي، يمكن للأحرف على طول المسارات أن تمثل مفاتيح صحيحة بتحديد الحرف الأخير من المفاتيح كعقدة طرفية. على سبيل المثال، في المثال أدناه، "at" و"and" هما سلسلتان نصيتان صحيحتان، حيث تم تحديد "t" و"d" كعقد طرفية. يمكن للعقد الطرفية تخزين معلومات إضافية تُربط بمفتاح معين. توجد طرق مشابهة لإنشاء مثل هذا القاموس باستخدام شجرة B ، أو شجرة ثمانية (Octree) ، أو شجرة ثلاثية (Trie) .

انظر أيضاً
مراجع
- ↑ لي، ليوو (1998). جافا: هياكل البيانات والبرمجة . القسم 8.1.2.1، الأشجار متعددة الفروع : سبرينغر. doi : 10.1007/978-3-642-95851-9 . ISBN 978-3-642-95853-3. S2CID 708416 . تم الاسترجاع في 20 يوليو 2023 .
{{cite book}}: CS1 maint: location ( link ) - ↑ ستانلي، ريتشارد ب. (2011). التوافقية العددية، المجلد الأول . الملحق: مصطلحات نظرية الرسم البياني: مطبعة جامعة كامبريدج. ص 573. ISBN 978-1-107-60262-5تم الاطلاع عليه بتاريخ 20 يوليو 2023 .
- ↑ غروس، جوناثان ل.؛ يلين، جاي؛ أندرسون، مارك (2018). نظرية الرسوم البيانية وتطبيقاتها (الطبعة الثالثة ). القسم 3.2، الأشجار الجذرية، والأشجار المرتبة، والأشجار الثنائية : مطبعة سي آر سي. ص 132. ISBN 978-1-4822-4948-4.
{{cite book}}: CS1 maint: location ( link ) - ↑ كورمن، توماس هـ.؛ ليسرسون، تشارلز إي.؛ ريفست، رونالد ل.؛ شتاين، كليفورد (2022). مقدمة في الخوارزميات ( الطبعة الرابعة). القسم ب.5.3، الأشجار الثنائية والموضعية : مطبعة معهد ماساتشوستس للتكنولوجيا. ص 1174. ISBN 9780262046305تم الاطلاع عليه بتاريخ 20 يوليو 2023 .
{{cite book}}: CS1 maint: location ( link ) - ↑ شوماخر، باتريك (2012). "رحلة: نظرية الشبكات". التكوين الذاتي للعمارة: أجندة جديدة للعمارة، المجلد الثاني . وايلي. ص 103. ISBN 978-0-470-66616-6.
- ↑ غراهام، رونالد ل .؛ كنوت، دونالد إي .؛ باتاشنيك، أورين (1994). الرياضيات الملموسة: أساس لعلوم الحاسوب ( الطبعة الثانية). معهد الفيزياء الأمريكي.
- 1 2 بارونايجين، دومينيك رولانتس فان (2000). "توليد أشجار K-ary بدون حلقات". مجلة الخوارزميات . 35 (1): 100-107 . doi : 10.1006/jagm.1999.1073 .
- 1 2 كورش، جيمس ف. (1994). "توليد متواليات الأشجار من الرتبة k بدون حلقات". رسائل معالجة المعلومات . 52 (5). إلسيفير: 243-247 . doi : 10.1016/0020-0190(94)00149-9 .
- ستورر، جيمس أ. (2001). مقدمة في هياكل البيانات والخوارزميات . بيركهاوزر بوسطن. ISBN 3-7643-4253-6.
روابط خارجية
- الأشجار N -ary، برونو ر. بريس، دكتوراه، P.Eng.
- الأشجار (نظرية الرسم البياني)
- الأشجار (هياكل البيانات)
