طابور الدلو
قائمة الانتظار ذات الدلو هي بنية بيانات تُطبّق نوع البيانات المجرد لقائمة الانتظار ذات الأولوية : فهي تحتفظ بمجموعة ديناميكية من العناصر ذات الأولويات العددية، وتتيح الوصول السريع إلى العنصر ذي الأولوية الدنيا (أو القصوى). في قائمة الانتظار ذات الدلو، يجب أن تكون الأولويات أعدادًا صحيحة ، وهي مناسبة بشكل خاص للتطبيقات التي يكون فيها نطاق الأولويات ضيقًا. [ 1 ] تتخذ قائمة الانتظار ذات الدلو شكل مصفوفة من الدلو: وهي بنية بيانات مصفوفة ، مُفهرسة حسب الأولويات، تحتوي خلاياها على مجموعات من العناصر ذات الأولوية نفسها. باستخدام هذه البنية، يستغرق إدخال العناصر وتغيير أولوياتها وقتًا ثابتًا . أما البحث عن العنصر ذي الأولوية الدنيا وإزالته فيستغرق وقتًا يتناسب مع عدد الدلو، أو، من خلال الاحتفاظ بمؤشر إلى الدلو الذي تم العثور عليه مؤخرًا، وقتًا يتناسب مع الفرق في الأولويات بين العمليات المتتالية.
تُعدّ قائمة الدلاء نظيرًا لقائمة فرز الحمام (المعروفة أيضًا بفرز الدلاء)، وهي خوارزمية فرز تُصنّف العناصر في دلاء مُفهرسة حسب أولوياتها، ثم تُدمج هذه الدلاء. يُعطي استخدام قائمة الدلاء كقائمة أولوية في فرز الاختيار شكلًا من أشكال خوارزمية فرز الحمام. [ 2 ] تُسمى قوائم الدلاء أيضًا قوائم أولوية الدلاء [ 3 ] أو قوائم الأولوية ذات الارتفاع المحدود . [ 1 ] عند استخدامها لتقريب أولويات الأعداد الحقيقية ، تُسمى أيضًا قوائم الأولوية غير المُرتبة [ 4 ] أو قوائم الأولوية الزائفة . [ 5 ] وهي وثيقة الصلة بقائمة التقويم ، وهي بنية تستخدم مصفوفة مماثلة من الدلاء لتحديد الأولويات بدقة باستخدام الأعداد الحقيقية.
تشمل تطبيقات طابور الدلو حساب انحلال الرسم البياني ، وخوارزميات سريعة لأقصر المسارات وأوسعها للرسوم البيانية ذات الأوزان التي تمثل أعدادًا صحيحة صغيرة أو مرتبة مسبقًا، وخوارزميات تقريب جشعة لمسألة تغطية المجموعات . كما طُبقت النسخة الكمية من هذا الهيكل على الجدولة [ 2 ] وعلى خوارزمية المكعبات المتحركة في رسومات الحاسوب [ 4 ] . وكان أول استخدام لطابور الدلو [ 6 ] في خوارزمية أقصر مسار بواسطة ديال (1969) [ 7 ] .
عملية
بنية البيانات الأساسية
يمكن لطابور الحاويات التعامل مع عناصر ذات أولويات عددية صحيحة تتراوح من 0 أو 1 حتى حدٍّ معروف C ، بالإضافة إلى عمليات إدراج العناصر، وتغيير أولوياتها، واستخراج (إيجاد وإزالة) العنصر ذي الأولوية الدنيا (أو القصوى). يتكون الطابور من مصفوفة A من هياكل بيانات حاويات ؛ في معظم المصادر، تكون هذه الحاويات عبارة عن قوائم مرتبطة ثنائياً، ولكن يمكن أن تكون بدلاً من ذلك مصفوفات ديناميكية [ 3 ] أو مجموعات ديناميكية . تخزن الحاوية الموجودة في الخلية p من المصفوفة A [ p ] مجموعة العناصر التي لها الأولوية p .
يمكن لقائمة انتظار الحاويات التعامل مع العمليات التالية:
- لإدراج عنصر x ذي أولوية p ، أضف x إلى الحاوية في A [ p ] .
- لتغيير أولوية عنصر ما، قم بإزالته من الحاوية لأولويته القديمة وأعد إدخاله في الحاوية لأولويته الجديدة.
- لاستخراج عنصر ذي أولوية دنيا أو قصوى، قم بإجراء بحث تسلسلي في المصفوفة للعثور على الحاوية الأولى أو الأخيرة غير الفارغة، على التوالي، واختر عنصرًا عشوائيًا من هذه الحاوية، وقم بإزالته من الحاوية.
وبهذه الطريقة، تستغرق عمليات الإضافة وتغييرات الأولوية وقتًا ثابتًا، ويستغرق استخراج عنصر الأولوية الأدنى أو الأقصى وقتًا قدره O ( C ) . [ 1 ] [ 6 ] [ 8 ]
التحسينات
كتحسين للأداء، يمكن لبنية البيانات أن تبدأ كل عملية بحث تسلسلي عن عنصر غير فارغ من آخر عنصر غير فارغ تم العثور عليه، بدلاً من بداية المصفوفة. يمكن تحقيق ذلك بطريقتين: البحث المؤجل (تأجيل عمليات البحث التسلسلي حتى الحاجة إليها) أو البحث المسبق (إجراء عمليات البحث مسبقًا). يؤثر اختيار وقت إجراء البحث على عمليات بنية البيانات التي تتأثر سلبًا بهذه العمليات. استخدمت النسخة الأصلية من بنية Dial البحث المؤجل. يتم ذلك عن طريق الاحتفاظ بفهرس L يمثل الحد الأدنى لأولوية أي عنصر موجود حاليًا في قائمة الانتظار. عند إدراج عنصر جديد، يجب تحديث L إلى الحد الأدنى بين قيمته القديمة وأولوية العنصر الجديد. عند البحث عن العنصر ذي الأولوية الدنيا، يمكن أن يبدأ البحث من L بدلاً من الصفر، وبعد انتهاء البحث، يجب أن يبقى L مساويًا للأولوية التي تم العثور عليها. [ 7 ] [ 9 ] بدلاً من ذلك، يُبقي الإصدار المُستعجل من هذا التحسين قيمة L مُحدَّثة بحيث تُشير دائمًا إلى أول خانة غير فارغة. عند إدراج عنصر جديد ذي أولوية أقل من L ، تُعيِّن بنية البيانات قيمة L إلى الأولوية الجديدة، وعند إزالة العنصر الأخير من خانة ذات أولوية L ، تُجري بحثًا تسلسليًا عبر الفهارس الأكبر حجمًا حتى العثور على خانة غير فارغة، وتُعيِّن قيمة L إلى أولوية الخانة الناتجة. [ 1 ]
في كلا هذين الشكلين، يستغرق كل بحث تسلسلي وقتًا يتناسب مع الفرق بين القيمتين القديمة والجديدة لـ L. قد يكون هذا أسرع بكثير من الحد الزمني O ( C ) لعمليات البحث في النسخة غير المُحسَّنة من بنية البيانات. في العديد من تطبيقات قوائم الانتظار ذات الأولوية، مثل خوارزمية ديكسترا ، تُشكِّل الأولويات الدنيا متتالية رتيبة ، مما يسمح باستخدام قائمة انتظار ذات أولوية رتيبة . في هذه التطبيقات، بالنسبة لكلٍّ من الشكلين الكسول والسريع للبنية المُحسَّنة، تغطي عمليات البحث التسلسلي عن الحاويات غير الفارغة نطاقات منفصلة من الحاويات. ولأن كل حاوية تقع في نطاق واحد على الأكثر من هذه النطاقات، فإن مجموع عدد خطواتها لا يتجاوز C. لذلك، في هذه التطبيقات، يكون إجمالي الوقت لتسلسل من n عملية هو O ( n + C ) ، بدلًا من الحد الزمني الأبطأ O ( nC ) الذي كان سينتج بدون هذا التحسين. [ 9 ] يمكن تطبيق تحسين مماثل في التطبيقات التي تستخدم طابورًا ذا دلو للعثور على العناصر ذات الأولوية القصوى، ولكن في هذه الحالة يجب أن يحتفظ بفهرس يحدد الحد الأعلى للأولوية القصوى، ويجب أن يبدأ البحث التسلسلي عن دلو غير فارغ من هذا الحد الأعلى نزولًا. [ 10 ]
يمكن استخدام تحسين آخر (سبق أن ذكره ديال عام 1969 ) لتوفير المساحة عندما تكون الأولويات رتيبة، وتقع طوال مسار الخوارزمية ضمن نطاق من قيم r بدلاً من امتدادها على النطاق الكامل من 0 إلى C. في هذه الحالة، يمكن فهرسة المصفوفة باستخدام الأولويات بتردد r بدلاً من قيمها الفعلية. يجب أن يبدأ البحث عن عنصر الأولوية الأدنى دائمًا من الحد الأدنى السابق، لتجنب الأولويات الأعلى من الحد الأدنى ولكن بترددات أقل. على وجه الخصوص، يمكن تطبيق هذه الفكرة في خوارزمية ديكسترا على الرسوم البيانية التي تكون أطوال حوافها أعدادًا صحيحة في النطاق من 1 إلى r . [ 8 ]
نظرًا لأن إنشاء قائمة انتظار جديدة يتضمن تهيئة مصفوفة من الحاويات الفارغة، فإن هذه الخطوة تستغرق وقتًا يتناسب مع عدد الأولويات. في المقابل، يقوم أحد أشكال قائمة الانتظار، الذي وصفه دونالد ب. جونسون عام ١٩٨١، بتخزين الحاويات غير الفارغة فقط في قائمة مرتبطة، مرتبة حسب أولوياتها، ويستخدم شجرة بحث مساعدة للعثور بسرعة على موضع أي حاوية جديدة في هذه القائمة المرتبطة. يستغرق تهيئة هذا الشكل المتغير وقتًا قدره O (log log C ) ، ووقتًا ثابتًا للعثور على عنصر ذي أولوية دنيا أو قصوى، ووقتًا قدره O (log log D ) لإدراج عنصر أو حذفه، حيث D هو الفرق بين أقرب أولويات أصغر وأكبر من أولوية العنصر المُدرج أو المحذوف. [ ١١ ]
مثال
على سبيل المثال، لنفترض وجود طابور ذي أربع أولويات، وهي الأرقام 0 و1 و2 و3. يتكون هذا الطابور من مصفوفة.تحتوي كل خلية من خلاياها الأربع على مجموعة من العناصر، تكون فارغة في البداية. لأغراض هذا المثال،يمكن كتابتها كسلسلة بين قوسين من أربع مجموعات:لنفترض سلسلة من العمليات التي نقوم فيها بإدخال عنصرينوبنفس الأولوية 1، أضف عنصرًا ثالثًامع الأولوية 3، قم بتغيير أولويةإلى 3، ثم قم بإجراء عمليتي استخراج للعنصر ذي الأولوية الدنيا.
- بعد الإدخالمع إعطاء الأولوية رقم 1،.
- بعد الإدخالمع إعطاء الأولوية رقم 1،.
- بعد إدخال الحرف z بالأولوية 3،.
- تغيير أولوية x من 1 إلى 3 يتضمن إزالته منوإضافته إلىوبعد ذلك.
- في النسخة الأساسية من قائمة الانتظار، يتم استخراج العنصر ذي الأولوية الدنيا، ويتم البحث بدءًا من بدايةلإيجاد أول عنصر غير فارغ فيه:فارغ لكن، وهي مجموعة غير فارغة. يختار عنصرًا عشوائيًا من هذه المجموعة (العنصر الوحيد،) كعنصر ذي أولوية دنيا. إزالةمن أوراق الهيكل.
- أما عملية الاستخراج الثانية، في النسخة الأساسية من قائمة الانتظار، فتبحث مرة أخرى من بداية المصفوفة:،،،غير فارغ. في النسخ المحسّنة من قائمة الانتظار ذات الدلو، يبدأ هذا البحث بدلاً من ذلك من آخر موضع تم العثور عليه غير فارغ.في كلتا الحالتين،تُعتبر المجموعة الأولى غير الفارغة. يتم اختيار أحد عناصرها بشكل عشوائي كعنصر ذي أولوية دنيا؛ على سبيل المثال،قد يتم اختيار هذا العنصر. يتم إزالة هذا العنصر، تاركًا.
التطبيقات
انحطاط الرسم البياني
يمكن استخدام طابور دلو للحفاظ على رؤوس الرسم البياني غير الموجه ، مع ترتيبها حسب درجاتها ، والبحث بشكل متكرر عن الرأس ذي الدرجة الأدنى وإزالته. [ 1 ] يمكن استخدام هذه الخوارزمية الجشعة لحساب انحلال الرسم البياني، والذي يساوي أعلى درجة لأي رأس عند إزالته. تستغرق الخوارزمية وقتًا خطيًا ، سواءً مع أو بدون التحسين الذي يحافظ على حد أدنى للأولوية الدنيا، لأن كل رأس يُعثر عليه في وقت يتناسب مع درجته، ومجموع درجات جميع الرؤوس يتناسب خطيًا مع عدد حواف الرسم البياني. [ 12 ]
خوارزمية دايل لإيجاد أقصر المسارات
في خوارزمية ديكسترا لإيجاد أقصر المسارات في الرسوم البيانية الموجهة ذات أوزان الحواف الموجبة، تكون الأولويات رتيبة، [ 13 ] ويمكن استخدام طابور دلو رتيب للحصول على حد زمني قدره O ( m + dc ) ، حيث m هو عدد الحواف، وd هو قطر الشبكة، و c هو الحد الأقصى لتكلفة الرابط (عدد صحيح). [ 9 ] [ 14 ] يُعرف هذا النوع من خوارزمية ديكسترا أيضًا باسم خوارزمية ديال ، [ 9 ] نسبةً إلى روبرت ب. ديال، الذي نشرها عام 1969. [ 7 ] تعمل الفكرة نفسها أيضًا، باستخدام طابور دلو مُكمّم، للرسوم البيانية ذات أوزان الحواف الحقيقية الموجبة عندما تكون نسبة الوزن الأقصى إلى الوزن الأدنى على الأكثر c . [ 15 ] في هذه النسخة الكمية من الخوارزمية، تُعالَج الرؤوس بترتيبٍ مختلف عن النتيجة باستخدام قائمة انتظار ذات أولوية غير كمية، ولكن لا يزال يتم العثور على أقصر المسارات الصحيحة. [ 5 ] في هذه الخوارزميات، لا تتجاوز الأولويات نطاق عرضه c + 1 ، لذا يمكن استخدام التحسين المعياري لتقليل المساحة إلى O ( n + c ) . [ 8 ] [ 14 ]
يمكن استخدام صيغة معدلة من الخوارزمية نفسها لحل مشكلة المسار الأوسع . وبالاقتران مع طرق لتقسيم أوزان الحواف غير الصحيحة بسرعة إلى مجموعات فرعية يمكن تعيين أولويات صحيحة لها، فإنها تؤدي إلى حلول شبه خطية لنسخة المصدر الواحد والوجهة الواحدة من مشكلة المسار الأوسع. [ 16 ]
غلاف مجموعة جشع
تُدخل مسألة تغطية المجموعات عائلة من المجموعات . يجب أن يكون الناتج عائلة فرعية من هذه المجموعات، بنفس اتحاد العائلة الأصلية، مع تضمين أقل عدد ممكن من المجموعات. تُصنف هذه المسألة ضمن المسائل الصعبة حسابيًا (NP-hard) ، ولكن يوجد لها خوارزمية تقريبية جشعة تحقق نسبة تقريب لوغاريتمية، وهي أفضل نسبة ممكنة ما لم تكن P = NP . [ 17 ] تختار هذه الخوارزمية التقريبية عائلتها الفرعية عن طريق اختيار مجموعة بشكل متكرر تغطي أكبر عدد ممكن من العناصر المتبقية غير المغطاة. [ 18 ] يتطلب تمرين قياسي في تصميم الخوارزميات تنفيذ هذه الخوارزمية في وقت خطي بالنسبة لحجم المدخلات، وهو مجموع أحجام جميع مجموعات المدخلات. [ 19 ]
يمكن حل هذه المشكلة باستخدام قائمة انتظار من المجموعات في عائلة المدخلات، مرتبة حسب الأولوية بناءً على عدد العناصر المتبقية التي تغطيها. في كل مرة تختار فيها الخوارزمية الجشعة مجموعةً كجزء من مخرجاتها، يجب طرح عناصر المجموعة التي تم تغطيتها حديثًا من أولويات المجموعات الأخرى التي تغطيها؛ وعلى مدار الخوارزمية، يكون عدد تغييرات الأولويات هذه هو مجموع أحجام مجموعات المدخلات. الأولويات عبارة عن أعداد صحيحة متناقصة بشكل رتيب، ومحدودة من الأعلى بعدد العناصر المراد تغطيتها. يتضمن كل اختيار للخوارزمية الجشعة إيجاد المجموعة ذات الأولوية القصوى، وهو ما يمكن القيام به عن طريق المسح لأسفل عبر خانات قائمة الانتظار، بدءًا من أحدث قيمة قصوى سابقة. يتناسب إجمالي الوقت خطيًا مع حجم المدخلات. [ 10 ]
الجدولة
يمكن استخدام قوائم الانتظار المجمعة لجدولة المهام ذات المواعيد النهائية، على سبيل المثال في إعادة توجيه حزم بيانات الإنترنت مع ضمانات جودة الخدمة . في هذا التطبيق، يجب تقسيم المواعيد النهائية إلى فترات زمنية منفصلة، وتُعتبر المهام التي تقع مواعيدها النهائية ضمن نفس الفترة الزمنية متساوية الأولوية. [ 2 ]
تم تطبيق نوع مُعدّل من بنية بيانات قائمة الانتظار المُكمّمة، وهي قائمة انتظار التقويم ، على جدولة عمليات محاكاة الأحداث المنفصلة ، حيث تمثل عناصر قائمة الانتظار أحداثًا مستقبلية مُرتبة حسب توقيت حدوثها خلال المحاكاة. في هذا التطبيق، يُعد ترتيب الأحداث بالغ الأهمية، لذا لا يمكن تقريب الأولويات. لذلك، تُجري قائمة انتظار التقويم عمليات البحث عن العنصر ذي الأولوية الدنيا بطريقة مختلفة عن قائمة انتظار الدلو: ففي قائمة انتظار الدلو، يُمكن إرجاع أي عنصر من الدلو الأول غير الفارغ، بينما تبحث قائمة انتظار التقويم في جميع العناصر الموجودة في ذلك الدلو لتحديد العنصر ذي الأولوية الأقل غير المُكمّمة. وللحفاظ على سرعة عمليات البحث هذه، تحاول هذه النسخة المُعدّلة الحفاظ على عدد الدلو متناسبًا مع عدد العناصر، وذلك عن طريق تعديل مقياس التكميم وإعادة بناء بنية البيانات عند اختلال توازنها. قد تكون قوائم انتظار التقويم أبطأ من قوائم انتظار الحاويات في أسوأ الحالات (عندما تتجمع عناصر كثيرة في أصغر حاوية واحدة)، لكنها سريعة عندما تتوزع العناصر بالتساوي بين الحاويات، مما يجعل متوسط حجم الحاوية ثابتًا. [ 20 ] [ 21 ]
مسيرة سريعة
في الرياضيات التطبيقية والأساليب العددية لحل المعادلات التفاضلية ، استُخدمت طوابير الأولوية غير المنظمة لترتيب خطوات طريقة المسير السريع لحل مسائل القيم الحدية لمعادلة إيكونال ، المستخدمة لنمذجة انتشار الموجات . تحدد هذه الطريقة الأوقات التي يعبر فيها حد متحرك مجموعة من النقاط المنفصلة (مثل نقاط شبكة عددية) باستخدام طريقة ترتيب أولويات تُشبه نسخة متصلة من خوارزمية ديكسترا ، ويُهيمن على زمن تشغيلها طابور الأولوية لهذه النقاط. يمكن تسريعها إلى زمن خطي بتقريب الأولويات المستخدمة في هذه الخوارزمية إلى أعداد صحيحة، واستخدام طابور دلو لهذه الأعداد. وكما هو الحال في خوارزميتي ديكسترا وديال، فإن الأولويات رتيبة، لذا يمكن للمسير السريع استخدام التحسين الرتيب لطابور الدلو وتحليله. مع ذلك، يُدخل التقطيع بعض الخطأ في الحسابات الناتجة. [ 4 ]
انظر أيضاً
- الكومة المرنة ، طريقة مختلفة لتسريع قوائم الانتظار ذات الأولوية باستخدام أولويات تقريبية
مراجع
- 1 2 3 4 5 سكينا، ستيفن س. (1998)، دليل تصميم الخوارزميات ، سبرينغر، ص 181، ISBN 9780387948607.
- 1 2 3 فيغيرا، ن. ر. (1997)، "حل لمشكلة طابور الأولوية في أنظمة الخدمة المرتبة حسب الموعد النهائي"، وقائع المؤتمر الدولي السادس حول اتصالات وشبكات الحاسوب ، مطبعة جمعية مهندسي الكهرباء والإلكترونيات، ص 320-325 ، doi : 10.1109/icccn.1997.623330 ، ISBN 0-8186-8186-1، S2CID 5611516
- 1 2 هينزينجر، مونيكا ؛ نو، ألكسندر؛ شولز، كريستيان (2019)، "القطع الدنيا الدقيقة للذاكرة المشتركة"، ندوة IEEE الدولية للمعالجة المتوازية والموزعة لعام 2019، IPDPS 2019، ريو دي جانيرو، البرازيل، 20-24 مايو 2019، الصفحات 13-22 ، arXiv : 1808.05458 ، doi : 10.1109/IPDPS.2019.00013 ، ISBN 978-1-7281-1246-6، S2CID 52019258
- 1 2 3 راش، كريستيان؛ ساتزجر، توماس (2009)، "ملاحظات حول تطبيق O ( N ) لطريقة المسير السريع" (ملف PDF) ، مجلة IMA للتحليل العددي ، 29 (3): 806-813 ، doi : 10.1093/imanum/drm028 ، MR 2520171
- 1 2 روبيلدو، أليسيا؛ غيفانت، خوسيه إي. (2010)، "قوائم الانتظار ذات الأولوية الزائفة لتحسين الأداء في الوقت الحقيقي لعمليات البرمجة الديناميكية المطبقة على تخطيط المسار" (ملف PDF) ، في وايث، غوردون؛ أبكروفت، بن (محرران)، المؤتمر الأسترالي الآسيوي للروبوتات والأتمتة
- 1 2 إيدلكامب، ستيفان؛ شرودل، ستيفان (2011)، "3.1.1 هياكل بيانات الدلو" ، البحث الاستدلالي: النظرية والتطبيقات ، إلسيفير، ص 90-92 ، ISBN 9780080919737انظر أيضًا الصفحة 157 للاطلاع على تاريخ وتسمية هذا الهيكل.
- 1 2 3 ديال، روبرت ب. (1969)، "الخوارزمية 360: غابة أقصر مسار مع ترتيب طوبولوجي [H]"، اتصالات ACM ، 12 (11): 632-633 ، doi : 10.1145/363269.363610 ، S2CID 6754003 .
- 1 2 3 ميلهورن، كورت ؛ ساندرز، بيتر (2008)، "10.5.1 طوابير الدلو" ، الخوارزميات وهياكل البيانات: مجموعة الأدوات الأساسية ، سبرينغر، ص 201، ISBN 9783540779773.
- 1 2 3 4 بيرتسيكاس، ديمتري ب. (1991)، "خوارزمية ديال" ، تحسين الشبكات الخطية: الخوارزميات والرموز ، كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا، ص 72-75 ، ISBN 0-262-02334-2MR 1201582
- 1 2 ليم، سي إل؛ موفات، أليستير؛ ويرث، أنتوني إيان (2014)، "الأساليب الكسولة والمتسرعة لمشكلة تغطية المجموعة" ، في توماس، بروس؛ باري، ديف (محرران)، المؤتمر السابع والثلاثون لعلوم الحاسوب الأسترالي الآسيوي، ACSC 2014، أوكلاند، نيوزيلندا، يناير 2014 ، CRPIT، المجلد 147، الجمعية الأسترالية للحاسوب ، الصفحات 19-27 انظر على وجه الخصوص القسم 2.4، "قائمة الانتظار ذات الأولوية"، صفحة 22.
- ↑ جونسون، دونالد ب. (1981)، "طابور ذو أولوية تستغرق فيه عمليات التهيئة والطابور وقتًا قدره O (log log D ) "، نظرية الأنظمة الرياضية ، 15 (4): 295-309 ، doi : 10.1007/BF01786986 ، MR 0683047 ، S2CID 35703411
- ↑ ماتولا، ديفيد دبليو .؛ بيك، إل إل (1983)، "خوارزميات الترتيب والتجميع والتلوين البياني من الأصغر إلى الأخير"، مجلة ACM ، 30 (3): 417-427 ، doi : 10.1145/2402.322385 ، MR 0709826 ، S2CID 4417741 .
- ↑ فارغيز، جورج (2005)، خوارزميات الشبكات: منهج متعدد التخصصات لتصميم أجهزة شبكية سريعة ، مورغان كوفمان، ص 78-80 ، ISBN 9780120884773.
- 1 2 فيستا، باولا (2006)، "خوارزميات أقصر مسار"، في ريسيندي، ماوريسيو جي سي ؛ باردالوس، بانوس إم (محرران)، دليل التحسين في الاتصالات ، بوسطن: سبرينغر، ص 185-210 ، doi : 10.1007/978-0-387-30165-5_8 ، ISBN 978-0-387-30662-9انظر على وجه الخصوص القسم 8.3.3.6، "تنفيذ ديال"، الصفحات 194-195.
- ↑ ينسب Mehlhorn & Sanders (2008) (التمرين 10.11، ص. 201) هذه الفكرة إلى ورقة بحثية عام 1978 لـ EA Dinic (Yefim Dinitz).
- ↑ جابو، هارولد ن .؛ تارجان، روبرت إي. (1988)، "خوارزميات لمسائل تحسين عنق الزجاجة المزدوجة" ، مجلة الخوارزميات ، 9 (3): 411-417 ، doi : 10.1016/0196-6774(88)90031-4 ، MR 0955149
- ↑ دينور، إيريت ؛ Steurer، David (2014)، “Analytical النهج للتكرار المتوازي”، في Shmoys، David B. (ed.)، ندوة حول نظرية الحوسبة، STOC 2014، نيويورك، نيويورك، الولايات المتحدة الأمريكية، 31 مايو - 03 يونيو 2014 ، ACM، الصفحات من 624 إلى 633، أرخايف : 1305.1979 ، دوى : 10.1145/2591796.2591884 ، ISBN 978-1-4503-2710-7، MR 3238990 ، S2CID 15252482
- ↑ جونسون، ديفيد س. (1974)، "خوارزميات التقريب للمسائل التوافقية"، مجلة علوم الحاسوب والأنظمة ، 9 (3): 256-278 ، Bibcode : 1974JCoSS...9..256J ، doi : 10.1016/S0022-0000(74)80044-9 ، MR 0449012
- ^ كورمين، توماس هـ . ليسرسون، تشارلز إي . ريفست، رونالد ل . ستاين، كليفورد (2009) [1990]، “التمرين 35.3-3”، مقدمة للخوارزميات ( الطبعة الثالثة)، مطبعة معهد ماساتشوستس للتكنولوجيا وماكجرو هيل، ص. 1122، ردمك 0-262-03384-4
- ↑ براون، ر. (أكتوبر 1988)، "طوابير التقويم: سريع"تنفيذ قائمة انتظار ذات أولوية لمشكلة مجموعة أحداث المحاكاة"، مجلة اتصالات ACM ، 31 (10): 1220-1227 ، doi : 10.1145/63039.63045 ، S2CID 32086497
- ↑ إريكسون، ك. بروس؛ لادنر، ريتشارد إي .؛ لاماركا، أنتوني (2000)، "تحسين قوائم انتظار التقويم الثابتة"، معاملات ACM في النمذجة ومحاكاة الحاسوب ، 10 (3): 179-214 ، doi : 10.1145/361026.361028
- قوائم الانتظار ذات الأولوية
