شجرة ديكارتية

سلسلة من الأرقام والشجرة الديكارتية المشتقة منها.

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

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

تعريف

تُعرَّف الأشجار الديكارتية باستخدام الأشجار الثنائية ، وهي نوع من الأشجار الجذرية . لإنشاء الشجرة الديكارتية لتسلسل معين من الأعداد المميزة، يُعيَّن جذرها ليكون أصغر عدد في التسلسل، [ 1 ] ثم تُنشأ شجرتاها الفرعيتان اليسرى واليمنى بشكل متكرر من التسلسلات الفرعية التي تسبق هذا العدد وتليه على التوالي. في الحالة الأساسية، عندما تكون إحدى هاتين التسلسلتين الفرعيتين فارغة، فلا يوجد ابن أيسر أو أيمن. [ 2 ]

من الممكن أيضًا وصف الشجرة الديكارتية مباشرةً، بدلًا من وصفها بشكل تكراري، باستخدام خصائص ترتيبها. في أي شجرة، تتكون الشجرة الفرعية التي جذرها أي عقدة من جميع العقد الأخرى التي يمكن الوصول إليها باتباع مؤشرات العقد الأصلية بشكل متكرر. تُعرَّف الشجرة الديكارتية لسلسلة من الأرقام المميزة بالخصائص التالية:

  1. الشجرة الديكارتية لتسلسل ما هي شجرة ثنائية تحتوي على عقدة واحدة لكل رقم في التسلسل.
  2. ينتج عن اجتياز الشجرة بشكل متناظر (ترتيبي) التسلسل الأصلي. وبالمثل، بالنسبة لكل عقدة، تكون الأرقام في شجرتها الفرعية اليسرى أسبق منها في التسلسل، والأرقام في شجرتها الفرعية اليمنى لاحقة لها.
  3. تتمتع الشجرة بخاصية الكومة الدنيا : قيمة العقدة الأب لأي عقدة غير جذرية أصغر من قيمة العقدة نفسها. [ 1 ]

هذان التعريفان متكافئان: الشجرة المُعرَّفة بشكل تكراري كما هو موضح أعلاه هي الشجرة الوحيدة التي تمتلك الخصائص المذكورة. إذا احتوى تسلسل الأرقام على تكرارات، فيمكن تحديد شجرة ديكارتية له باتباع قاعدة ثابتة لكسر التعادل قبل تطبيق البناء المذكور أعلاه. على سبيل المثال، يمكن اعتبار العنصر الأول من عنصرين متساويين هو الأصغر بينهما. [ 2 ]

تاريخ

تم تقديم الأشجار الديكارتية وتسميتها من قبل فويلمين (1980) ، الذي استخدمها كمثال على التفاعل بين التوافقية الهندسية وتصميم وتحليل هياكل البيانات . على وجه الخصوص، استخدم فويلمين هذه الهياكل لتحليل تعقيد الحالة المتوسطة لعمليات الربط والتقسيم على أشجار البحث الثنائية . يُشتق الاسم من نظام الإحداثيات الديكارتية للمستوى: في أحد إصدارات هذا الهيكل، كما هو الحال في تطبيق البحث عن النطاق ثنائي الأبعاد الذي سيتم مناقشته لاحقًا، تحتوي الشجرة الديكارتية لمجموعة نقاط على ترتيب مُرتب للنقاط حسب مواقعها.x{\displaystyle x}تعتمد على الإحداثيات كترتيب اجتياز متناظر، ولها خاصية الكومة وفقًا لـy{\displaystyle y}إحداثيات النقاط. وصف فيليمين كلاً من هذا الشكل الهندسي للبنية، والتعريف الوارد هنا الذي تُعرَّف فيه الشجرة الديكارتية من متتالية. يوفر استخدام المتتاليات بدلاً من إحداثيات النقاط إطارًا أكثر عمومية يسمح بتطبيق الشجرة الديكارتية على مسائل غير هندسية أيضًا. [ 2 ]

بناء فعال

يمكن إنشاء شجرة ديكارتية في وقت خطي من سلسلة المدخلات. إحدى الطرق هي معالجة قيم السلسلة من اليسار إلى اليمين، مع الحفاظ على الشجرة الديكارتية للعقد التي تمت معالجتها حتى الآن، في بنية تسمح باجتياز الشجرة صعودًا وهبوطًا. لمعالجة كل قيمة جديدةأ{\displaystyle a}ابدأ من العقدة التي تمثل القيمة السابقة لـأ{\displaystyle a}في التسلسل، اتبع المسار من هذه العقدة إلى جذر الشجرة حتى تجد قيمةب{\displaystyle b}أصغر منأ{\displaystyle a}العقدةأ{\displaystyle a}يصبح الابن الشرعي لـب{\displaystyle b}والابن الأيمن السابق لـب{\displaystyle b}يصبح الابن اليساري الجديد لـأ{\displaystyle a}. إجمالي وقت هذه العملية خطي، لأن الوقت المستغرق في البحث عن الأصلب{\displaystyle b}لكل عقدة جديدةأ{\displaystyle a}يمكن احتساب التكلفة بناءً على عدد العقد التي تمت إزالتها من المسار الأيمن في الشجرة. [ 3 ]

تعتمد خوارزمية بناء بديلة ذات زمن خطي على مسألة جميع القيم الأصغر الأقرب . في سلسلة الإدخال، حدد الجار الأيسر لقيمة ما.أ{\displaystyle a}أن تكون القيمة التي تحدث قبلأ{\displaystyle a}أصغر منأ{\displaystyle a}وهو أقرب في موقعه إلىأ{\displaystyle a}من أي قيمة أصغر أخرى. يُعرَّف الجار الأيمن بشكل متناظر. يمكن إيجاد تسلسل الجيران الأيسر بواسطة خوارزمية تحتفظ بمكدس يحتوي على تسلسل فرعي من المدخلات. لكل قيمة تسلسل جديدةأ{\displaystyle a}يتم سحب العناصر من المكدس حتى يصبح فارغًا أو يكون العنصر العلوي فيه أصغر منأ{\displaystyle a}، وثمأ{\displaystyle a}يتم دفعها إلى المكدس. الجار الأيسر لـأ{\displaystyle a}هو العنصر الأعلى في ذلك الوقتأ{\displaystyle a}يتم دفعها. يمكن إيجاد الجيران المناسبين بتطبيق خوارزمية المكدس نفسها على عكس التسلسل. الأصل لـأ{\displaystyle a}في الشجرة الديكارتية، يكون إما الجار الأيسر لـأ{\displaystyle a}أو الجار المناسب لـأ{\displaystyle a}أيهما موجود وله قيمة أكبر. يمكن أيضًا إنشاء الجيران الأيسر والأيمن بكفاءة باستخدام خوارزميات متوازية ، مما يجعل هذه الصيغة مفيدة في الخوارزميات المتوازية الفعالة لإنشاء الأشجار الديكارتية. [ 4 ]

تعتمد خوارزمية أخرى ذات زمن خطي لبناء الأشجار الديكارتية على أسلوب فرق تسد . تقوم هذه الخوارزمية ببناء الشجرة بشكل متكرر على كل نصف من المدخلات، ثم تدمج الشجرتين. تقتصر عملية الدمج على العقد الموجودة على العمودين الفقريين الأيمن والأيسر لهاتين الشجرتين: العمود الفقري الأيسر هو المسار الناتج عن تتبع حواف الأبناء اليساريين من الجذر حتى الوصول إلى عقدة ليس لها ابن يساري، بينما يُعرَّف العمود الفقري الأيمن بشكل متناظر. وكما هو الحال مع أي مسار في كومة دنيا، فإن قيم كلا العمودين الفقريين مرتبة تصاعديًا، من أصغر قيمة عند الجذر إلى أكبر قيمة عند نهاية المسار. لدمج الشجرتين، تُطبَّق خوارزمية دمج على العمود الفقري الأيمن للشجرة اليسرى والعمود الفقري الأيسر للشجرة اليمنى، مما يؤدي إلى استبدال هذين المسارين في الشجرتين بمسار واحد يحتوي على نفس العقد. في المسار المدمج، يُوضع العنصر التالي لكل عقدة من الشجرة اليسرى، وفقًا لترتيبها، في فرعها الأيمن، بينما يُوضع العنصر التالي لكل عقدة من الشجرة اليمنى في فرعها الأيسر، وهو نفس الموضع الذي استُخدم سابقًا للعنصر التالي في العمود الفقري. ويبقى الفرع الأيسر للعقد من الشجرة اليسرى والفرع الأيمن للعقد من الشجرة اليمنى دون تغيير. تتميز الخوارزمية بإمكانية تنفيذها بالتوازي، حيث يمكن حساب كل من المسألتين الفرعيتين بالتوازي في كل مستوى من مستويات الاستدعاء الذاتي، كما يمكن تنفيذ عملية الدمج بالتوازي بكفاءة عالية . [ 5 ]

تعتمد خوارزمية أخرى ذات زمن خطي، تستخدم تمثيل قائمة مرتبطة لتسلسل الإدخال، على الربط المحلي الأقصى : حيث تحدد الخوارزمية بشكل متكرر عنصرًا محليًا أقصى ، أي عنصرًا أكبر من كلا جاريه (أو من جاره الوحيد، في حال كان العنصر الأول أو الأخير في القائمة). ثم يُزال هذا العنصر من القائمة، ويُلحق كابن أيمن لجاره الأيسر، أو كابن أيسر لجاره الأيمن، اعتمادًا على أي من الجارين له قيمة أكبر، مع كسر التعادل بشكل عشوائي. يمكن تنفيذ هذه العملية في تمريرة واحدة من اليسار إلى اليمين للإدخال، ومن السهل ملاحظة أن كل عنصر يمكن أن يحصل على ابن أيسر واحد على الأكثر، وابن أيمن واحد على الأكثر، وأن الشجرة الثنائية الناتجة هي شجرة ديكارتية لتسلسل الإدخال. [ 6 ] [ 7 ]

من الممكن الحفاظ على الشجرة الديكارتية لمدخلات ديناميكية، تخضع لإضافة عناصر وحذفها عند الحاجة ، في زمن لوغاريتمي مُعدَّل لكل عملية. هنا، يعني الحذف عند الحاجة أن عملية الحذف تتم عن طريق وضع علامة على عنصر في الشجرة كعنصر محذوف، دون إزالته فعليًا من الشجرة. عندما يصل عدد العناصر الموسومة إلى نسبة ثابتة من حجم الشجرة ككل، يُعاد بناؤها مع الاحتفاظ فقط بالعناصر غير الموسومة. [ 8 ]

التطبيقات

البحث عن النطاق وأدنى الأسلاف المشتركة

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

تُشكّل الأشجار الديكارتية جزءًا من بنية بيانات فعّالة لاستعلامات الحد الأدنى للنطاق . يُحدّد مُدخل هذا النوع من الاستعلامات سلسلة فرعية متصلة من السلسلة الأصلية؛ ويجب أن يكون مُخرج الاستعلام هو القيمة الدنيا في هذه السلسلة الفرعية. [ 9 ] في الشجرة الديكارتية، يُمكن إيجاد هذه القيمة الدنيا عند السلف المشترك الأدنى للقيمتين الأقصى يسارًا والأقصى يمينًا في السلسلة الفرعية. على سبيل المثال، في السلسلة الفرعية (12، 10، 20، 15، 18) من سلسلة المثال، تُشكّل القيمة الدنيا للسلسلة الفرعية (10) السلف المشترك الأدنى للقيمتين الأقصى يسارًا والأقصى يمينًا (12 و18). نظرًا لإمكانية إيجاد السلف المشترك الأدنى في وقت ثابت لكل استعلام، باستخدام بنية بيانات تشغل مساحة تخزين خطية ويُمكن إنشاؤها في وقت خطي، فإنّ نفس الحدود تنطبق على مسألة تقليل النطاق. [ 10 ]

قام بندر وفاراش -كولتون (2000) بعكس هذه العلاقة بين مشكلتي بنية البيانات، مُبينين إمكانية استخدام هياكل البيانات المُستخدمة في تقليل المدى لإيجاد الأسلاف المشتركة الأدنى. تربط بنية البيانات هذه كل عقدة في الشجرة بمسافتها من الجذر، وتُنشئ سلسلة من هذه المسافات بترتيب جولة أويلر للشجرة (المضاعفة الحواف). ثم تُنشئ بنية بيانات لتقليل المدى للسلسلة الناتجة. يُمكن إيجاد السلف المشترك الأدنى لأي رأسين في الشجرة المُعطاة كأقصر مسافة تظهر في الفترة بين الموضعين الأوليين لهذين الرأسين في السلسلة. كما يُقدم بندر وفاراش-كولتون طريقة لتقليل المدى يُمكن استخدامها للسلاسل الناتجة عن هذا التحويل، والتي تتميز بخاصية فريدة، وهي أن قيم السلسلة المتجاورة تختلف بمقدار واحد. كما يصفون، بالنسبة لتقليل المدى في التسلسلات التي لا تتخذ هذا الشكل، من الممكن استخدام الأشجار الديكارتية لتقليل مشكلة تقليل المدى إلى أدنى الأسلاف المشتركة، ثم استخدام جولات أويلر لتقليل أدنى الأسلاف المشتركة إلى مشكلة تقليل المدى بهذا الشكل الخاص. [ 11 ]

يمكن أيضًا تفسير مسألة تقليل المدى نفسها تفسيرًا بديلًا من حيث البحث في المدى ثنائي الأبعاد. يمكن استخدام مجموعة من عدد محدود من النقاط في المستوى الديكارتي لتكوين شجرة ديكارتية، وذلك بترتيب النقاط حسب مواقعها.x{\displaystyle x}- الإحداثيات واستخدامy{\displaystyle y}- الإحداثيات بهذا الترتيب كتسلسل للقيم التي تشكلت منها هذه الشجرة. إذاS{\displaystyle S}هي مجموعة فرعية من نقاط الإدخال داخل شريحة رأسية معينة محددة بواسطة المتبايناتلxR{\displaystyle L\leq x\leq R}،ص{\displaystyle p}هي النقطة الواقعة في أقصى اليسار فيS{\displaystyle S}(الذي يحتوي على الحد الأدنى)x{\displaystyle x}(الإحداثيات)، وq{\displaystyle q}هي النقطة الواقعة في أقصى اليمينS{\displaystyle S}(الشخص الذي يتمتع بأقصى قدر منx{\displaystyle x}(الإحداثيات) ثم السلف المشترك الأدنى لـص{\displaystyle p}وq{\displaystyle q}في الشجرة الديكارتية، تمثل النقطة السفلية في الشريحة. استعلام نطاق ثلاثي الجوانب، حيث تتمثل المهمة في سرد ​​جميع النقاط داخل منطقة محددة بثلاث متباينات.لxR{\displaystyle L\leq x\leq R}وyتي{\displaystyle y\leq T}يمكن الإجابة على هذا السؤال من خلال إيجاد هذه النقطة السفليةب{\displaystyle b}مقارنة بـy{\displaystyle y}-تنسيق إلىتي{\displaystyle T}و(إذا كانت النقطة تقع داخل المنطقة ثلاثية الأضلاع) الاستمرار بشكل متكرر في اللوحين المحصورين بينهماص{\displaystyle p}وب{\displaystyle b}وبينب{\displaystyle b}وq{\displaystyle q}وبهذه الطريقة، بعد تحديد النقطتين الأقصى يسارًا والأدنى يمينًا في اللوح، يمكن سرد جميع النقاط داخل المنطقة ثلاثية الجوانب في وقت ثابت لكل نقطة. [ 3 ]

يُتيح نفس البناء، المتمثل في أدنى الأسلاف المشتركة في شجرة ديكارتية، إنشاء بنية بيانات ذات مساحة خطية تسمح بالاستعلام عن المسافات بين أزواج النقاط في أي فضاء متري فائق في وقت ثابت لكل استعلام. المسافة داخل الفضاء المتري الفائق هي نفسها وزن المسار الأدنى الأقصى في الشجرة الممتدة الدنيا لهذا الفضاء. [ 12 ] من الشجرة الممتدة الدنيا، يمكن إنشاء شجرة ديكارتية، حيث يُمثل جذرها أثقل حافة في الشجرة الممتدة الدنيا. يؤدي حذف هذه الحافة إلى تقسيم الشجرة الممتدة الدنيا إلى شجرتين فرعيتين، وتُشكل الأشجار الديكارتية المُنشأة بشكل متكرر لهاتين الشجرتين الفرعيتين أبناء جذر الشجرة الديكارتية. تُمثل أوراق الشجرة الديكارتية نقاطًا في الفضاء المتري، وأدنى سلف مشترك لورقتين في الشجرة الديكارتية هو أثقل حافة بين هاتين النقطتين في الشجرة الممتدة الدنيا، والتي يساوي وزنها المسافة بين النقطتين. بمجرد العثور على الشجرة الممتدة الدنيا وترتيب أوزان حوافها، يمكن إنشاء الشجرة الديكارتية في وقت خطي. [ 13 ]

كشجرة بحث ثنائية

الشجرة الديكارتية لتسلسل مُرتب هي ببساطة رسم بياني للمسارات ، جذره عند أقصى نقطة في اليسار. يتحول البحث الثنائي في هذه الشجرة إلى بحث تسلسلي في المسار. مع ذلك، يستخدم بناء مختلف الأشجار الديكارتية لتوليد أشجار بحث ثنائية ذات عمق لوغاريتمي من تسلسلات مُرتبة من القيم. يمكن القيام بذلك عن طريق توليد أرقام أولوية لكل قيمة، واستخدام تسلسل الأولويات لتوليد شجرة ديكارتية. يمكن النظر إلى هذا البناء بشكل مكافئ في الإطار الهندسي الموصوف أعلاه، حيثx{\displaystyle x}إحداثيات مجموعة من النقاط هي القيم في تسلسل مُرتب وy{\displaystyle y}-الإحداثيات هي أولوياتهم. [ 14 ]

طُبقت هذه الفكرة من قِبل سايدل وأراغون (1996) ، اللذين اقترحا استخدام الأرقام العشوائية كأولويات. تُسمى شجرة البحث الثنائية ذاتية التوازن الناتجة عن هذا الاختيار العشوائي "تريب" (treap )، نظرًا لجمعها بين خصائص شجرة البحث الثنائية وخصائص الكومة الدنيا. يمكن إجراء عملية إدراج في التريب عن طريق إدخال المفتاح الجديد كطرف في شجرة موجودة، واختيار أولوية له، ثم إجراء عمليات تدوير للشجرة على طول مسار من العقدة إلى جذر الشجرة لإصلاح أي انتهاكات لخاصية الكومة ناتجة عن هذا الإدراج؛ وبالمثل، يمكن إجراء عملية حذف عن طريق إجراء تغيير ثابت على الشجرة متبوعًا بسلسلة من عمليات التدوير على طول مسار واحد في الشجرة. [ 14 ] يستخدم نوع مختلف من بنية البيانات هذه، يُسمى شجرة الضغط (zip tree)، نفس فكرة الأولويات العشوائية، ولكنه يُبسط عملية توليد الأولويات عشوائيًا، ويُجري عمليات الإدراج والحذف بطريقة مختلفة، عن طريق تقسيم التسلسل وشجرته الديكارتية المرتبطة به إلى تسلسلين فرعيين وشجرتين، ثم إعادة دمجهما. [ 15 ]

إذا تم اختيار أولويات كل مفتاح عشوائيًا وبشكل مستقل مرة واحدة عند إدخال المفتاح في الشجرة، فإن الشجرة الديكارتية الناتجة ستتمتع بنفس خصائص شجرة البحث الثنائية العشوائية ، وهي شجرة تُحسب بإدخال المفاتيح في تبديل مُختار عشوائيًا بدءًا من شجرة فارغة، مع الحفاظ على بنية الشجرة السابقة دون تغيير وإدخال العقدة الجديدة كإحدى أوراق الشجرة. وقد دُرست أشجار البحث الثنائية العشوائية لفترة أطول بكثير من أشجار البحث التقليدية، ومن المعروف أنها تتصرف بشكل جيد كأشجار بحث. ويبلغ الطول المتوقع لمسار البحث لأي قيمة معينة على الأكثر2lnن{\displaystyle 2\ln n}ويكون للشجرة بأكملها عمق لوغاريتمي (أقصى مسافة من الجذر إلى الورقة) باحتمالية عالية . وبشكل أكثر دقة، يوجد ثابتج{\displaystyle C}بحيث يكون العمقجlnن{\displaystyle \leq C\ln n}مع اقتراب الاحتمالية من الواحد كلما ازداد عدد العقد إلى ما لا نهاية. وينطبق هذا السلوك الجيد نفسه على شبكات التريب. كما أنه من الممكن، كما اقترح أراغون وسيدل، إعادة ترتيب أولويات العقد التي يتم الوصول إليها بشكل متكرر، مما يؤدي إلى تحركها نحو جذر شبكة التريب وتسريع عمليات الوصول المستقبلية لنفس المفاتيح. [ 14 ]

في الفرز

أزواج من قيم التسلسل المتتالية (موضحة بالحواف الحمراء السميكة) التي تُحيط بقيمة تسلسل (النقطة الزرقاء الداكنة). تتناسب تكلفة تضمين هذه القيمة في الترتيب المُفرز الناتج عن خوارزمية ليفكوبولوس-بيترسون مع لوغاريتم عدد أزواج التحديد هذه.

يصف ليفكوبولوس وبيترسون (1989) خوارزمية فرز تعتمد على الأشجار الديكارتية. ويصفان الخوارزمية بأنها مبنية على شجرة يكون فيها العنصر الأقصى عند الجذر، [ 16 ] ولكن يمكن تعديلها بسهولة لدعم شجرة ديكارتية مع مراعاة أن يكون العنصر الأدنى عند الجذر. ولضمان الاتساق، سيتم وصف هذه النسخة المعدلة من الخوارزمية أدناه.

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

  1. قم بإنشاء شجرة ديكارتية لتسلسل الإدخال
  2. قم بتهيئة قائمة انتظار ذات أولوية، تحتوي في البداية على جذر الشجرة فقط
  3. طالما أن قائمة الانتظار ذات الأولوية غير فارغة:
    • ابحث عن القيمة الدنيا في قائمة الانتظار ذات الأولوية وقم بإزالتها
    • أضف هذه القيمة إلى تسلسل الإخراج
    • أضف أبناء الشجرة الديكارتية للقيمة المحذوفة إلى قائمة الانتظار ذات الأولوية

كما يُبين ليفكوبولوس وبيترسون، بالنسبة لتسلسلات الإدخال شبه المرتبة، سيظل حجم قائمة الانتظار ذات الأولوية صغيرًا، مما يسمح لهذه الطريقة بالاستفادة من الإدخال شبه المرتب والعمل بسرعة أكبر. وبالتحديد، فإن أسوأ وقت تشغيل لهذه الخوارزمية هويا(نسجلك){\displaystyle O(n\log k)}، أينن{\displaystyle n}هو طول التسلسل وك{\displaystyle k}هو المتوسط، على جميع قيم المتسلسلة، لعدد أزواج قيم المتسلسلة المتتالية التي تُحيط بالقيمة المُعطاة (أي أن القيمة المُعطاة تقع بين قيمتي المتسلسلة). كما تُثبت هذه الطريقة حدًا أدنى ينص على أنه لأي قيمةن{\displaystyle n}و(غير ثابت)ك{\displaystyle k}يجب على أي خوارزمية فرز تعتمد على المقارنة أن تستخدمΩ(نسجلك){\displaystyle \Omega (n\log k)}مقارنات لبعض المدخلات. [ 16 ]

في مطابقة الأنماط

تُعرَّف مشكلة مطابقة الأشجار الديكارتية بأنها شكل مُعمَّم من مطابقة السلاسل النصية ، حيث يتم البحث عن سلسلة فرعية (أو في بعض الحالات، متتالية فرعية ) من سلسلة نصية مُعطاة، بحيث يكون شكل شجرتها الديكارتية مماثلاً لشكل نمط مُعطى. وقد طُوِّرت خوارزميات سريعة لمعالجة تنويعات هذه المشكلة، سواءً بنمط واحد أو أنماط متعددة، بالإضافة إلى هياكل بيانات مُشابهة لشجرة اللواحق وغيرها من هياكل فهرسة النصوص. [ 17 ]

ملحوظات

مراجع

  • بيندر، مايكل أ.؛ فاراش-كولتون، مارتن ( 2000)، "إعادة النظر في مشكلة تحليل دورة الحياة"، وقائع الندوة اللاتينية الأمريكية الرابعة حول المعلوماتية النظرية ، سبرينغر-فيرلاغ، سلسلة محاضرات في علوم الحاسوب 1776، ص 88-94 
  • بيركمان، عمر؛ شيبر، باروخ ؛ فيشكين، أوزي (1993)، "خوارزميات متوازية لوغاريتمية مزدوجة مثلى تعتمد على إيجاد جميع القيم الأصغر الأقرب"، مجلة الخوارزميات ، 14 (3): 344-370 ، doi : 10.1006/jagm.1993.1018
  • بيالينيكا-بيرولا، إيونا؛ جروسي، روبرتو (2006)، "الصلابة المُستهلكة في الأشجار الديكارتية الديناميكية"، في دوراند، برونو؛ توماس، وولفغانغ (محرران)، STACS 2006، الندوة السنوية الثالثة والعشرون حول الجوانب النظرية لعلوم الحاسوب، مرسيليا، فرنسا، 23-25 ​​فبراير 2006، وقائع ، سلسلة محاضرات في علوم الحاسوب، المجلد  3884، سبرينغر، الصفحات 80-91 ، doi : 10.1007/11672142_5 ، ISBN  978-3-540-32301-3
  • ديمين، إريك د .؛ لاندو، جاد م.؛ وايمان، أورين (2009)، "حول الأشجار الديكارتية واستعلامات الحد الأدنى للنطاق"، الأوتوماتا واللغات والبرمجة، الندوة الدولية السادسة والثلاثون، ICALP 2009، رودس، اليونان، 5-12 يوليو 2009 ، سلسلة محاضرات في علوم الحاسوب، المجلد  5555، الصفحات 341-353 ، doi : 10.1007/978-3-642-02927-1_29 ، hdl : 1721.1/61963 ، ISBN  978-3-642-02926-4
  • فيشر، يوهانس؛ هيون، فولكر (2006)، "تحسينات نظرية وعملية على مسألة RMQ، مع تطبيقات على LCA وLCE"، وقائع الندوة السنوية السابعة عشرة حول مطابقة الأنماط التوافقية ، سلسلة محاضرات في علوم الحاسوب، المجلد  4009، سبرينغر-فيرلاغ، الصفحات 36-48 ، doi : 10.1007/11780441_5 ، ISBN  978-3-540-35455-0
  • فيشر، يوهانس؛ هيون، فولكر (2007)، "تمثيل جديد موجز لمعلومات RMQ وتحسينات في مصفوفة اللواحق المحسّنة."، وقائع الندوة الدولية حول التوافقية والخوارزميات والمنهجيات الاحتمالية والتجريبية ، سلسلة محاضرات في علوم الحاسوب، المجلد  4614، سبرينغر-فيرلاغ، الصفحات 459-470 ، doi : 10.1007/978-3-540-74450-4_41 ، ISBN  978-3-540-74449-8
  • جابو، هارولد نبنتلي، جون لويس ؛ تارجان، روبرت إي. (1984)، "التحجيم والتقنيات ذات الصلة لمسائل الهندسة"، STOC '84: وقائع الندوة السادسة عشرة لجمعية ACM حول نظرية الحوسبة ، نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM، الصفحات 135-143 ، doi : 10.1145/800057.808675 ، ISBN  0-89791-133-4، S2CID 17752833 
  • هاريل، دوف؛ تارجان، روبرت إي. (1984)، "خوارزميات سريعة لإيجاد أقرب الأسلاف المشتركة"، مجلة SIAM للحوسبة ، 13 (2): 338-355 ، doi : 10.1137/0213024
  • هارتمان، ماريا؛ كوزما، لازلو؛ سينامون، كورين؛ تارجان، روبرت إي. (2021)، "تحليل الأكوام الملساء والأكوام النحيفة"، ICALP ، وقائع لايبنتز الدولية في المعلوماتية (LIPIcs)، المجلد  198، الصفحات  79:1–79:20، doi : 10.4230/LIPIcs.ICALP.2021.79 ، ISBN 978-3-95977-195-5
  • هو، تي سي (1961)، "مشكلة المسار ذي السعة القصوى"، بحوث العمليات ، 9 (6): 898-900 ، doi : 10.1287/opre.9.6.898 ، JSTOR 167055 
  • كيم، سونغ هوان؛ تشو، هوان غوي (2021)، "فهرس مضغوط لمطابقة الأشجار الديكارتية"، في غاوريتشوفسكي، باويل؛ ستاريكوفسكايا، تاتيانا (محرران)، الندوة السنوية الثانية والثلاثون حول مطابقة الأنماط التوافقية، CPM 2021، 5-7 يوليو 2021، فروتسواف، بولندا ، LIPIcs، المجلد  191، شلوس داغشتول - مركز لايبنيز للمعلوماتية، الصفحات  18:1-18:19، doi : 10.4230/LIPIcs.CPM.2021.18 ، ISBN 9783959771863
  • كوزما، لازلو؛ سارانوراك، ثاتشابول (2020)، "الأكوام الملساء ونظرة مزدوجة لهياكل البيانات ذاتية التعديل"، مجلة SIAM للحوسبة ، 49 (5)، SIAM، arXiv : 1802.05471 ، doi : 10.1137/18M1195188
  • Leclerc، Bruno (1981)، “Description combinatoire des Ultramétriques”، مركز الرياضيات الاجتماعية. المدرسة العملية للدراسات العليا. الرياضيات والعلوم الإنسانية (باللغة الفرنسية) (73): 5-37 ، 127، السيد 0623034 
  • ليفكوبولوس، كريستوس؛ بيترسون، أولا (1989)، "فرز الكومة - مُكيَّف للملفات المُرتَّبة مُسبقًا"، وقائع ورشة عمل الخوارزميات وهياكل البيانات WADS '89، سلسلة محاضرات في علوم الحاسوب، المجلد  382، لندن، المملكة المتحدة: سبرينغر-فيرلاغ، الصفحات 499-509 ، doi : 10.1007/3-540-51542-9_41 ، ISBN  978-3-540-51542-5
  • نيشيموتو، أكيو؛ فوجيساتو، نوريكي؛ ناكاشيما، يوتو؛ إينيناغا، شونسوكي (2021)، "أكوام المواضع لمطابقة الأشجار الديكارتية على السلاسل النصية والمحاولات"، في: ليكروك، تييري؛ توزيت، هيلين (محرران)، معالجة السلاسل النصية واسترجاع المعلومات - الندوة الدولية الثامنة والعشرون، SPIRE 2021، ليل، فرنسا، 4-6 أكتوبر 2021، وقائع المؤتمر ، سلسلة محاضرات في علوم الحاسوب، المجلد  12944، سبرينغر، الصفحات 241-254 ، arXiv : 2106.01595 ، doi : 10.1007/978-3-030-86692-1_20 ، ISBN  978-3-030-86691-4، S2CID 235313506 
  • أويزومي، تسوباسا؛ كاي، تاكيشي؛ مينو، تاكويا؛ إينيناغا، شونسوكي؛ أريمورا، هيروكي (2022)، "مطابقة التسلسلات الفرعية للشجرة الديكارتية"، في باناي، هيديو؛ هولوب، يان (محرران)، الندوة السنوية الثالثة والثلاثون حول مطابقة الأنماط التوافقية، CPM 2022، 27-29 يونيو 2022، براغ، جمهورية التشيك ، LIPIcs، المجلد  223، شلوس داغشتول - مركز لايبنيز للمعلوماتية، الصفحات  14:1-14:18، doi : 10.4230/LIPIcs.CPM.2022.14 ، ISBN 9783959772341، S2CID 246679910 
  • بارك، سونغ جوان؛ أمير، أمهود؛ لانداو، جاد م.؛ بارك، كونسو (2019)، "مطابقة وفهرسة الشجرة الديكارتية"، في بيسانتي، نادية؛ Pissis, Solon P. (eds.)، الندوة السنوية الثلاثون حول مطابقة الأنماط التوافقية، CPM 2019، 18-20 يونيو 2019، بيزا، إيطاليا ، LIPics، المجلد.  128، Schloss Dagstuhl - Leibniz-Zentrum für Informatik، الصفحات  16:1–16:14، أرخايف : 1905.08974 ، دوى : 10.4230/LIPIcs.CPM.2019.16 ، ISBN 9783959771030، S2CID 162168587 
  • بارك، سونغ غوان؛ باتا، ماغسارجاف؛ أمير، أميهود؛ لاندو، جاد م.؛ بارك، كونسو (2020)، "إيجاد الأنماط والفترات في مطابقة الأشجار الديكارتية"، علوم الحاسوب النظرية ، 845 : 181-197 ، doi : 10.1016/j.tcs.2020.09.014 ، S2CID 225227284 
  • Seidel, Raimund ; Aragon, Cecilia R. (1996), "Randomized Search Trees" , Algorithmica , 16 (4/5): 464– 497, doi : 10.1007/s004539900061 (غير نشط في 1 يوليو 2025){{citation}}: صيانة CS1: تم تعطيل DOI اعتبارًا من يوليو 2025 ( رابط )
  • شيبر، باروخ؛ فيشكين، أوزي (1988)، "حول إيجاد الأسلاف المشتركة الأدنى: التبسيط والتوازي"، مجلة SIAM للحوسبة ، 17 (6): 1253-1262 ، doi : 10.1137/0217079
  • شون، جوليان؛ بليلوش، جاي إي. (2014)، "خوارزمية بسيطة لشجرة ديكارتية متوازية وتطبيقها على بناء شجرة لاحقة متوازية"، معاملات ACM في الحوسبة المتوازية ، 1 : 1-20 ، doi : 10.1145/2661653 ، S2CID 1912378 
  • سونغ، سيوو؛ غو، غيونمو؛ ريو، تشول؛ فارو، سيمون؛ ليكروك، تييري؛ بارك، كونسو (2021)، "خوارزميات سريعة لمطابقة الأشجار الديكارتية أحادية ومتعددة الأنماط"، علوم الحاسوب النظرية ، 849 : 47-63 ، doi : 10.1016/j.tcs.2020.10.009 ، S2CID 225142815 
  • تارجان، روبرت إي .؛ ليفي، كاليب سي.؛ تيميل، ستيفن (2021)، "أشجار Zip"، معاملات ACM في الخوارزميات ، 17 (4): 34:1–34:12، arXiv : 1806.06726 ، doi : 10.1145/3476830 ، S2CID 49298052 
  • فيليمين، جان (1980)، "نظرة موحدة على هياكل البيانات"، اتصالات رابطة مكائن ​​الحوسبة ، 23 (4)، نيويورك، نيويورك، الولايات المتحدة الأمريكية: رابطة مكائن ​​الحوسبة: 229-239 ، doi : 10.1145/358841.358852 ، S2CID 10462194