39. البحث بعرض أولاً (Breadth First Search - BFS)
BFS هي خوارزمية اجتياز للرسوم البيانية تستكشف جميع العُقد المجاورة في مستوى العمق الحالي قبل الانتقال إلى العُقد الموجودة في مستوى العمق التالي.
المفهوم: استكشاف الطبقات
تخيل تموجات في بركة. يستكشف BFS طبقة تلو الأخرى، ويجد جميع العُقد البعيدة خطوة واحدة، ثم جميع العُقد البعيدة خطوتين، وهكذا.
يستخدم BFS قائمة انتظار (Queue) لتتبع العُقد التي يجب زيارتها بعد ذلك، مما يضمن الاستكشاف مستوى تلو الآخر.
خطوات الخوارزمية
- البدء من عُقدة المصدر S، وضع علامة عليها كمُزارة، وإضافتها إلى قائمة الانتظار.
- طالما أن قائمة الانتظار ليست فارغة:
- إزالة عُقدة
Uمن قائمة الانتظار. - لكل جار
Vلم تتم زيارته لـU:- وضع علامة على
Vكمُزار، وإضافته إلى قائمة الانتظار.
- وضع علامة على
- إزالة عُقدة
حالات الاستخدام
- إيجاد أقصر مسار في رسم بياني غير مُوزَّن (لأنه يستكشف أقرب العُقد أولاً).
- زواحف الويب (الزحف مستوى تلو الآخر).