شجرة البحث الثنائية المثلى
في علم الحاسوب ، تُعرف شجرة البحث الثنائية المثلى (Optimal BST) ، والتي تُسمى أحيانًا شجرة ثنائية متوازنة الأوزان ، [ 1 ] بأنها شجرة بحث ثنائية تُوفر أقل وقت بحث ممكن (أو وقت بحث متوقع ) لتسلسل معين من عمليات الوصول (أو احتمالات الوصول). تُقسم أشجار البحث الثنائية المثلى عمومًا إلى نوعين: ثابتة وديناميكية.
في مسألة الأمثلية الثابتة ، لا يمكن تعديل الشجرة بعد إنشائها. في هذه الحالة، يوجد تخطيط محدد لعقد الشجرة يوفر أقل وقت بحث متوقع لاحتمالات الوصول المعطاة. توجد خوارزميات متنوعة لإنشاء أو تقريب الشجرة المثلى ثابتًا بناءً على معلومات احتمالات الوصول إلى العناصر.
في مسألة الأمثلية الديناميكية ، يمكن تعديل الشجرة في أي وقت، عادةً عن طريق السماح بتدويرها . يُفترض أن للشجرة مؤشرًا يبدأ من الجذر، يمكنه تحريكه أو استخدامه لإجراء التعديلات. في هذه الحالة، يوجد تسلسل ذو تكلفة دنيا لهذه العمليات، مما يجعل المؤشر يزور كل عقدة في تسلسل الوصول المستهدف بالترتيب. يُفترض أن للشجرة المتفرعة نسبة تنافسية ثابتة مقارنةً بالشجرة المثلى ديناميكيًا في جميع الحالات، على الرغم من أن هذا لم يُثبت بعد.
الأمثلية الثابتة
تعريف
في مسألة الأمثلية الساكنة كما حددها كنوت ، [ 2 ] لدينا مجموعة من n عنصرًا مرتبًا ومجموعة منالاحتمالات. سنرمز للعناصرخلالوالاحتمالاتخلالوخلال.هل احتمال إجراء بحث عن عنصر ما هو(أو بحث ناجح ). [ 3 ] لـ،هل احتمال إجراء بحث عن عنصر بينو(أو بحث غير ناجح )، [ 3 ]هل احتمال إجراء بحث عن عنصر أقل من قيمة معينة؟، وهل احتمال إجراء بحث عن عنصر أكبر من. هؤلاءتشمل الاحتمالات جميع عمليات البحث الممكنة، وبالتالي فإن مجموعها يساوي واحدًا.
تُعرف مسألة الأمثلية الثابتة بأنها مسألة تحسين لإيجاد شجرة البحث الثنائية التي تقلل من متوسط وقت البحث، مع الأخذ في الاعتبارالاحتمالات. بما أن عدد الأشجار الممكنة على مجموعة من n عنصرًا هو[ 2 ] وهو أسي في n ، فإن البحث بالقوة الغاشمة ليس حلاً ممكناً في العادة.
خوارزمية البرمجة الديناميكية لكنوث
في عام 1971، نشر كنوت خوارزمية برمجة ديناميكية بسيطة نسبيًا قادرة على بناء الشجرة المثلى إحصائيًا في زمن O ( n² ) فقط. [ 2 ] في هذا العمل، قام كنوت بتوسيع وتحسين خوارزمية البرمجة الديناميكية التي قدمها إدغار جيلبرت وإدوارد ف. مور في عام 1958. [ 4 ] تطلبت خوارزمية جيلبرت ومورالوقت وتم تصميم هذه المساحة لحالة خاصة من إنشاء أشجار البحث الثنائية المثلى (المعروفة باسم مشكلة الشجرة الأبجدية المثلى [ 5 ] ) والتي لا تأخذ في الاعتبار سوى احتمالية عمليات البحث غير الناجحة، أي. اعتمد عمل كنوت على الرؤية التالية: تُظهر مشكلة الأمثلية الثابتة بنية فرعية مثالية ؛ أي إذا كانت شجرة معينة مثالية بشكل ثابت لتوزيع احتمالي معين، فيجب أن تكون الأشجار الفرعية اليسرى واليمنى مثالية بشكل ثابت أيضًا لمجموعاتها الفرعية المناسبة من التوزيع (المعروفة باسم خاصية الرتابة للجذور).
لتوضيح ذلك، انظر إلى ما يسميه كنوت "طول المسار الموزون" للشجرة. طول المسار الموزون لشجرة مكونة من n عنصرًا هو مجموع أطوال جميعمسارات البحث الممكنة، مُرجّحة باحتمالاتها الخاصة. الشجرة ذات أقصر طول مسار مُرجّح هي، بحكم التعريف، الأمثل إحصائيًا.
لكن لأطوال المسارات الموزونة خاصية مثيرة للاهتمام. لنفترض أن E هو طول المسار الموزون لشجرة ثنائية، وEL هو طول المسار الموزون لشجرتها الفرعية اليسرى، و ER هو طول المسار الموزون لشجرتها الفرعية اليمنى. ولنفترض أيضًا أن W هو مجموع جميع الاحتمالات في الشجرة. لاحظ أنه عند ربط أي من الشجرتين الفرعيتين بالجذر، يزداد عمق كل عنصر من عناصره (وبالتالي كل مسار من مسارات البحث فيه) بمقدار واحد. لاحظ أيضًا أن عمق الجذر نفسه يساوي واحدًا. هذا يعني أن الفرق في طول المسار الموزون بين الشجرة وشجرتيها الفرعيتين هو بالضبط مجموع كل احتمال في الشجرة، مما يؤدي إلى العلاقة التكرارية التالية:
يؤدي هذا التكرار إلى حل طبيعي للبرمجة الديناميكية. لنفترضليكن طول المسار الموزون لشجرة البحث المثلى إحصائياً لجميع القيم بين a i و a j ، ولتكنليكن الوزن الإجمالي لتلك الشجرة، وليكنليكن فهرس جذرها. يمكن بناء الخوارزمية باستخدام الصيغ التالية:
إن التنفيذ الساذج لهذه الخوارزمية يستغرق في الواقع O ( n 3 ) من الوقت، لكن ورقة كنوت تتضمن بعض الملاحظات الإضافية التي يمكن استخدامها لإنتاج خوارزمية معدلة تستغرق O ( n 2 ) من الوقت فقط.
بالإضافة إلى خوارزمية البرمجة الديناميكية، اقترح كنوت قاعدتين استدلاليتين لإنتاج أشجار بحث ثنائية شبه مثالية . وكانت دراسة أشجار البحث الثنائية شبه المثالية ضرورية لأن تعقيد الوقت والمساحة في خوارزمية كنوت قد يكون باهظًا عندماكبير بشكل ملحوظ. [ 6 ]
يمكن النظر إلى قواعد كنوت على النحو التالي:
- القاعدة الأولى (الجذر الأقصى): ضع الاسم الأكثر تكرارًا في جذر الشجرة، ثم تابع بالمثل على الأشجار الفرعية.
- القاعدة الثانية (التقسيم الثنائي): اختر الجذر بحيث يتم مساواة الوزن الإجمالي للشجرة الفرعية اليسرى واليمنى قدر الإمكان، ثم تابع بالمثل على الأشجار الفرعية.
تُنفذ طرق كنوت الاستدلالية أشجار البحث الثنائية شبه المثلى فيالوقت والفضاء. وقد اقترح كورت ميلهورن تحليلًا إضافيًا حول مدى بُعد طرق كنوت الاستدلالية عن الحل الأمثل . [ 6 ]
خوارزمية ميلهورن التقريبية
في حين أن الوقت O ( n 2 ) الذي تستغرقه خوارزمية كنوت أفضل بكثير من الوقت الأسي المطلوب للبحث بالقوة الغاشمة، إلا أنه لا يزال بطيئًا جدًا ليكون عمليًا عندما يكون عدد العناصر في الشجرة كبيرًا جدًا.
في عام 1975، نشر كورت ميلهورن بحثًا يُثبت خصائص مهمة تتعلق بقواعد كنوت. تُشير نتائج ميلهورن الرئيسية إلى أن قاعدة واحدة فقط من قواعد كنوت الاستدلالية (القاعدة الثانية) تُنتج دائمًا أشجار بحث ثنائية شبه مثالية. من ناحية أخرى، قد تؤدي قاعدة الجذر الأقصى في كثير من الأحيان إلى أشجار بحث "سيئة" للغاية استنادًا إلى الحجة البسيطة التالية. [ 6 ]
يترك
و
مع الأخذ في الاعتبار طول المسار المرجحمن الشجرة التي تم إنشاؤها بناءً على التعريف السابق، لدينا ما يلي:
وبالتالي، ستكون الشجرة الناتجة عن قاعدة الجذر الأقصى شجرة تنمو فقط على الجانب الأيمن (باستثناء أعمق مستوى في الشجرة)، وسيحتوي الجانب الأيسر دائمًا على عقد طرفية. ويبلغ طول مسار هذه الشجرة حدًا معينًا.وعند مقارنتها بشجرة بحث متوازنة (ذات مسار محدود بـ[ 6 ] )، سيكون أداؤها أسوأ بكثير لنفس توزيع التردد.
بالإضافة إلى ذلك، قام ميلهورن بتحسين عمل كنوت وقدم خوارزمية أبسط بكثير تستخدم القاعدة الثانية وتقارب أداء الشجرة المثلى إحصائيًا في وقت قصير جدًا .[ 6 ] تتبع الخوارزمية نفس فكرة قاعدة التنصيف ، حيث تختار جذر الشجرة لتحقيق توازن دقيق بين الوزن الإجمالي (باحتمالية) للأشجار الفرعية اليسرى واليمنى. ثم تُطبق هذه الاستراتيجية بشكل متكرر على كل شجرة فرعية.
يمكن ملاحظة أن هذه الاستراتيجية تُنتج تقريبًا جيدًا بشكل بديهي من خلال ملاحظة أن أوزان الأشجار الفرعية على طول أي مسار تُشكل ما يُقارب تسلسلًا متناقصًا هندسيًا. في الواقع، تُنتج هذه الاستراتيجية شجرةً يكون طول مسارها الموزون على الأكثر
حيث H هي إنتروبيا توزيع الاحتمال. بما أنه لا يمكن لأي شجرة بحث ثنائية مثالية أن تحقق أداءً أفضل من طول مسار مرجح قدره
هذا التقريب دقيق للغاية. [ 6 ]
خوارزميات هو تاكر وجارسيا واكس
في الحالة الخاصة التي يكون فيها كلإذا كانت القيم صفرًا، فيمكن إيجاد الشجرة المثلى في وقتأُثبت ذلك لأول مرة من قِبل تي سي هو وآلان تاكر في ورقة بحثية نشراها عام ١٩٧١. وقد قام غارسيا وواكس بتبسيط هذه الخوارزمية لاحقًا، وهي خوارزمية غارسيا-واكس ، التي تُجري المقارنات نفسها بالترتيب نفسه. تعتمد الخوارزمية على استخدام خوارزمية جشعة لبناء شجرة ذات ارتفاع مثالي لكل ورقة، ولكن بترتيب غير صحيح، ثم بناء شجرة بحث ثنائية أخرى بنفس الارتفاعات. [ ٧ ]
مثال على مقتطف من التعليمات البرمجية
تحدد مقتطفات التعليمات البرمجية التالية شجرة بحث ثنائية مثالية عند إعطاء مجموعة من المفاتيح وقيم احتمالية أن يكون المفتاح هو مفتاح البحث:
public static float calculateOptimalSearchTree(int numNodes, float[] probabilities, int[][] roots) { float[][] costMatrix = new float[numNodes + 2][numNodes + 1]; for (int i = 1; i <= numNodes; i++) { costMatrix[i][i - 1] = 0; costMatrix[i][i] = probabilities[i]; roots[i][i] = i; roots[i][i - 1] = 0; } for (int diagonal = 1; diagonal <= numNodes; diagonal++) { for (int i = 1; i <= numNodes - diagonal; i++) { int j = i + diagonal; costMatrix[i][j] = findMinCost(costMatrix, i, j) + sumProbabilities(probabilities, i, j); // ملاحظة: لم يتم تعيين قيمة roots[i][j]، ويجب إصلاح ذلك إذا كنت تريد // لإعادة بناء الشجرة. } } أعد costMatrix[1][numNodes]؛ }الأمثلية الديناميكية
تعريف
توجد عدة تعريفات مختلفة للأمثلية الديناميكية، وكلها متكافئة فعليًا ضمن عامل ثابت من حيث زمن التشغيل. [ 8 ] طُرحت هذه المشكلة ضمنيًا لأول مرة من قِبل سليتور وتارجان في ورقتهم البحثية حول الأشجار المتفرعة ، [ 9 ] لكن ديمين وآخرون قدموا صياغة رسمية جيدة جدًا لها. [ 8 ]
في مسألة الأمثلية الديناميكية، لدينا سلسلة من عمليات الوصول x 1 ، ... ، x m على المفاتيح 1 ، ... ، n. لكل عملية وصول، لدينا مؤشر إلى جذر شجرة البحث الثنائية الخاصة بنا ويمكننا استخدام المؤشر لتنفيذ أي من العمليات التالية:
- انقل المؤشر إلى الابن الأيسر للعقدة الحالية.
- انقل المؤشر إلى الابن الأيمن للعقدة الحالية.
- انقل المؤشر إلى العنصر الأصل للعقدة الحالية.
- قم بإجراء دوران واحد على العقدة الحالية وعقدتها الأصلية.
(إن وجود العملية الرابعة، التي تعيد ترتيب الشجرة أثناء عمليات الوصول، هو ما يجعل هذه المسألة مشكلة أمثلية ديناميكية .)
في كل عملية وصول، يمكن لخوارزمية شجرة البحث الثنائية لدينا تنفيذ أي تسلسل من العمليات المذكورة أعلاه طالما أن المؤشر ينتهي في النهاية على العقدة التي تحتوي على القيمة المستهدفة xᵢ . الوقت الذي تستغرقه خوارزمية شجرة البحث الثنائية الديناميكية لتنفيذ تسلسل من عمليات الوصول يعادل إجمالي عدد هذه العمليات التي تُنفذ خلال ذلك التسلسل. وبالنظر إلى أي تسلسل من عمليات الوصول على أي مجموعة من العناصر، يوجد حد أدنى لإجمالي عدد العمليات المطلوبة لتنفيذ تلك العمليات. ونسعى إلى الاقتراب من هذا الحد الأدنى.
مع أنه من المستحيل تطبيق " خوارزمية الله " هذه دون معرفة مسبقة بتسلسل الوصول، يمكننا تعريف OPT(X) على أنه عدد العمليات التي ستنفذها الخوارزمية لتسلسل وصول X، ويمكننا القول إن الخوارزمية مثالية ديناميكيًا إذا كانت، لأي قيمة X، تنفذ X في زمن O (OPT(X)) (أي أن لها نسبة تنافسية ثابتة ). [ 8 ]
هناك العديد من هياكل البيانات التي يُفترض أنها تمتلك هذه الخاصية، ولكن لم يتم إثبات أي منها. ولا تزال مسألة وجود هيكل بيانات أمثل ديناميكيًا في هذا النموذج مفتوحة .
الأشجار المتفرعة
شجرة التفرع هي شكل من أشكال شجرة البحث الثنائية، ابتكرها دانيال سليتور وروبرت تارجان عام 1985، وتُنفذ عليها عمليات شجرة البحث القياسية.الوقت المستهلك. [ 10 ] يُفترض أنه الأمثل ديناميكيًا بالمعنى المطلوب. أي، يُعتقد أن شجرة التفرع تُنفذ أي تسلسل وصول طويل بما فيه الكفاية X في وقت O(OPT(X)). [ 9 ]
أشجار التانغو
شجرة التانغو هي بنية بيانات اقترحها إريك دي. ديمين ، وديون هارمون، وجون إياكونو ، وميهاي باتراشكو في عام 2004 ، وقد ثبت أنها تؤدي أي تسلسل وصول طويل بما فيه الكفاية X في وقتعلى الرغم من أن هذا ليس الأمثل ديناميكيًا، إلا أن النسبة التنافسية لـلا يزال صغيرًا جدًا بالنسبة للقيم المعقولة لـ n. [ 8 ]
نتائج أخرى
في عام ٢٠١٣، نشر جون إياكونو بحثًا يستخدم هندسة أشجار البحث الثنائية لتقديم خوارزمية مثالية ديناميكيًا، إن وُجدت خوارزمية مثالية ديناميكيًا لأي خوارزمية أخرى لأشجار البحث الثنائية. [ ١١ ] تُفسَّر العُقد كنقاط في بُعدين، وتسلسل الوصول الأمثل هو أصغر مجموعة شاملة مُرضية شجريًا من تلك النقاط. على عكس أشجار التفرع وأشجار التانغو، لا يُعرف أن بنية بيانات إياكونو قابلة للتنفيذ في وقت ثابت لكل خطوة من خطوات تسلسل الوصول، لذا حتى لو كانت مثالية ديناميكيًا، فقد تظل أبطأ من هياكل بيانات أشجار البحث الأخرى بمعامل غير ثابت.
الحد الأدنى للتداخل هو حد أدنى تقاربي على الأمثلية الديناميكية.
انظر أيضاً
ملحوظات
- ↑ تريمبلاي، جان بول؛ تشيستون، غرانت أ. (2001). هياكل البيانات وتطوير البرمجيات في مجال البرمجة الكائنية . طبعة إيفل/برنتيس هول. ISBN 978-0-13-787946-5.
- 1 2 3 كنوت، دونالد إي. (1971)، "أشجار البحث الثنائية المثلى"، أكتا إنفورماتيكا ، 1 (1): 14-25 ، doi : 10.1007/BF00264289 ، S2CID 62777263
- 1 2 ناجاراج، إس في (30-11-1997). "أشجار البحث الثنائية المثلى" . علوم الحاسوب النظرية . 188 (1): 1-44 . doi : 10.1016/S0304-3975(96)00320-9 . ISSN 0304-3975 . S2CID 33484183 .
- ↑ جيلبرت، إي إن؛ مور، إي إف (يوليو 1959). "الترميزات الثنائية ذات الطول المتغير" . مجلة بيل سيستم التقنية . 38 (4): 933-967 . doi : 10.1002/j.1538-7305.1959.tb01583.x .
- ↑ هو، تي سي ؛ تاكر، إيه سي (ديسمبر 1971). "أشجار البحث الحاسوبية المثلى والرموز الأبجدية ذات الطول المتغير" . مجلة SIAM للرياضيات التطبيقية . 21 (4): 514-532 . doi : 10.1137/0121057 . ISSN 0036-1399 .
- 1 2 3 4 5 6 ميلهورن، كورت (1975)، "أشجار البحث الثنائية شبه المثلى" ، مجلة أكتا إنفورماتيكا ، 5 (4): 287-295 ، doi : 10.1007/BF00264563 ، S2CID 17188103
- ↑ كنوت، دونالد إي. (1998)، "الخوارزمية G (خوارزمية غارسيا-واكس للأشجار الثنائية المثلى)"، فن برمجة الحاسوب، المجلد 3: الفرز والبحث ( الطبعة الثانية)، أديسون-ويسلي، الصفحات 451-453 انظر أيضًا التاريخ وقائمة المراجع، الصفحات 453-454.
- 1 2 3 4 ديمين، إريك د.؛ هارمون، ديون؛ إياكونو، جون؛ باتراسكو، ميهاي (2004)، "الأمثلية الديناميكية - تقريبًا" (ملف PDF) ، وقائع الندوة السنوية الخامسة والأربعين لمؤسسة IEEE حول أسس علوم الحاسوب ، الصفحات 484-490 ، CiteSeerX 10.1.1.99.4964 ، doi : 10.1109/FOCS.2004.23 ، ISBN 978-0-7695-2228-9
- 1 2 سليتور، دانيال؛ تارجان، روبرت (1985)، "أشجار البحث الثنائية ذاتية التعديل"، مجلة ACM ، 32 (3): 652-686 ، doi : 10.1145/3828.3835 ، S2CID 1165848
- ^ كورمين، توماس هـ. ليسرسون، تشارلز E.؛ ريفيست ، رونالد. شتاين، كليفورد (2009). مقدمة للخوارزميات (PDF) ( الطبعة الثالثة). مطبعة معهد ماساتشوستس للتكنولوجيا. ص. 503. ردمك 978-0-262-03384-8تم الاطلاع عليه بتاريخ 31 أكتوبر 2017 .
- ↑ إياكونو، جون (2013)، "في سبيل تحقيق تخمين الأمثلية الديناميكية"، arXiv : 1306.0207 [ cs.DS ]
- الأشجار الثنائية
- شجرة البحث
