انتقل إلى المحتوى

خوارزمية بلمان فورد

من ويكيبيديا، الموسوعة الحرة

هذه نسخة قديمة من هذه الصفحة، وقام بتعديلها MaraBot (نقاش | مساهمات) في 07:38، 7 يوليو 2022 (صيانة : تنظيف). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة، وقد تختلف اختلافًا كبيرًا عن النسخة الحالية.

خوارزمية بلمان فورد
بيانات عامّة
الصنف
بنية البيانات
مشتق من
المكتشف
سمي نسبة لـ
الأداء
أسوء حالة
الحالة المُثلى
أسوأ حالة تعقيد مكاني

خوارزمية بلمان - فورد (بالإنجليزية: Bellman–Ford algorithm)‏ تقوم بحساب الطريق الأقصر والأسرع في مخطط موجه من خلال مصدر القمة، على عكس خوارزمية دجكسترا فانها تقوم بحساب الحواف الموجهة السالبة (إضافة إلى الموجبة)، و تمت تسميتها نسبة للعالمين ريتشارد بلمان وفورد لستر.[3] تسمح هذه الخوارزمية بوجود عدة أقواس أو دوائر ذات اتجاه سالب كما تسمح بالكشف عن وجود دوائر ماصة أي دوائر ذات وزن إجمالي سالب (اتجاه سالب)، قابلة للحصول من مصدر القمة.

الخوارزمية

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

الشفرة

إجراءات بلمان - فورد(قائمة الحواف، قائمة القمم، مصدر القمة):
 // هذا التطبيق يأخذ في الرسم البياني، كما هو ممثل قوائم القمم والحواف، ويملى مسافة صفين.
 
  // الخطوة 1: بداية البيان:
 لكل قمة ق:
   إذا القمة هي المصدر فإن المسافة(ق) = 0
   وإلا فالمسافة(ق) = مالانهاية 
   مع السلف = معدوم 
 
   // الخطوة 2: تمديد الحواف مراراً 
  لكل ر من 1 إلى حجم (القمم - 1):
    لكل حافة (ق، ع) مع الوزن (و) في الحواف : 
    إذا المسافة[ع] + و <المسافة[ق]:
      المسافة [ق] = المسافة [ع] + و 
   // الخطوة 3: التحقق من وجود دورات سلبية: 
  لكل حافة (ق، ع) مع حواف ث الوزن في: 
    إذا المسافة[ع] + و <المسافة[ق]: 
     خطأ "الرسم البياني يحتوي على دورات سلبية"
  

برهان صحتها

يمكن إظهار صحة الخوارزمية بواسطة الاستقراء الرياضي: مبرهنة: بعد تكرار للدورات:

المراجع

  1. ^ الوصول: 28 مايو 2022. مذكور في: RFC 2453: RIP Version 2. الاقتباس: RIP is a routing protocol based on the Bellman-Ford (or distance vector) algorithm.. المُؤَلِّف: Gary Scott Malkin. الناشر: مجموعة مهندسي الإنترنت. مُعرِّف الغرض الرَّقميُّ (DOI): 10.17487/RFC2453. لغة العمل أو لغة الاسم: الإنجليزية. تاريخ النشر: نوفمبر 1998.
  2. ^ الوصول: 28 مايو 2022. مذكور في: RFC 6126: The Babel Routing Protocol. الاقتباس: Babel […] is based on the Bellman-Ford protocol […]. المُؤَلِّف: Juliusz Chroboczek. الناشر: مجموعة مهندسي الإنترنت. مُعرِّف الغرض الرَّقميُّ (DOI): 10.17487/RFC6126. لغة العمل أو لغة الاسم: الإنجليزية. تاريخ النشر: أبريل 2011.
  3. ^ "معلومات عن خوارزمية بلمان-فورد على موقع brilliant.org". brilliant.org. مؤرشف من الأصل في 2019-02-02.