الدرس الرابع (١)
خوارزميات البحث هي قلب أنظمة الذكاء الاصطناعي لاكتشاف الاحتمالات وإيجاد الحلول المعقدة. انظر إلى الشكل 2.15 الذي يوضح روبوتاً يتحرك في متاهة من الحالة الأولية إلى الحالة النهائية. تتعدد تطبيقات خوارزميات البحث لتشمل الروبوتات، ومواقع التجارة الإلكترونية لمطابقة الاستفسارات بالمنتجات، ومنصات التواصل الاجتماعي لعرض المحتوى بناء على اهتمامات المستخدمين، وتمكين الألعاب عالية المهارة مثل الشطرنج، ونظم الملاحة مثل نظام GPS لتحديد أسرع طريق، ونظم إدارة الملفات. تنقسم هذه الخوارزميات إلى نوعين رئيسيين: خوارزميات البحث غير المستنيرة مثل البحث بأولوية الاتساع BFS والبحث بأولوية العمق DFS، وهي التي لا تحتوي على معلومات إضافية عن حالة المشكلة سوى القواعد المحددة مسبقاً لاستبعاد المعلومات المستفادة من تعريف المشكلة.
يقوم الدرس على خوارزميات البحث المستمرة وغير المستمرة لاكتشاف الاحتمالات وإيجاد الحلول في أنظمة الذكاء الاصطناعي، مثل تطبيقات الروبوتات ومواقع التجارة الإلكترونية وأنظمة الملاحة. يركز الدرس على حل ألغاز المتاهات باستخدام لغة بايثون، وخصوصاً خوارزمية البحث بأولوية الاتساع التي تستكشف الخلايا المجاورة طبقة تلو الأخرى لإيجاد المسار الأقصر من خلية البداية إلى خلية الهدف. على سبيل المثال، في متاهة شبكية بحجم ، تختبر الدالة الخلايا المتاحة وتستخدم قوائم مخصصة لتتبع الخلايا المفحوصة والخلايا التي تنتظر التوسع، حتى تصل إلى الهدف وتعيد بناء المسار الأقصر عكسياً عبر تتبع العقد الأصلية وصولاً للبداية.
الفكرة الأساسية
تدور فكرة الدرس حول استخدام خوارزميات البحث لتوجيه أنظمة الذكاء الاصطناعي لاكتشاف الاحتمالات وإيجاد الحلول المناسبة في المشكلات المعقدة. تتفرع هذه الخوارزميات إلى نوعين: خوارزميات بحث غير مستمرة تعتمد على قواعد محددة مسبقاً ولا تستخدم معلومات إضافية عن الهدف، وخوارزميات بحث مستمرة تعتمد على دالة استدلالية تصنف البدائل وتقيم المسافات لتوجيه عملية البحث بكفاءة نحو الهدف مثل خوارزمية البحث بأولوية الأفضل وخوارزمية ديكسترا.
الشرح
تبدأ التطبيقات العملية بتمثيل المتاهات رقمياً باستخدام لغة بايثون ومكتبة نومبي، حيث تُمثل الخلايا الفارغة بالأصفار والمشغولة بالحواجز بالآحاد. يتم إنشاء دوال لاستخراج الخلايا المجاورة الفارغة والمتاحة للانتقال أفقياً أو رأسيياً أو قطرياً، مع التحقق من حدود الشبكة وعدم اصطدامها بالحواجز. تُنفذ خوارزمية البحث بأولوية الاتساع عبر تتبع مجموعتين: مجموعة الخلايا المفحوصة ومجموعة الخلايا التي تنتظر التوسع. تفحص الخوارزمية كل خلية مجاورة، وتحدث المسافات وقاموس العقد الأصلية لضمان إيجاد المسار الأقصر بدقة في المخططات غير الموزونة، حيث يكون وزن كل حافة مساوياً لواحد.
مثال محلول خطوة بخطوة
انظر إلى متاهة شبكية بحجم حيث خلية البداية هي وخلية الهدف هي . تستدعي دالة حل المتاهة خلية البداية، وتفحص الخلايا المجاورة المتاحة لها. تنتقل الخوارزمية إلى الخلية ، ثم تفحص جيرانها ومنها ، لتستمر العملية في توسيع الخلايا طبقة تلو الأخرى. يتم حفظ العقدة الأصلية لكل خطوة في قاموس parent، وبمجرد الوصول إلى خلية الهدف ، تُستدعى دالة إعادة بناء المسار لتتتبع العقد عكسياً من الهدف إلى البداية، فينتج المسار الأقصر المكون من الخلايا: ثم ثم ثم ، وبمسافة كلية تساوي ثلاث خطوات بعد فحص عشر خلايا إجمالاً.
أخطاء شائعة
الخلط بين الخوارزميات المستمرة وغير المستمرة من حيث الاعتماد على الدالة الاستدلالية. الخطأ الثاني هو عدم التحقق من حدود الشبكة أثناء استدعاء الخلايا المجاورة مما يسبب أخطاء في التنفيذ البرمجي. الخطأ الثالث هو افتراض أن جميع الحواف في المخططات الموزونة لها نفس التكلفة متجاهلاً أوزان الحركات القطرية المختلفة عن الحركات الرأسية والأفقية.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما الفرق الأساسي بين خوارزميات البحث المستمرة وغير المستمرة؟ الإجابة: خوارزميات البحث غير المستمرة تعتمد على مساحة البحث وقواعد محددة مسبقاً دون معلومات إضافية عن الهدف، بينما تستخدم خوارزميات البحث المستمرة دالة استدلالية لتقدير المسافة وتوجيه عملية البحث نحو الهدف.
السؤال الثاني: ما وظيفة قاموس parent في خوارزمية البحث بأولوية الاتساع؟ الإجابة: يحفظ العقدة الأصلية لكل خلية على المسار الأقصر، لكي تُستخدم لاحقاً في إعادة بناء المسار بصورة عكسية من خلية الهدف إلى خلية البداية.