خوارزمية البحث A*

خوارزمية A* (تُنطق "إيه-ستار") هي خوارزمية لاجتياز الرسوم البيانية وإيجاد المسارات ، وتُستخدم في العديد من مجالات علوم الحاسوب نظرًا لشموليتها وأمثليتها وكفاءتها العالية. [ 1 ] بمعلومية رسم بياني مُثقَّل ، وعقدة مصدر ، وعقدة هدف، تجد الخوارزمية أقصر مسار (بالنسبة للأوزان المُعطاة) من المصدر إلى الهدف.

أحد أبرز عيوبه العملية هويا(بد){\displaystyle O(b^{d})}يُعرَّف تعقيد المساحة في خوارزمية A* بأنه العمق الذي يُمثله d لأقصر مسار (طول أقصر مسار من عقدة المصدر إلى أي عقدة هدف مُعطاة)، و b عامل التفرع (الحد الأقصى لعدد الحلول اللاحقة لأي حالة مُعطاة). في أنظمة توجيه الرحلات العملية ، تتفوق عليها عمومًا الخوارزميات التي تُعالج الرسم البياني مُسبقًا لتحقيق أداء أفضل، [ 2 ] وكذلك الأساليب ذات الذاكرة المحدودة؛ ومع ذلك، لا تزال خوارزمية A* هي الحل الأمثل في كثير من الحالات. [ 3 ]

نشر بيتر هارت ونيلز نيلسون وبرترام رافائيل من معهد ستانفورد للأبحاث (الذي يُعرف الآن باسم SRI International ) الخوارزمية لأول مرة عام 1968. [ 4 ] ويمكن اعتبارها امتدادًا لخوارزمية ديكسترا . تحقق خوارزمية A* أداءً أفضل باستخدام أساليب استدلالية لتوجيه عملية البحث.

تتوقف خوارزمية A* بمجرد أن تجد أقصر مسار إلى هدف محدد، بدلاً من إنشاء شجرة أقصر مسار كاملة من مصدر محدد إلى جميع الأهداف الممكنة.

تاريخ

تم ابتكار خوارزمية A* من قبل باحثين يعملون على تخطيط مسار الروبوت "شيكي".

تم ابتكار خوارزمية A* كجزء من مشروع Shakey ، الذي كان يهدف إلى بناء روبوت متحرك قادر على تخطيط حركاته بنفسه. اقترح نيلز نيلسون في البداية استخدام خوارزمية Graph Traverser [ 5 ] لتخطيط مسار Shakey. [ 6 ] تعتمد خوارزمية Graph Traverser على دالة استدلالية h ( n ) ، وهي المسافة المُقدَّرة من العقدة n إلى عقدة الهدف، وتتجاهل تمامًا g ( n ) ، وهي المسافة من عقدة البداية إلى n . اقترح بيرترام رافائيل استخدام المجموع، g ( n ) + h ( n ) . [ 7 ] ابتكر بيتر هارت المفاهيم التي نسميها الآن مقبولية واتساق الدوال الاستدلالية. صُممت خوارزمية A* في الأصل لإيجاد المسارات الأقل تكلفة عندما تكون تكلفة المسار هي مجموع تكاليفه، ولكن ثبت أنه يمكن استخدام A* لإيجاد المسارات المثلى لأي مشكلة تُحقق شروط جبر التكلفة. [ 8 ]

تضمنت الورقة البحثية الأصلية لخوارزمية A* لعام 1968 [ 4 ] نظرية تنص على أنه لا يمكن لأي خوارزمية شبيهة بـ A* [ a ] توسيع عدد أقل من العقد مقارنةً بـ A* إذا كانت الدالة الاستدلالية متسقة وتم اختيار قاعدة كسر التعادل لـ A* بشكل مناسب. نُشر "تصحيح" بعد بضع سنوات [ 9 ] زعم أن الاتساق ليس شرطًا، ولكن تبين خطأ هذا الادعاء في عام 1985 في دراسة ديتشر وبيرل الحاسمة حول أمثلية A* (التي تُسمى الآن الكفاءة المثلى)، والتي قدمت مثالًا على خوارزمية A* ذات دالة استدلالية مقبولة ولكنها غير متسقة، حيث توسع عددًا أكبر من العقد بشكل تعسفي مقارنةً بخوارزمية بديلة شبيهة بـ A*. [ 10 ]

وصف

خوارزمية البحث عن المسار A* تتنقل في متاهة تم إنشاؤها عشوائيًا
توضيح لخوارزمية البحث A* لإيجاد مسار بين نقطتين على الرسم البياني. من اليسار إلى اليمين، يتم استخدام طريقة استدلالية تفضل النقاط الأقرب إلى الهدف بشكل متزايد.

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

في كل تكرار من حلقتها الرئيسية، تحتاج خوارزمية A* إلى تحديد أي من مساراتها يجب تمديده. وتفعل ذلك بناءً على تكلفة المسار وتقدير التكلفة اللازمة لتمديد المسار حتى الوصول إلى الهدف. وبشكلٍ أدق، تختار خوارزمية A* المسار الذي يقلل من

و(ن)=ز(ن)+ح(ن){\displaystyle f(n)=g(n)+h(n)}

حيث n هي العقدة التالية على المسار، و g ( n ) هي تكلفة المسار من عقدة البداية إلى n ، و h ( n ) هي دالة استدلالية تُقدّر تكلفة المسار الأرخص من n إلى الهدف. وتختلف هذه الدالة الاستدلالية باختلاف المسألة.

تستخدم التطبيقات النموذجية لخوارزمية A* قائمة انتظار ذات أولوية لإجراء عملية اختيار متكررة للعقد ذات التكلفة الدنيا (المُقدَّرة) للتوسع. تُعرف قائمة الانتظار هذه باسم المجموعة المفتوحة أو الحافة أو الحدود . في كل خطوة من خطوات الخوارزمية، تُزال العقدة ذات أدنى قيمة f ( x ) من قائمة الانتظار، ويتم تحديث قيم f و g لجيرانها وفقًا لذلك، ثم تُضاف هذه العقد المجاورة إلى قائمة الانتظار. تستمر الخوارزمية حتى تصبح إحدى العقد المُزالة (أي العقدة ذات أدنى قيمة f من بين جميع عقد الحافة) عقدة هدف. [ ب ] تُصبح قيمة f لهذا الهدف هي أيضًا تكلفة أقصر مسار، لأن h عند الهدف تساوي صفرًا في طريقة استدلالية مقبولة.

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

على سبيل المثال، عند البحث عن أقصر مسار على خريطة، قد يُمثل h ( x ) المسافة المستقيمة إلى الهدف، لأنها أقصر مسافة ممكنة بين أي نقطتين. بالنسبة لخريطة شبكية من لعبة فيديو، يُصبح استخدام مسافة سيارة الأجرة أو مسافة تشيبيشيف أفضل اعتمادًا على مجموعة الحركات المتاحة (رباعية أو ثمانية).

إذا حققت الدالة الاستدلالية h الشرط الإضافي h ( x ) ≤ d ( x , y ) + h ( y ) لكل حافة ( x , y ) في الرسم البياني (حيث d يمثل طول تلك الحافة)، فإن h تُسمى دالة رتيبة أو متسقة . مع دالة استدلالية متسقة، يضمن A* إيجاد المسار الأمثل دون معالجة أي عقدة أكثر من مرة، ويُكافئ A* تشغيل خوارزمية ديكسترا بتكلفة مُخفَّضة d' ( x , y ) = d ( x , y ) + h ( y ) − h ( x ) . [ 11 ]

الشفرة الزائفة

يصف الكود الزائف التالي الخوارزمية:

دالة إعادة بناء المسار ( من المصدر ، الحالي ) المسار_الكلي := {الحالي} بينما الحالي في مفاتيح المصدر : الحالي : = من المصدر [ الحالي ] المسار_الكلي.إضافة ( الحالي ) إرجاع المسار_الكلي// خوارزمية A* تجد مسارًا من البداية إلى الهدف. // h هي الدالة الاستدلالية. h(n) تُقدّر تكلفة الوصول إلى الهدف من العقدة n. دالة a_star ( البداية ، الهدف ، h ) // مجموعة العقد المكتشفة التي قد تحتاج إلى (إعادة) توسيعها. // في البداية، تكون عقدة البداية فقط معروفة. // عادةً ما يتم تنفيذ ذلك باستخدام كومة دنيا أو قائمة انتظار ذات أولوية بدلاً من مجموعة تجزئة. open_set := {البداية}// بالنسبة للعقدة n، فإن came_from[n] هي العقدة التي تسبقها مباشرةً على أرخص مسار معروف حاليًا من نقطة البداية // إلى n. came_from := خريطة فارغة// بالنسبة للعقدة n، فإن g_score[n] هي التكلفة المعروفة حاليًا لأرخص مسار من البداية إلى n. g_score := خريطة بقيمة افتراضية لا نهائية g_score [ start ] := 0// بالنسبة للعقدة n، f_score[n] := g_score[n] + h(n). يمثل f_score[n] أفضل تقدير لدينا حاليًا حول مدى انخفاض تكلفة المسار من البداية إلى النهاية إذا مر عبر n. f_score := خريطة بقيمة افتراضية لا نهائية. f_score [ start ] : = h ( start )بينما open_set غير فارغة // يمكن أن تتم هذه العملية في زمن O(Log(N ) ) إذا كانت open_set عبارة عن كومة دنيا أو طابور أولوية. current : = العقدة في open_set التي لها أقل قيمة f_score [] إذا كان current = goal أعد reconstruct_path ( came_from , current )open_set.remove ( current ) for each neighbor of current // d(current,neighbor) is the weight of the edge from current to neighbor // tentative_g_score is the distance from start to the neighbor through current tentative_g_score := g_score [ current ] + d ( current , neighbor ) if tentative_g_score < g_score [ neighbor ] // this path to neighbor is better than any previous path. Record it! came_from [ neighbor ] : = current g_score [ neighbor ] : = tentative_g_score f_score [ neighbor ] := tentative_g_score + h ( neighbor ) if neighbor not in open_set open_set.add ( neighbor )// المجموعة المفتوحة فارغة ولكن لم يتم الوصول إلى الهدف أبدًا، يتم إرجاع حالة الفشل

ملاحظة: في هذه الشفرة الزائفة، إذا تم الوصول إلى عقدة عبر مسار، ثم إزالتها من المسار open_set، ثم الوصول إليها لاحقًا عبر مسار أقل تكلفة، فسيتم إضافتها إلى المسار open_setمرة أخرى. هذا ضروري لضمان أن المسار المُعاد هو الأمثل إذا كانت الدالة الاستدلالية مقبولة ولكنها غير متسقة . إذا كانت الدالة الاستدلالية متسقة، فعند إزالة عقدة من open_setالمسار إليها، يُضمن أن يكون المسار هو الأمثل، وبالتالي tentative_g_score < g_score[neighbor]سيفشل الاختبار دائمًا إذا تم الوصول إلى العقدة مرة أخرى. تُسمى الشفرة الزائفة المُطبقة هنا أحيانًا بنسخة البحث في الرسم البياني من خوارزمية A*. [ 12 ] وهذا على عكس النسخة التي لا تتضمن tentative_g_score < g_score[neighbor]اختبار إعادة إضافة العقد إلى المسار open_set، والتي تُسمى أحيانًا بنسخة البحث في الشجرة من خوارزمية A* وتتطلب دالة استدلالية متسقة لضمان الأمثلية.

توضيح لخوارزمية البحث A* لإيجاد مسار من نقطة البداية إلى نقطة الهدف في مسألة تخطيط حركة الروبوت . تمثل الدوائر الفارغة العقد في المجموعة المفتوحة ، أي تلك التي لم يتم استكشافها بعد، بينما تمثل الدوائر المظللة العقد في المجموعة المغلقة. يشير لون كل عقدة مغلقة إلى المسافة من الهدف: كلما كان اللون الأخضر أغمق، كانت العقدة أقرب. يمكن ملاحظة أن خوارزمية A* تتحرك في خط مستقيم باتجاه الهدف، ثم عند اصطدامها بالعائق، تستكشف مسارات بديلة عبر العقد من المجموعة المفتوحة.

مثال

مثال على خوارزمية A* قيد التنفيذ حيث تكون العقد عبارة عن مدن متصلة بالطرق و h(x) هي المسافة في خط مستقيم إلى النقطة المستهدفة:

مثال على خوارزمية A* قيد التنفيذ (العُقد هي مدن متصلة بشبكة طرق، و h(x) هي المسافة في خط مستقيم إلى نقطة الهدف): أخضر: نقطة البداية، أزرق: نقطة الهدف، برتقالي: المناطق التي تمت زيارتها

المفتاح: أخضر: البداية؛ أزرق: الهدف؛ برتقالي: تمت زيارتها

تُستخدم خوارزمية A* في تطبيقات عملية. في هذا المثال، تمثل الحواف خطوط السكك الحديدية، و h(x) هي المسافة على الدائرة العظمى (أقصر مسافة ممكنة على سطح الكرة) إلى الهدف. تبحث الخوارزمية عن مسار بين واشنطن العاصمة ولوس أنجلوس.

خوارزمية A* تجد مسارًا للسكك الحديدية بين واشنطن العاصمة ولوس أنجلوس.

تفاصيل التنفيذ

هناك عدد من التحسينات البسيطة أو تفاصيل التنفيذ التي يمكن أن تؤثر بشكل كبير على أداء تطبيق خوارزمية A*. أول هذه التفاصيل هو أن طريقة تعامل قائمة الانتظار ذات الأولوية مع حالات التعادل قد تؤثر بشكل كبير على الأداء في بعض الحالات. إذا تم حل حالات التعادل بحيث تعمل قائمة الانتظار وفقًا لأسلوب LIFO ( آخر ما يدخل أول ما يخرج )، فإن خوارزمية A* ستتصرف كبحث متعمق أولًا بين المسارات ذات التكلفة المتساوية (متجنبةً استكشاف أكثر من حل أمثل متساوٍ).

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

حالات خاصة

يمكن اعتبار خوارزمية ديكسترا ، كمثال آخر على خوارزمية بحث ذات تكلفة موحدة، حالة خاصة من خوارزمية A* حيثح(x)=0{\displaystyle h(x)=0}لكل x . [ 13 ] [ 14 ] يمكن تنفيذ البحث العميق أولاً باستخدامخوارزمية A* بافتراض وجود عداد عام C مُهيأ بقيمة كبيرة جدًا. في كل مرة نعالج فيها عقدة، نُسند قيمةC إلى جميع جيرانها المكتشفين حديثًا. بعد كل عملية إسناد، نُنقص قيمة العداد C بمقدار واحد. وبالتالي، كلما تم اكتشاف عقدة مبكرًا، زادت قيمتها .ح(x){\displaystyle h(x)}قيمة . يمكن تنفيذ كل من خوارزمية ديكسترا والبحث العميق أولاً بكفاءة أكبر دون تضمين قيمة .ح(x){\displaystyle h(x)}القيمة عند كل عقدة.

ملكيات

الإنهاء والاكتمال

في الرسوم البيانية المحدودة ذات أوزان الحواف غير السالبة، يضمن خوارزمية A* الوصول إلى النهاية وتكون كاملة ، أي أنها ستجد دائمًا حلاً (مسارًا من البداية إلى الهدف) إن وُجد. أما في الرسوم البيانية غير المحدودة ذات عامل التفرع المحدود وتكاليف الحواف غير الصفرية (د(x،y)>ε>0{\textstyle d(x,y)>\varepsilon >0}لبعض الثوابتε{\displaystyle \varepsilon }يضمن خوارزمية A* التوقف فقط في حالة وجود حل. [ 1 ]

المقبولية

يُقال إن خوارزمية البحث مقبولة إذا كانت تضمن إرجاع الحل الأمثل. إذا كانت الدالة الاستدلالية المستخدمة في خوارزمية A* مقبولة ، فإن خوارزمية A* مقبولة. ويمكن تقديم "برهان" بديهي على ذلك كما يلي:

تُسمى العقدة مغلقة إذا تمت زيارتها ولم تكن ضمن المجموعة المفتوحة. نغلق العقدة عندما نزيلها من المجموعة المفتوحة. إحدى الخصائص الأساسية لخوارزمية A*، والتي سنقدم برهانًا موجزًا ​​لها أدناه، هي أنه عندما ن{\displaystyle n}مغلق ،و(ن){\displaystyle f(n)}يمثل هذا تقديرًا متفائلًا (حدًا أدنى) للمسافة الحقيقية من نقطة البداية إلى نقطة الهدف. لذا عندما تكون نقطة الهدف عند هذه النقطة ،ز{\displaystyle g}مغلق ،و(ز){\displaystyle f(g)}لا يزيد عن المسافة الحقيقية. من ناحية أخرى، لا يقل عن المسافة الحقيقية، لأنه طول المسار إلى الهدف مضافًا إليه حد تقريبي.

سنرى الآن أنه كلما كانت العقدةن{\displaystyle n}مغلق ،و(ن){\displaystyle f(n)}هذا تقدير متفائل. يكفي أن نرى أنه كلما لم تكن المجموعة المفتوحة فارغة، فإنها تحتوي على عقدة واحدة على الأقل .ن{\displaystyle n}على المسار الأمثل نحو الهدف الذي من أجلهز(ن){\displaystyle g(n)} هي المسافة الحقيقية من البداية، لأنه في هذه الحالةز(ن){\displaystyle g(n)}+ح(ن){\displaystyle h(n)}يقلل من تقدير المسافة إلى الهدف، وبالتالي فإن القيمة الأصغر المختارة للرأس المغلق تفعل الشيء نفسه. ليكنP{\displaystyle P}ليكن المسار الأمثل من البداية إلى الهدف .ص{\displaystyle p} كن آخر عقدة مغلقة علىP{\displaystyle P} الذيز(ص){\displaystyle g(p)} هي المسافة الحقيقية من البداية إلىص{\displaystyle p}( البداية هي إحدى هذه الرؤوس). العقدة التالية فيP{\displaystyle P}لديه الصحيحز{\displaystyle g}القيمة ، لأنها تم تحديثها عندماص{\displaystyle p}كان مغلقًا، وهو مفتوح لأنه ليس مغلقًا.

الأمثلية والاتساق

تكون الخوارزمية A ذات كفاءة مثلى مقارنةً بمجموعة من الخوارزميات البديلة Alts على مجموعة من المسائل P إذا كان، لكل مسألة P في P ولكل خوارزمية A′ في Alts ، مجموعة العقد التي تُوسّعها A عند حل P هي مجموعة جزئية (قد تكون مساوية) لمجموعة العقد التي تُوسّعها A′ عند حل P. وتُعزى الدراسة الحاسمة للكفاءة المثلى لخوارزمية A* إلى رينا ديختر وجوديا بيرل. [ 10 ] وقد درستا تعريفات متنوعة لـ Alts و P ، بالإضافة إلى اعتبار دالة A* الاستدلالية مقبولة فقط أو متسقة ومقبولة في آنٍ واحد. وأهم نتيجة إيجابية أثبتتاها هي أن A*، مع دالة استدلالية متسقة، تكون ذات كفاءة مثلى مقارنةً بجميع خوارزميات البحث المشابهة لـ A* المقبولة على جميع مسائل البحث "غير الشاذة". وبعبارة أخرى، فإن مفهومهما للمسألة غير الشاذة هو ما نعنيه الآن بعبارة "حتى كسر التعادل". لا تصح هذه النتيجة إذا كانت دالة A* الاستدلالية مقبولة ولكنها غير متسقة. في هذه الحالة، أثبت ديتشر وبيرل وجود خوارزميات مقبولة شبيهة بـ A* يمكنها توسيع عدد أقل من العقد بشكل تعسفي مقارنةً بـ A* في بعض المسائل غير الشاذة.

تُعنى الكفاءة المثلى بمجموعة العقد المُوسّعة، وليس بعدد عمليات توسيع العقد (عدد تكرارات الحلقة الرئيسية لخوارزمية A*). عندما تكون الطريقة الاستدلالية المستخدمة مقبولة ولكنها غير متسقة، فمن الممكن أن تُوسّع خوارزمية A* عقدةً ما مراتٍ عديدة، تصل إلى عددٍ أُسّيٍّ من المرات في أسوأ الحالات. [ 15 ] في مثل هذه الظروف، قد تتفوق خوارزمية ديكسترا على خوارزمية A* بفارقٍ كبير. مع ذلك، وجدت أبحاثٌ حديثةٌ أن هذه الحالة الشاذة لا تحدث إلا في ظروفٍ مُصطنعةٍ مُحددة، حيث يكون وزن حافة الرسم البياني للبحث أُسّيًا بالنسبة لحجم الرسم البياني، وأن بعض الطرق الاستدلالية غير المتسقة (ولكن المقبولة) يُمكن أن تُؤدي إلى تقليل عدد عمليات توسيع العقد في عمليات بحث A*. [ 16 ] [ 17 ]

استرخاء محدود

خوارزمية بحث A* تستخدم دالة استدلالية تساوي 5.0 (=ε) ضعف دالة استدلالية متسقة ، وتحصل على مسار دون المستوى الأمثل

بينما يضمن معيار القبول مسار الحل الأمثل، فإنه يعني أيضًا أن خوارزمية A* يجب أن تفحص جميع المسارات المتساوية في الجدارة للعثور على المسار الأمثل. لحساب أقصر المسارات التقريبية، من الممكن تسريع البحث على حساب الأمثلية عن طريق تخفيف معيار القبول. غالبًا ما نرغب في تحديد حد لهذا التخفيف، بحيث نضمن ألا يكون مسار الحل أسوأ من (1 + ε ) ضعف مسار الحل الأمثل. يُشار إلى هذا الضمان الجديد باسم "القبول- ε" .

يوجد عدد من الخوارزميات المقبولة من النوع ε :

  • خوارزمية A* الموزونة/الأوزان الثابتة. [ 18 ] إذا كانت h <sub>a </sub>( n ) دالة استدلالية مقبولة، ففي النسخة الموزونة من بحث A*، تُستخدم h <sub> w</sub> ( n ) = ε<sub>ha </sub> ( n ) ، حيث ε > 1، كدالة استدلالية، ويُجرى بحث A* كالمعتاد (وهو ما يحدث في النهاية بشكل أسرع من استخدام h <sub> a </sub> نظرًا لتوسيع عدد أقل من العقد). وبالتالي، يمكن أن تكون تكلفة المسار الذي تجده خوارزمية البحث على الأكثر ε ضعف تكلفة المسار الأقل تكلفة في الرسم البياني. [ 19 ]
  • القطع المكافئ المحدب لأعلى/لأسفل (XUP/XDP). [ 20 ] تعديل لدالة التكلفة في خوارزمية A* الموزونة لدفع الحل الأمثل نحو نقطة البداية أو الهدف. يوفر XDP مسارات شبه مثالية بالقرب من نقطة البداية، بينما توفر مسارات XUP مسارات شبه مثالية بالقرب من الهدف. كلا الطريقتين تؤديان إلى نتائج مُرضية.ϵ{\displaystyle \epsilon }- المسارات المثلى بشكل عام.
    وXDP(ن)=12ϵ[ ز(ن)+(2ϵ-1)+(ز(ن)-ح(ن))2+4ϵز(ن)ح(ن) ]{\displaystyle f_{\text{XDP}}(n)={\frac {1}{2\epsilon }}\left[\ g(n)+(2\epsilon -1)+{\sqrt {(g(n)-h(n))^{2}+4\epsilon g(n)h(n)}}\ \right]}.
    وXUP(ن)=12ϵ[ ز(ن)+ح(ن)+(ز(ن)+ح(ن))2+4ϵ(ϵ-1)ح(ن)2 ]{\displaystyle f_{\text{XUP}}(n)={\frac {1}{2\epsilon }}\left[\ g(n)+h(n)+{\sqrt {(g(n)+h(n))^{2}+4\epsilon (\epsilon -1)h(n)^{2}}}\ \right]}.
  • منحنى صاعد/هابط مُجزأ (pwXU/pwXD). [ 21 ] مشابه لـ XUP/XDP ولكن بدوال مُجزأة بدلاً من القطع المكافئ. مسارات الحل هي أيضًاϵ{\displaystyle \epsilon }-أفضل.
    وpwXD(ن)={ز(ن)+ح(ن)،لو ح(ن)>ز(ن)ز(ن)+(2ϵ-1)ح(ن)/ϵ،لو ح(ن)ز(ن){\displaystyle f_{\text{pwXD}}(n)={\begin{cases}g(n)+h(n),&{\text{if }}h(n)>g(n)\\g(n)+(2\epsilon -1)h(n)/\epsilon ,&{\text{if }}h(n)\leq g(n)\end{cases}}}
    وpwXU(ن)={ز(ن)/(2ϵ-1)+ح(ن)،لو ز(ن)<(2ϵ-1)ح(ن)(ز(ن)+ح(ن))/ϵ،لو ز(ن)(2ϵ-1)ح(ن){\displaystyle f_{\text{pwXU}}(n)={\begin{cases}g(n)/(2\epsilon -1)+h(n),&{\text{if }}g(n)<(2\epsilon -1)h(n)\\(g(n)+h(n))/\epsilon ,&{\text{if }}g(n)\geq (2\epsilon -1)h(n)\end{cases}}}
  • يستخدم الترجيح الديناميكي [ 22 ] دالة التكلفةو(ن)=ز(ن)+(1+εw(ن))ح(ن){\displaystyle f(n)=g(n)+(1+\varepsilon w(n))h(n)}، حيثw(ن)={1-د(ن)شمالد(ن)شمال0خلاف ذلك{\displaystyle w(n)={\begin{cases}1-{\frac {d(n)}{N}}&d(n)\leq N\\0&{\text{otherwise}}\end{cases}}}وحيثد(ن){\displaystyle d(n)}يمثل عمق البحث و N هو الطول المتوقع لمسار الحل.
  • يستخدم الترجيح الديناميكي المأخوذ عينات [ 23 ] أخذ عينات من العقد لتحسين تقدير الخطأ الاستدلالي وإزالة التحيز منه.
  • أε*{\displaystyle A_{\varepsilon }^{*}}[ 24 ] يستخدم دالتين استدلاليتين. الأولى هي قائمة FOCAL، والتي تُستخدم لاختيار العقد المرشحة، والثانية هي h F التي تُستخدم لاختيار العقدة الأكثر وعدًا من قائمة FOCAL.
  • يختار A ε [ 25 ] العقد باستخدام الدالة أو(ن)+بحF(ن){\displaystyle Af(n)+Bh_{F}(n)}حيث A و B ثابتان. إذاتعذر تحديد أي عقد، فسيتراجع الخوارزمية باستخدام الدالة .جو(ن)+دحF(ن){\displaystyle Cf(n)+Dh_{F}(n)}، حيث C و D ثابتان.
  • تحاول خوارزمية AlphA* [ 26 ] تعزيز استغلال البيانات من خلال البحث العميق أولاً، وذلك بتفضيل العقد التي تم توسيعها مؤخراً. وتستخدم AlphA* دالة التكلفة.وα(ن)=(1+wα(ن))و(ن){\displaystyle f_{\alpha }(n)=(1+w_{\alpha }(n))f(n)}، أينwα(ن)={λز(π(ن))ز(ن~)Λخلاف ذلك{\displaystyle w_{\alpha }(n)={\begin{cases}\lambda &g(\pi (n))\leq g({\tilde {n}})\\\Lambda &{\text{otherwise}}\end{cases}}}حيث λ و Λ ثابتان معλΛ{\displaystyle \lambda \leq \Lambda }، π ( n ) هو الأصل لـ n ، و ñ هي العقدة التي تم توسيعها مؤخرًا.

تعقيد

باعتبارها خوارزمية بحث استدلالية، فإن أداء خوارزمية A* يتأثر بشكل كبير بجودة الدالة الاستدلالية.ح(ن){\textstyle h(n)}إذا كانت الطريقة الاستدلالية قريبة من التكلفة الحقيقية للوصول إلى الهدف، فإن خوارزمية A* قادرة على تقليل عدد عمليات توسيع العقد بشكل ملحوظ. من ناحية أخرى، قد تؤدي الطريقة الاستدلالية غير الدقيقة إلى العديد من عمليات التوسيع غير الضرورية.

أسوأ الحالات

في أسوأ الأحوال، تقوم خوارزمية A* بتوسيع جميع العقد.ن{\textstyle n}والتيو(ن)=ز(ن)+ح(ن)ج*{\textstyle f(n)=g(n)+h(n)\leq C^{*}}، أينج*{\textstyle C^{*}}هي تكلفة عقدة الهدف الأمثل.

لماذا لا يمكن أن يكون الأمر أسوأ

لنفترض وجود عقدةشمال{\textstyle N'}في القائمة المفتوحة معو(شمال)>ج*{\textstyle f(N')>C^{*}}وهي العقدة التالية التي سيتم توسيعها. بما أن عقدة الهدف تحتوي علىو(زoأل)=ز(زoأل)+ح(زoأل)=ز(زoأل)=ج*{\textstyle f(goal)=g(goal)+h(goal)=g(goal)=C^{*}}، وو(شمال)>ج*{\textstyle f(N')>C^{*}}، ستكون قيمة f للعقدة الهدف أقل وسيتم توسيعها قبلشمال{\textstyle N'}لذلك، لا تقوم خوارزمية A* بتوسيع العقد باستخدامو(ن)>ج*{\textstyle f(n)>C^{*}}.

لماذا لا يمكن أن يكون أفضل

افترض وجود خوارزمية مثلى توسع عددًا أقل من العقد منج*{\textstyle C^{*}}في أسوأ الأحوال، باستخدام نفس الأسلوب الاستدلالي. هذا يعني أنه لا بد من وجود عقدة ما.شمال{\textstyle N'}بحيثو(شمال)<ج*{\textstyle f(N')<C^{*}}ومع ذلك، يختار البرنامج عدم توسيعه.

والآن، لنفترض رسمًا بيانيًا معدلًا حيث توجد حافة جديدة من التكلفةε{\textstyle \varepsilon }(معε>0{\textstyle \varepsilon >0}) تُضاف منشمال{\textstyle N'}إلى الهدف. إذاو(شمال)+ε<ج*{\textstyle f(N')+\varepsilon <C^{*}}ثم يمر المسار الأمثل الجديد عبرشمال{\textstyle N'}ومع ذلك، بما أن الخوارزمية لا تزال تتجنب التوسعشمال{\textstyle N'}، فسوف يفوت المسار الأمثل الجديد، مما ينتهك أمثليته.

لذلك، لا يمكن لأي خوارزمية مثلى، بما في ذلك خوارزمية A*، أن توسع عددًا أقل من العقد منج*{\textstyle C^{*}}في أسوأ الأحوال.

الترميز الرياضي

غالبًا ما يُوصف تعقيد خوارزمية A* في أسوأ الحالات بأنهيا(بد){\textstyle O(b^{d})}، أينب{\displaystyle b}هو عامل التفرع ود{\textstyle d}يمثل هذا عمق الهدف الأقل عمقًا. ورغم أن هذا يعطي فكرة عامة، إلا أنه لا يعكس بدقة السلوك الفعلي لخوارزمية A*.

يأخذ الحد الأكثر دقة في الاعتبار عدد العقد التيو(ن)ج*{\textstyle f(n)\leq C^{*}}. لوε{\displaystyle \varepsilon }أصغر فرق ممكن فيو{\textstyle f}إذا كانت التكلفة بين العقد المتميزة، فقد تتوسع خوارزمية A* إلى ما يلي:

يا(ج*ε){\displaystyle O\left({\frac {C^{*}}{\varepsilon }}\right)}

يمثل هذا تعقيد الوقت والمساحة في أسوأ الحالات.

تعقيد المساحة

تُعدّ تعقيدات المساحة في خوارزمية A* مماثلة تقريبًا لجميع خوارزميات البحث الأخرى في الرسوم البيانية، حيث تحتفظ بجميع العقد المُولّدة في الذاكرة. [ 1 ] عمليًا، يُشكّل هذا أكبر عيوب خوارزمية A*، مما أدى إلى تطوير خوارزميات بحث استدلالية محدودة الذاكرة، مثل خوارزمية A* المُعمّقة التكرارية ، وخوارزمية A* محدودة الذاكرة، وخوارزمية SMA* .

التطبيقات

تُستخدم خوارزمية A* غالبًا لحل مشكلة إيجاد المسار الشائعة في تطبيقات مثل ألعاب الفيديو، ولكنها صُممت في الأصل كخوارزمية عامة لاجتياز الرسوم البيانية. [ 4 ] ولها تطبيقات في مشاكل متنوعة، بما في ذلك مشكلة التحليل النحوي باستخدام القواعد النحوية العشوائية في معالجة اللغات الطبيعية . [ 27 ] ومن الأمثلة الأخرى البحث المعلوماتي مع التعلم عبر الإنترنت. [ 28 ]

العلاقة بالخوارزميات الأخرى

ما يميز خوارزمية A* عن خوارزمية البحث الأفضل أولاً الجشعة هو أنها تأخذ التكلفة / المسافة المقطوعة بالفعل، g ( n ) ، في الاعتبار.

يمكن اعتبار بعض المتغيرات الشائعة لخوارزمية ديكسترا حالة خاصة من خوارزمية A* حيث يكون الاستدلالح(ن)=0{\displaystyle h(n)=0}لجميع العقد؛ [ 13 ] [ 14 ] بدورها، تُعد كل من خوارزمية ديكسترا وخوارزمية A* حالتين خاصتين من البرمجة الديناميكية . [ 29 ] وتُعد خوارزمية A* نفسها حالة خاصة من تعميم خوارزمية التفرع والتقييد . [ 30 ]

خوارزمية A* تشبه خوارزمية البحث الشعاعي باستثناء أن خوارزمية البحث الشعاعي تضع حدًا لعدد المسارات التي يتعين عليها استكشافها. [ 31 ]

المتغيرات

يمكن أيضًا تكييف خوارزمية A* لتصبح خوارزمية بحث ثنائية الاتجاه ، ولكن يجب توخي الحذر الشديد فيما يتعلق بمعيار التوقف. [ 35 ]

انظر أيضاً

ملحوظات

  1. تعني عبارة "شبيهة بخوارزمية A*" أن الخوارزمية تبحث بتمديد المسارات التي تبدأ من عقدة البداية، حافةً تلو الأخرى، تمامًا كما تفعل خوارزمية A*. وهذا يستثني، على سبيل المثال، الخوارزميات التي تبحث عكسيًا من الهدف أو في كلا الاتجاهين في آنٍ واحد. إضافةً إلى ذلك، يجب أن تكون الخوارزميات التي تغطيها هذه النظرية مقبولة، و"ليست أكثر معلوماتية" من خوارزمية A*.
  2. يمكن تجاوز عقد الهدف عدة مرات إذا بقيت عقد أخرى ذات قيم f أقل ، لأنها قد تؤدي إلى مسار أقصر نحو الهدف.

مراجع

  1. 1 2 3 راسل، ستيوارت جيهنورفيج، بيتر (2018). الذكاء الاصطناعي: منهج حديث (  الطبعة الرابعة). بوسطن: بيرسون. ISBN 978-0134610993. OCLC 1021874142 . 
  2. ديلينغ، د.؛ ساندرز، ب .؛ شولتس، د.؛ فاغنر، د. (2009). "هندسة خوارزميات تخطيط المسارات". خوارزميات الشبكات الكبيرة والمعقدة: التصميم والتحليل والمحاكاة . سلسلة محاضرات في علوم الحاسوب. المجلد 5515. سبرينغر. الصفحات 117-139 . doi : 10.1007/978-3-642-02094-0_7 . ISBN   978-3-642-02093-3.
  3. زينغ، و.؛ تشيرش، ر. ل. (2009). "إيجاد أقصر المسارات على شبكات الطرق الحقيقية: حالة خوارزمية A*" . المجلة الدولية لعلوم المعلومات الجغرافية . 23 (4): 531-543 . Bibcode : 2009IJGIS..23..531Z . doi : 10.1080/13658810801949850 . S2CID 14833639 . 
  4. هارت ، ب. إي نيلسون ، ن. جرافائيل، ب. (1968). "أساس رسمي لتحديد المسارات ذات التكلفة الدنيا باستخدام الاستدلال". معاملات IEEE في علوم الأنظمة وعلم التحكم الآلي . 4 (2): 100-107 . Bibcode : 1968IJSSC...4..100H . doi : 10.1109/TSSC.1968.300136 .
  5. دورن، جيه إي؛ ميتشي، د. (20-09-1966). "تجارب مع برنامج اجتياز الرسم البياني". وقائع الجمعية الملكية بلندن، السلسلة أ . 294 (1437): 235-259 . رمز Bibcode : 1966RSPSA.294..235D . doi : 10.1098/rspa.1966.0205 . S2CID 21698093 . 
  6. نيلسون، نيلز ج. (30 أكتوبر 2009). البحث عن الذكاء الاصطناعي (ملف PDF) . كامبريدج: مطبعة جامعة كامبريدج. ISBN 9780521122931كانت إحدى أولى المشكلات التي تناولناها هي كيفية تخطيط سلسلة من "نقاط الطريق" التي يمكن لشيكي استخدامها للتنقل من مكان إلى آخر. [...] مشكلة التنقل لدى شيكي هي مشكلة بحث، على غرار تلك التي ذكرتها سابقًا.
  7. نيلسون، نيلز ج. (30 أكتوبر 2009). البحث عن الذكاء الاصطناعي (ملف PDF) . كامبريدج: مطبعة جامعة كامبريدج. ISBN 9780521122931لاحظ بيرترام رافائيل، الذي كان يدير العمل على شيكي في ذلك الوقت، أن القيمة الأفضل للنتيجة ستكون مجموع المسافة المقطوعة حتى الآن من الموضع الأولي بالإضافة إلى تقديري الاستدلالي للمسافة التي كان على الروبوت أن يقطعها.
  8. إيدلكامب، ستيفان؛ جبار، شهيد؛ لوتش-لافوينتي، ألبرتو (2005). "البحث الاستدلالي الجبري للتكلفة". وقائع المؤتمر الوطني العشرين حول الذكاء الاصطناعي (AAAI) (ملف PDF) . الصفحات 1362-1367 . ISBN  978-1-57735-236-5.
  9. هارت، بيتر إي.؛ نيلسون، نيلز جيه .؛ رافائيل، بيرترام (1972-12-01). "تصحيح لـ 'أساس رسمي لتحديد المسارات ذات التكلفة الدنيا باستخدام الاستدلال'"( ملف PDF) . نشرة ACM SIGART (37): 28-29 . doi : 10.1145/1056777.1056779 . S2CID 6386648 . 
  10. 1 2 ديختر، رينا؛ جوديا بيرل (1985). "استراتيجيات البحث الأفضل أولاً المعممة وأمثلية خوارزمية A*" . مجلة ACM . 32 (3): 505-536 . doi : 10.1145/3828.3830 . S2CID 2092415 . 
  11. نانيتشيني، جياكومو؛ ديلينغ، دانيال؛ شولتس، دومينيك؛ ليبرتي، ليو (2012). "بحث A* ثنائي الاتجاه على شبكات الطرق المتغيرة مع الزمن" (ملف PDF) . الشبكات . 59 (2): 240-251 . doi : 10.1002/NET.20438 .
  12. راسل، ستيوارت جيه ؛ نورفيج، بيتر (2009). الذكاء الاصطناعي: منهج حديث ( الطبعة الثالثة). بوسطن: بيرسون. ص 95. ISBN   978-0136042594.
  13. 1 2 دي سميث، مايكل جون؛ جودتشايلد، مايكل ف.؛ لونجلي، بول (2007)، التحليل الجغرافي المكاني: دليل شامل للمبادئ والتقنيات وأدوات البرمجيات ، دار نشر تروبادور المحدودة، ص 344، ISBN  9781905886609.
  14. 1 2 هيتلاند، ماغنوس لي (2010)، خوارزميات بايثون: إتقان الخوارزميات الأساسية في لغة بايثون ، أبريس، ص 214، ISBN  9781430232377تمت أرشفة هذا النص من النسخة الأصلية بتاريخ 15 فبراير 2022.
  15. مارتيلي، ألبرتو (1977). "حول تعقيد خوارزميات البحث المقبولة". الذكاء الاصطناعي . 8 (1): 1-13 . doi : 10.1016/0004-3702(77)90002-9 .
  16. فيلنر، أرييل؛ عوزي زهافي (2011). "الأساليب الاستدلالية غير المتسقة في النظرية والتطبيق" . الذكاء الاصطناعي . 175 ( 9-10 ): 1570-1603 . doi : 10.1016/j.artint.2011.02.001 .
  17. تشانغ، تشيفو؛ إن آر ستورتيفانت (2009). استخدام أساليب استدلالية غير متسقة في بحث A* . المؤتمر الدولي المشترك الحادي والعشرون حول الذكاء الاصطناعي. الصفحات 634-639 . 
  18. بول، إيرا (1970). "النتائج الأولية حول تأثير الخطأ في البحث الاستدلالي". الذكاء الآلي 5. مطبعة جامعة إدنبرة: 219-236 . ISBN 978-0-85224-176-9. OCLC 1067280266 . 
  19. بيرل، جوديا (1984). الاستدلالات: استراتيجيات بحث ذكية لحل مشكلات الحاسوب . أديسون-ويسلي. ISBN 978-0-201-05594-8.
  20. تشين، جينغوي؛ ستورتيفانت، ناثان ر. (2019). "شروط تجنب إعادة توسيع العقد في البحث الأمثل المحدود" . وقائع المؤتمر الدولي المشترك الثامن والعشرين حول الذكاء الاصطناعي . منظمة المؤتمرات الدولية المشتركة حول الذكاء الاصطناعي: 1220-1226 .
  21. تشين، جينغوي؛ ستورتيفانت، ناثان ر. (18 مايو 2021). "الشروط الضرورية والكافية لتجنب إعادة فتح البحث في البحث الأمثل الجزئي الأول باستخدام دوال التحديد العامة" . وقائع مؤتمر AAAI حول الذكاء الاصطناعي . 35 (5): 3688-3696 . doi : 10.1609/aaai.v35i5.16485 . ISSN 2374-3468 . 
  22. بول، إيرا (أغسطس 1973). "تجنب الكارثة (النسبية)، والكفاءة الاستدلالية، والترجيح الديناميكي الحقيقي، والقضايا الحسابية في حل المشكلات الاستدلالية" (ملف PDF) . وقائع المؤتمر الدولي المشترك الثالث حول الذكاء الاصطناعي (IJCAI-73) . المجلد 3. كاليفورنيا، الولايات المتحدة الأمريكية. الصفحات 11-17 .  
  23. كول، أندرياس؛ هيرمان كايندل (أغسطس 1992). "نهج جديد للترجيح الديناميكي" . وقائع المؤتمر الأوروبي العاشر للذكاء الاصطناعي (ECAI-92) . فيينا، النمسا: وايلي. ص 16-17 . ISBN  978-0-471-93608-4.
  24. بيرل، جوديا؛ جين هـ. كيم (1982). "دراسات في الاستدلالات شبه المقبولة". معاملات IEEE في تحليل الأنماط والذكاء الآلي . 4 (4): 392-399 . Bibcode : 1982ITPAM...4..392P . doi : 10.1109 / TPAMI.1982.4767270 . PMID 21869053. S2CID 3176931 .  
  25. غلاب، مالك؛ دينيس ألارد (أغسطس 1983). " خوارزمية البحث الاستدلالي شبه المقبولة Aε" ( ملف PDF) . وقائع المؤتمر الدولي المشترك الثامن حول الذكاء الاصطناعي (IJCAI-83) . المجلد 2. كارلسروه، ألمانيا. الصفحات 789-791 . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 6 أغسطس 2014.  
  26. ريس، بيورن (1999). ألفا*: خوارزمية بحث استدلالية مقبولة من نوع إبسيلون (تقرير). معهد تكنولوجيا الإنتاج، جامعة جنوب الدنمارك. مؤرشف من الأصل بتاريخ 31 يناير 2016. تم الاطلاع عليه بتاريخ 5 نوفمبر 2014 .
  27. كلاين، دان؛ مانينغ، كريستوفر د. (2003). "تحليل A*: اختيار سريع ودقيق لتحليل فيتربي" (ملف PDF) . وقائع مؤتمر تقنيات اللغة البشرية لعام 2003 لفرع أمريكا الشمالية لرابطة اللغويات الحاسوبية . الصفحات 119-126 . doi : 10.3115/1073445.1073461 . 
  28. كاغان إي؛ بن غال آي. (2014). "خوارزمية اختبار جماعي مع التعلم المعلوماتي عبر الإنترنت" (ملف PDF) . معاملات معهد مهندسي الصناعة . 46 (2): 164-184 . doi : 10.1080/0740817X.2013.803639 . S2CID 18588494. مؤرشف من الأصل (ملف PDF) بتاريخ 2016-11-05 . تم الاسترجاع بتاريخ 2016-02-12 . 
  29. فيرغسون، ديف؛ ليخاتشيف، ماكسيم؛ ستينتز، أنتوني (2005). "دليل تخطيط المسار القائم على الاستدلال" (ملف PDF) . وقائع ورشة العمل الدولية حول التخطيط في ظل عدم اليقين للأنظمة المستقلة، المؤتمر الدولي للتخطيط والجدولة الآليين (ICAPS) . الصفحات 9-18 . مؤرشف (ملف PDF) من الأصل بتاريخ 29-06-2016. 
  30. ناو، دانا س.؛ كومار، فيبين؛ كانال، لافين (1984). "التفرع والتقييد العام، وعلاقته بـ A* و AO*" (ملف PDF) . الذكاء الاصطناعي . 23 (1): 29-58 . doi : 10.1016/0004-3702(84)90004-3 . مؤرشف (ملف PDF) من الأصل بتاريخ 2012-10-04.
  31. "متغيرات خوارزمية A*" . theory.stanford.edu . تم الاطلاع عليه بتاريخ 9 يونيو 2023 .
  32. هانسن، إريك أ.؛ تشو، رونغ (2007). "البحث الاستدلالي في أي وقت" . مجلة أبحاث الذكاء الاصطناعي . 28 : 267-297 . arXiv : 1110.2737 . doi : 10.1613/jair.2096 . S2CID 9832874 . 
  33. فره، رؤوف؛ بازيّاد، محمد؛ رحمن، محمد ح.؛ ربيع، تامر؛ بطيب، معمر (14 مايو 2019). "دراسة استراتيجية تخطيط المسار المُخفّض للروبوت المتحرك ذي العجلات التفاضلية" . روبوتيكا . 38 (2): 235-255 . doi : 10.1017/S0263574719000572 . ISSN 0263-5747 . S2CID 181849209 .  
  34. بيجلز، ويم؛ بوست، هينك. خوارزمية ثنائية الاتجاه أخرى لأقصر المسارات (ملف PDF) (تقرير فني). معهد الاقتصاد القياسي، جامعة إيراسموس روتردام. EI 2009-10. مؤرشف (ملف PDF) من الأصل بتاريخ 11-06-2014.
  35. غولدبيرغ، أندرو ف.؛ هاريلسون، كريس؛ كابلان، حاييم؛ ويرنيك، ريناتو ف. "خوارزميات فعالة لأقصر مسار من نقطة إلى نقطة" (ملف PDF) . جامعة برينستون . مؤرشف (ملف PDF) من الأصل في 18 مايو 2022.

للمزيد من القراءة

  • نيلسون، ن. ج. (1980). مبادئ الذكاء الاصطناعي . بالو ألتو، كاليفورنيا: شركة تيوغا للنشر. ISBN 978-0-935382-01-3.
  • والش، توبي. أقصر تاريخ للذكاء الاصطناعي .