جستجوی حریصانه

Download Report

Transcript جستجوی حریصانه

Saeidirad
‫مفاهیم‬
‫‪ ‬راهبردهای جستجوی آگاهانه‬
‫‪ ‬توابع هیوریستیک‬
‫‪ ‬جستجوی محلی‬
‫راهربدهای جستجوی آگاهانه‬
‫جستجوي اول بهترين‪:‬‬
‫این استراتژي به این صورت بیان ميشود که در یک درخت‪ ،‬زماني که گرهها‬
‫مرتب ميشوند‪ ،‬گرهاي که بهترین ارزیابي را داشته باشد‪ ،‬قبل از دیگر گرهها‬
‫بسط داده ميشود‪.‬‬
‫هدف‪ :‬یافتن راهحلهاي کمهزینه است‪ ،‬این الگوریتمها عموما ً از تعدادي معیار‬
‫تخمین براي هزینه راهحلها استفاده ميکنند و سعي بر حداقل کردن آنها دارند‪.‬‬
‫تابع ارزیاابی ‪ f(n) :‬تاابع ارزیاابی گاره ‪ ، n‬تاابعی اسات کاه فاصاله‬
‫گره ‪ n‬تا هدف را تخمین می زند‪.‬‬
‫توابااع هیوریسااتیک ‪ :‬معمااولیترین شااسل رساااندن اطالعااات ا اافی‬
‫مساله به الگوریتم جستجو هستند‪.‬‬
‫)‪ h(n‬هزینااه تخمیناای کوتاااهترین(ارزانتاارین) مساایر از گااره ‪ n‬بااه‬
‫هدف است‪.‬‬
‫انواع جستجوهای آگاهانه اول هبرتین‬
‫جستجوي حریصانه‬
‫جستجوي *‪A‬‬
‫جستجوي *‪IDA‬‬
‫جستجوي بازگشتی ‪RBFS‬‬
‫حداقل هزينه تخمين زده شده براي رسيدن به هدف‪:‬‬
‫یسي از سادهترین استراتژيهاي جستجوي بهترین‪ ،‬به حداقل رساندن هزینه تخمین‬
‫زده شده براي رسیدن به هدف است‪ .‬بدین صورت که حالت گرهاي که به حالت‬
‫هدف نزدیک تر است‪ ،‬ابتدا بسط داده ميشود‪.‬‬
‫جستجوي حریصانه‪ :‬جستجوي بهترین که ‪ h‬را به منظور انتخاب گره بعدي براي‬
‫بسط استفاده ميکند‪ ،‬جستجوي حریصانه )‪ (greedy search‬نامیده ميشود‪.‬‬
‫تابع هیوریستیک در مثال رسیدن به شهر بخارست‪:‬‬
‫جستجوی حریصانه‬
13
14
18
‫جستجوی *‪A‬‬
‫جستجوی *‪A‬‬
‫‪21‬‬
‫جستجوی *‪A‬‬
‫تابع کشف‌کنندگي قابل قبو ‌ل‪:‬‬
‫تابع ‪h‬اي را که هزينه‌اي بيش از تخمين براي رسيدن به هدف نداشته باشد‪ ،‬يک کشف‌کنندگي‬
‫قابل قبول )‪ (admissible heuristic‬گويند‪.‬‬
‫جستجوی *‪A‬‬
‫جستجوی *‪A‬‬
‫جستجوی *‪(Iterative deepening A*)IDA‬‬
‫ساده ترین راه براي کاهش حافظه مورد نیاز *‪ A‬استفاده از عمیق کننده تسرار‬
‫در زمینه جست و جوي اکتشافي است‪.‬‬
‫الگوریتم عمیق کننده تسرار *‪A‬‬
‫در جستجوي *‪ IDA‬مقدار برش مورد استفاده‪ ،‬عمق نیست بلسه هزینه )‪f(g+h‬‬
‫است‪.‬‬
‫*‪ IDA‬براي اغلب مسئله هاي با هزینه هاي مرحله اي‪ ،‬مناسب است و از سربار‬
‫ناشي از نگهداري صف مرتبي از گره ها اجتناب میسند‪.‬‬
‫جستجوی ‪RBFS‬‬
‫ساختار آن شبیه جست و جوي عمقي بازگشتي است‪ ،‬اما به جاي اینسه دائما به‬
‫طرف پایین مسیر حرکت کند‪ ،‬مقدار ‪ f‬مربوط به بهترین مسیر از هر جد گره‬
‫فعلي را نگهداري میسند‪ ،‬اگر گره فعلي از این حد تجاوز کند‪ ،‬بازگشتي به عقب‬
‫برمیگردد تا مسیر دیگري را انتخاب کند‪.‬‬
‫این جستجو اگر تابع اکتشافي قابل قبولي داشته باشد‪ ،‬بهینه است‪.‬‬
‫پیچیدگي ف ایي آن )‪ O(bd‬است‬
‫تعیین پیچیدگي زماني آن به دقت تابع اکتشافي و میزان تغییر بهترین مسیر در اثر‬
‫بسط گره ها بستگي دارد‪.‬‬
‫جستجوی ‪RBFS‬‬
‫‪ RBFS‬تا حدي از *‪ IDA‬کارآمدتر است‪ ،‬اما گره هاي زیادي تولید میسند‪.‬‬
‫*‪ IDA‬و ‪ RBFS‬در معرض افزایش تواني پیچیدگي قرار دارند که در جست و‬
‫جوي گرافها مرسوم است‪ ،‬زیرا نمیتوانند حالتهاي تسراري را در غیر از مسیر‬
‫فعلي بررسي کنند‪ .‬لذا‪ ،‬ممسن است یک حالت را چندین بار بررسي کنند‪.‬‬
‫جستجوی *‪SMA‬‬
‫الگوریتم *‪ ،SMA‬حافظه محدود *‪ A‬ساده شده ‪(Simplified-Memory-‬‬
‫)*‪ BoundedA‬ميباشد‪.‬‬
‫این الگوریتم‪ ،‬قادر است تا از تمام حافظه موجود براي اجراي جستجو استفاده کند‪.‬‬
‫استفاده از حافظه بیشتر کارایي جستجو را وسعت ميبخشد‪.‬‬
‫جستجوی *‪SMA‬‬
‫طراحي *‪SMA‬ساده است‪:‬‬
‫زماني که نیاز به تولید فرزند داشته باشد ولي حافظهاي نداشته باشد‪ ،‬نیاز به ساختن‬
‫ف ا بر روي صف دارد‪ .‬براي انجام این امر‪ ،‬یک گره را حذف ميکند‪ .‬گرههایي‬
‫که به این طریق از صف حذف ميشوند‪ ،‬گرههاي فراموششده یا ‪(forgotten‬‬
‫)‪ nodes‬نامیده ميشوند‪.‬‬
‫براي اجتناب از جستجوي مجدد زیردرختهایي که از حافظه حذف شدهاند‪ ،‬در‬
‫گرههاي اجدادي‪ ،‬اطالعاتي در مورد کیفیت بهترین مسیر در زیر درخت فراموش‬
‫شده‪ ،‬نگهداري ميشود‪.‬‬
The End