Uploaded by midoo elkorady

Informed Search Algorithms: Greedy & A*

advertisement
Informed (heuristic / greedy)
search algorithms
‫المقصود ب ‪informed search algorithms‬‬
‫• هى ‪ algorithms‬بتبحث عن الطريق بين ال‪ start‬وال‪ goal‬ف ‪ graph‬بس بتبقى عارفة‬
‫احنا قربنا قد ايه من الهدف وبتحاول تجيب أقصر طريق‬
‫‪Greedy best-first search‬‬
‫• لكل ‪ node‬بيكون معلوم المسافة المباشرة بينها وبين ال‪ ، goal‬بنسمى المسافة دى‬
‫‪ heuristic‬او ‪H‬‬
‫• بنختار دايما ال‪ node‬األقل ف قيمة ال‪H‬‬
‫مثال‬
‫لو عايزين‬
‫نوجد الطريق‬
‫من ‪ Arad‬ل‬
‫‪Bucharest‬‬
‫بُعد كل مدينة عن ‪( Bucharest‬قيم ال‪) H‬‬
‫‪Greedy best-first‬‬
‫• نبدأ ب‪( Arad‬بنكتب‬
‫جوا الدايرة قيمة ال‪H‬‬
‫من الليستة اللى كانت‬
‫ع اليمين ف االسليد‬
‫اللى فاتت)‬
‫‪A‬‬
‫‪366‬‬
‫‪Greedy best-first‬‬
‫• هل ‪ A‬هى الهدف ؟‬
‫طالما أل يبقى نفرعها‬
‫‪A‬‬
‫‪366‬‬
‫‪T‬‬
‫‪329‬‬
‫‪S‬‬
‫‪253‬‬
‫‪Z‬‬
‫‪374‬‬
‫‪Greedy best-first‬‬
‫• نختار األصغر ف‬
‫قيمة ال‪ H‬فهنختار‬
‫ال‪S‬‬
‫‪A‬‬
‫‪366‬‬
‫‪T‬‬
‫‪329‬‬
‫‪S‬‬
‫‪253‬‬
‫‪Z‬‬
‫‪374‬‬
‫‪Greedy best-first‬‬
‫• هل ال‪ S‬هى الهدف ؟‬
‫طالما أل نفرعها‬
‫‪A‬‬
‫‪366‬‬
‫‪T‬‬
‫‪329‬‬
‫‪S‬‬
‫‪253‬‬
‫‪Z‬‬
‫‪374‬‬
‫‪R‬‬
‫‪193‬‬
‫‪F‬‬
‫‪178‬‬
‫‪O‬‬
‫‪380‬‬
‫‪Greedy best-first‬‬
‫• نختار ال‪ ، F‬هل هى‬
‫الهدف ؟ طالما أل‬
‫نفرعها‬
‫‪A‬‬
‫‪366‬‬
‫‪T‬‬
‫‪329‬‬
‫‪S‬‬
‫‪253‬‬
‫‪Z‬‬
‫‪374‬‬
‫‪R‬‬
‫‪193‬‬
‫‪F‬‬
‫‪178‬‬
‫‪O‬‬
‫‪380‬‬
‫‪B‬‬
‫‪0‬‬
‫‪Greedy best-first‬‬
‫• نختار ال‪ B‬هل هى‬
‫الهدف ؟ آه يبقى‬
‫نوقف حل ويبقى‬
‫الطريق هو‬
‫‪A -> S -> F -> B‬‬
‫الحظ اننا اعتمدنا‬
‫اعتماد كلى على قيم‬
‫ال‪ H‬اللى على يمين‬
‫الخريطة ومستخدمناش‬
‫قيم المسافات بين المدن‬
‫‪A‬‬
‫‪366‬‬
‫‪T‬‬
‫‪329‬‬
‫‪S‬‬
‫‪253‬‬
‫‪Z‬‬
‫‪374‬‬
‫‪R‬‬
‫‪193‬‬
‫‪F‬‬
‫‪178‬‬
‫‪O‬‬
‫‪380‬‬
‫‪B‬‬
‫‪0‬‬
‫‪A* search‬‬
‫• يعتبر أحسن ألجورزم ألنه بيجمع بين ميزة ال‪ uniform cost‬بأنه بيعتمد على المسافات‬
‫بين المدن ‪ ،‬وميزة ال‪ greedy best-first‬ألنه بيعتمد على قيم ال‪ H‬اللى كانت على يمين‬
‫الخريطة‬
‫• الفكرة اننا واحنا ماشيين بنجمع المسافات ونحسب المسافة الكلية عادى زى ال ‪uniform‬‬
‫‪ cost‬ولكن جوا الدايرة مش بنكتب المسافة الكلية انما بنكتب مجموع المسافة الكلية وال‪H‬‬
‫• بعد كدة بنختار ال‪ node‬األقل ف مجموع المسافة الكلية وال‪H‬‬
‫• المسافة اللى اتحركناها بنسميها ‪G‬‬
‫• مجموع ال‪ G‬وال‪ H‬بنسميه ‪F‬‬
‫الخريطة مرة تانية‬
‫‪A* search‬‬
‫• نبدأ من ‪: Arad‬‬
‫• ال‪ G‬بصفر ألننا لسة متحركناش‬
‫• ال‪ H‬من على يمين الخريطة ب‪366‬‬
‫• المجموع ‪ F‬بيساوى ‪ 366 + 0‬نكتبه جوا الدايرة‬
‫‪A‬‬
‫‪366‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• ال‪ A‬مش الهدف يبقى نفرعها‬
‫• نكتب على األضالع قيم المسافات اللى ف الخريطة‬
‫نفسها (زى ال‪)uniform cost‬‬
‫‪118‬‬
‫‪T‬‬
‫‪140‬‬
‫‪S‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪ Z‬المسافة الكلية اللى اتحركناها عشان‬
‫نوصل لها (قيمة ال‪ )G‬بتساوى ‪75‬‬
‫• قيمة ال‪ H‬من على يمين الخريطة بتساوى ‪374‬‬
‫• يبقى ال‪ F‬بتساوى ال‪ H‬زائد ال‪ G‬بتساوى‬
‫‪75 + 374 = 449‬‬
‫‪118‬‬
‫‪T‬‬
‫‪140‬‬
‫‪S‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪ S‬المسافة الكلية اللى اتحركناها عشان‬
‫نوصل لها (قيمة ال‪ )G‬بتساوى ‪140‬‬
‫• قيمة ال‪ H‬من على يمين الخريطة بتساوى ‪253‬‬
‫• يبقى ال‪ F‬بتساوى ال‪ H‬زائد ال‪ G‬بتساوى‬
‫‪140 + 253 = 393‬‬
‫‪118‬‬
‫‪T‬‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪ T‬المسافة الكلية اللى اتحركناها عشان‬
‫نوصل لها (قيمة ال‪ )G‬بتساوى ‪118‬‬
‫• قيمة ال‪ H‬من على يمين الخريطة بتساوى ‪329‬‬
‫• يبقى ال‪ F‬بتساوى ال‪ H‬زائد ال‪ G‬بتساوى‬
‫‪118 + 329 = 447‬‬
‫‪118‬‬
‫‪T‬‬
‫‪447‬‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• نختار ال‪ S‬ألنها األقل ف قيمة ال‪F‬‬
‫• ال‪ S‬مش الهدف يبقى نفرعها‬
‫‪118‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫‪R‬‬
‫‪140‬‬
‫‪99‬‬
‫‪F‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪: O‬‬
‫‪118‬‬
‫• قيمة ال‪( G‬المسافة الكلية من البداية) بتساوى‬
‫‪140 + 151 = 291‬‬
‫يبقى قيمة ال‪ F‬بتساوى ‪H + G‬‬
‫‪F = 380 + 291 = 671‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من على يمين الخريطة بتساوى ‪380‬‬
‫‪R‬‬
‫‪140‬‬
‫‪99‬‬
‫‪F‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪: F‬‬
‫‪118‬‬
‫• قيمة ال‪( G‬المسافة الكلية من البداية) بتساوى‬
‫‪140 + 99 = 239‬‬
‫يبقى قيمة ال‪ F‬بتساوى ‪H + G‬‬
‫‪F = 239 + 178 = 417‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من على يمين الخريطة بتساوى ‪178‬‬
‫‪R‬‬
‫‪140‬‬
‫‪99‬‬
‫‪F‬‬
‫‪417‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪:R‬‬
‫‪118‬‬
‫• قيمة ال‪( G‬المسافة الكلية من البداية) بتساوى‬
‫‪140 + 80 = 220‬‬
‫يبقى قيمة ال‪ F‬بتساوى ‪H + G‬‬
‫‪F = 220 + 193 = 413‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من على يمين الخريطة بتساوى ‪193‬‬
‫‪R‬‬
‫‪413‬‬
‫‪140‬‬
‫‪99‬‬
‫‪F‬‬
‫‪417‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• نختار ال‪ ، R‬طالما مش الهدف نفرعها‬
‫‪118‬‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪F‬‬
‫‪417‬‬
‫‪146‬‬
‫‪97‬‬
‫‪C‬‬
‫‪P‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪: P‬‬
‫‪118‬‬
‫• قيمة ال‪ G‬بتساوى المسافة الكلية‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪140 + 80 + 97 = 317‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من على يمين الخريطة ‪98‬‬
‫يبقى‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪F = 317 + 98 = 415‬‬
‫‪146‬‬
‫‪C‬‬
‫‪F‬‬
‫‪417‬‬
‫‪97‬‬
‫‪P‬‬
‫‪415‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪: C‬‬
‫‪118‬‬
‫• قيمة ال‪ G‬بتساوى المسافة الكلية‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪140 + 80 + 146 = 366‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من على يمين الخريطة ‪160‬‬
‫يبقى‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪F = 366 + 160 = 526‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪F‬‬
‫‪417‬‬
‫‪97‬‬
‫‪P‬‬
‫‪415‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• نختار ال‪ P‬ألنها األقل ف قيمة ال‪F‬‬
‫‪118‬‬
‫• ال‪ P‬مش الهدف يبقى نفرعها‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪F‬‬
‫‪417‬‬
‫‪97‬‬
‫‪101‬‬
‫‪B‬‬
‫‪P‬‬
‫‪415‬‬
‫‪138‬‬
‫‪C‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪C‬‬
‫‪118‬‬
‫• المسافة الكلية ‪ G‬بتساوى‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪140 + 80 + 97 + 138 = 455‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من يمين الخريطة ‪160‬‬
‫يبقى‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪F = 455 + 160 = 615‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪F‬‬
‫‪417‬‬
‫‪97‬‬
‫‪101‬‬
‫‪B‬‬
‫‪P‬‬
‫‪415‬‬
‫‪138‬‬
‫‪C‬‬
‫‪615‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪B‬‬
‫‪118‬‬
‫• المسافة الكلية ‪ G‬بتساوى‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪140 + 80 + 97 + 101 = 418‬‬
‫‪80‬‬
‫وقيمة ال‪ H‬من يمين الخريطة ‪0‬‬
‫يبقى‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪F = 418 + 0 = 418‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪F‬‬
‫‪417‬‬
‫‪97‬‬
‫‪101‬‬
‫‪B‬‬
‫‪418‬‬
‫‪P‬‬
‫‪415‬‬
‫‪138‬‬
‫‪C‬‬
‫‪615‬‬
‫‪75‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪151‬‬
‫‪O‬‬
‫‪671‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• نختار ال‪ F‬ألنها األقل ‪ ،‬وطالما مش الهدف نفرعها‬
‫‪118‬‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪80‬‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪75‬‬
‫‪B‬‬
‫‪418‬‬
‫‪151‬‬
‫‪F‬‬
‫‪417‬‬
‫‪P‬‬
‫‪415‬‬
‫‪O‬‬
‫‪671‬‬
‫‪211‬‬
‫‪97‬‬
‫‪101‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪B‬‬
‫‪138‬‬
‫‪C‬‬
‫‪615‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• بالنسبة لل‪ B‬اللى ظهرت ‪ ،‬قيمة ال‪ G‬بتساوى‬
‫‪118‬‬
‫‪140 + 99 + 211 = 450‬‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫وقيمة ال‪ H‬بصفر يبقى المجموع ‪450‬‬
‫‪80‬‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪75‬‬
‫‪B‬‬
‫‪418‬‬
‫‪151‬‬
‫‪F‬‬
‫‪417‬‬
‫‪P‬‬
‫‪415‬‬
‫‪O‬‬
‫‪671‬‬
‫‪211‬‬
‫‪97‬‬
‫‪101‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪B‬‬
‫‪450‬‬
‫‪138‬‬
‫‪C‬‬
‫‪615‬‬
‫‪A* search‬‬
‫‪A‬‬
‫‪366‬‬
‫• نختار ال‪ B‬اللى تحت ألنها األقل ‪ ،‬هى الهدف يبقى‬
‫نوقف الحل ويبقى الطريق‬
‫‪118‬‬
‫‪140‬‬
‫‪S‬‬
‫‪393‬‬
‫‪T‬‬
‫‪447‬‬
‫‪A -> S -> R -> P -> B‬‬
‫هو ده اقصر طريق بين ‪ Arad‬و ‪Bucharest‬‬
‫‪80‬‬
‫‪99‬‬
‫‪R‬‬
‫‪413‬‬
‫‪146‬‬
‫‪C‬‬
‫‪526‬‬
‫‪75‬‬
‫‪B‬‬
‫‪418‬‬
‫‪151‬‬
‫‪F‬‬
‫‪417‬‬
‫‪P‬‬
‫‪415‬‬
‫‪O‬‬
‫‪671‬‬
‫‪211‬‬
‫‪97‬‬
‫‪101‬‬
‫‪Z‬‬
‫‪449‬‬
‫‪B‬‬
‫‪450‬‬
‫‪138‬‬
‫‪C‬‬
‫‪615‬‬
Download