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

Download Report

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

‫راهبرد جستجوی آگاهانه از دانش مربوط به مساله استفاده‬
‫می کند‬
‫‪2‬‬
‫‪‬‬
‫اين راهبرد به اين صورت بيان ميشود که در يک درخت‪ ،‬زماني که گرهها مرتب‬
‫ميشوند‪ ،‬گرهاي که بهترين ارزيابي را براساس یک تابع ارزیابی )‪ f(n‬داشته باشد‪،‬‬
‫قبل از ديگر گرهها بسط داده ميشود‪.‬‬
‫‪‬‬
‫هدف‪ :‬يافتن راهحلهاي کمهزينه است‪ ،‬اين الگوريتمها عموما از تعدادي معيار‬
‫تخمين براي هزينه راهحلها استفاده ميکنند و سعي بر حداقل کردن آنها دارند‪.‬‬
‫‪3‬‬
‫‪3‬‬
‫به حداقل رساندن هزينه تخمين زده شده براي رسيدن به هدف‪.‬‬
‫بسط نزديکترین گره به هدف‬
‫تابع کشفکننده‪ :‬هزينه رسيدن به هدف از يک حالت ويژه ميتواند تخمين زده شود اما دقيقا‬
‫تعيين نميشود‪ .‬تابعي که چنين هزينههايي را محاسبه ميکند تابع کشفکننده ‪ h‬ناميده ميشود‪.‬‬
‫)‪F(n) = h(n‬‬
‫جستجوي حريصانه‪ :‬جستجوي بهترين که ‪ h‬را به منظور انتخاب گره بعدي براي بسط استفاده‬
‫ميکند‪ ،‬جستجوي حريصانه )‪ (greedy search‬ناميده ميشود‪.‬‬
‫‪4‬‬
‫‪4‬‬
‫روش اکتشافی فاصله خط مستقیم‬
‫‪5‬‬
‫‪5‬‬
‫‪hSLD‬‬
6
6
‫• جستجوي حريصانه از لحاظ دنبال کردن يک مسير ويژه در تمام طول راه به طرف هدف‪ ،‬مانند‬
‫جستجوي عرض ی است‪ ،‬اما زماني که به بنبست ميرسد‪ ،‬برميگردد‪.‬‬
‫• اين جستجو بهينه نيست و ناکامل است‪.‬‬
‫• پيچيدگي زماني در بدترين حالت براي جستجوي حريصانه )‪ ،O(bm‬که ‪ m‬حداکثر عمق‬
‫فضاي جستجو است‪.‬‬
‫• جستجوي حريصانه تمام گرهها را در حافظه نگه ميدارد‪ ،‬بنابراين پيچيدگي فضاي آن مشابه‬
‫پيچيدگي زماني آن است‪.‬‬
‫• ميزان کاهش پيچيدگي به مسئله و کيفيت تابع ‪ h‬بستگي دارد‪.‬‬
‫‪7‬‬
‫‪7‬‬
‫با ترکيب دو تابع ارزيابي داريم‪:‬‬
‫)‪f(n) = g(n) + h(n‬‬
‫)‪ :g(n‬هزينه مسير از گره آغازين به گره ‪ n‬را به ما ميدهد‪.‬‬
‫)‪ :h(n‬هزينه تخمين زده شده ارزانترين مسير از ‪ n‬به هدف است‬
‫و ما داريم‪:‬‬
‫هزينه تخمين زده شده ارزانترين راه حل از طريق ‪f(n) = n‬‬
‫‪8‬‬
‫‪8‬‬
9
9
10
10
‫کشفکنندگي قابل قبول‪:‬‬
‫تابع ‪h‬اي را که هزينهاي بيش از تخمين براي رسيدن به هدف نداشته باشد‪ ،‬يک کشفکنندگي‬
‫قابل قبول )‪ (admissible heuristic‬گويند‪.‬‬
‫جستجوي *‪:A‬‬
‫جستجوي بهترين که ‪ f‬به عنوان تابع ارزياب و يک تابع ‪ h‬قابل قبول استفاده ميکند‪ ،‬به عنوان‬
‫جستجوي *‪ A‬شناخته ميشود‪.‬‬
‫‪11‬‬
‫‪11‬‬
‫رفتار جستجوي *‪A‬‬
‫نگاهي گذرا به اثبات کامل و بهينه بودن *‪:A‬‬
‫مشاهده مقدماتي‪:‬‬
‫تقريبا تمام کشفکنندگيهاي مجاز داراي اين ويژگي هستند که در طول هر مسيري از ريشه‪،‬‬
‫هزينه ‪ f‬هرگز کاهش پيدا نميکند‪.‬‬
‫اين خاصيت براي کشفکنندگي‪ ،‬خاصيت يکنوايي )‪ (monotonicity‬گفته ميشود‪.‬‬
‫اگر يکنوا نباشد‪ ،‬با ايجاد يک اصالح جزئي آن را يکنوا ميکنيم‪.‬‬
‫‪12‬‬
‫‪12‬‬
‫بنابراين هر گره جديدي که توليد ميشود‪ ،‬بايد کنترل کنيم که آيا هزينة ‪ f‬اين گره از هزينه ‪f‬‬
‫پدرش کمتر است يا خير‪ .‬اگر کمتر باشد‪ ،‬هزينة ‪ f‬پدر به جاي فرزند مينشيند‪:‬‬
‫بنابراين‪:‬‬
‫‪ f‬هميشه در طول هر مسيري از ريشه غيرکاهش ي خواهد بود‪ ،‬مشروط بر اينکه ‪ h‬امکانپذير‬
‫باشد‪.‬‬
‫*‪ A‬معمول قبل از اينکه دچار کمبود زمان شود‪ ،‬دچار کمبود فضا ميشود‪ .‬زيرا اين جستجو‬
‫تمام گرههاي توليد شده را در حافظه ذخيره ميکند‪.‬‬
‫‪13‬‬
‫‪13‬‬
‫معماي ‪ 8‬يکي از مسائل اوليه اکتشاف بود‪.‬‬
‫هدف‪ :‬لغزاندن چهارخانهها به طور افقي يا عمودي به طرف فضاي خالي است تا زماني که‬
‫ساختار کلي مطابق با هدف )‪ (goal‬باشد‪ .‬فاکتور انشعاب در حدود ‪ 3‬است‪.‬‬
‫‪2‬‬
‫‪1‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪6‬‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪1‬‬
‫‪Goal State‬‬
‫‪14‬‬
‫‪14‬‬
‫‪4‬‬
‫‪2‬‬
‫‪7‬‬
‫‪5‬‬
‫‪3‬‬
‫‪Start State‬‬
‫‪8‬‬
‫‪ = h1‬تعداد چهارخانههايي که در مکانهاي نادرست هستند‪ h1 .‬قابل قبول است‪ ،‬زيرا واضح‬
‫است که هر چهارخانهاي که خارج از مکان درست باشد حداقل يکبار بايد جابجا شود‪.‬‬
‫‪ = h2‬مجموع فواصل چهارخانهها از مکانهاي هدف صحيحشان است‪ .‬مجموع فواصل عمودي و‬
‫افقي است که بعض ي وقتها ‪ city block distance‬و يا ‪ Manhattan distance‬ناميده‬
‫ميشود ‪ h2‬قابل قبول است‪ ،‬زيرا هر جابجایی که می تواند انجام پذیرد یک مرحله به هدف‬
‫نزدیک می شود‬
‫‪15‬‬
‫‪15‬‬
7
2
5
8
3
Start State
4
1
2
6
3
4
5
1
6
7
8
Goal State
h1 = 8
h2 = 18
(3+1+2+2+2+3+3+2)
16
16
‫يک راه براي تشخيص کيفيت اکتشاف فاکتور انشعاب مؤثر *‪ b‬است‪ .‬اگر مجموع تعداد‬
‫گرههاي بسط داده شده توسط *‪ A‬براي يک مسئله ويژه ‪ N‬باشد و عمق راه حل ‪ ،d‬سپس*‪b‬‬
‫فاکتور انشعابي است که يک درخت يکنواخت با عمق ‪ d‬خواهد داشت تا حاوی ‪ N+1‬گره باشد‪.‬‬
‫بنابراين‪:‬‬
‫‪N+1 = 1+ b*+( b*)2…+( b*)d‬‬
‫معمول فاکتور انشعاب مؤثر که توسط اکتشاف نمايش داده ميشود‪ ،‬مقدار ثابتي دارد‪.‬‬
‫‪ /‬طراحي شده‪ b* ،‬در حدود ‪ 1‬دارد‪.‬‬
‫‪17‬‬
‫‪17‬‬
18
18
‫• مساله راحت (‪ :)Relaxed problem‬مساله ای که فعالیتهایش محدودیتهای کمتری داشته باشد‪.‬‬
‫• هزینه حل بهینه مساله راحت‪ ،‬اکتشاف قابل قبولی برای مساله است‪.‬‬
‫فعالیتهای معمای ‪8‬‬
‫کاش ی می تواند از مربع ‪ A‬به مربع ‪ B‬حرکت کند‬
‫اگر ‪ A‬همجوار افقی یا عمودی ‪ B‬باشد و ‪ B‬خالی باشد‪.‬‬
‫مساله های راحت‪:‬‬
‫الف‪ :‬کاش ی می تواند از مربع ‪ A‬به مربع ‪ B‬منتقل شود اگر ‪ A‬همجوار ‪ B‬باشد‬
‫ب‪ :‬کاش ی می تواند از مربع ‪ A‬به مربع ‪ B‬منتقل شود اگر ‪ B‬خالی باشد‬
‫پ‪ :‬کاش ی می تواند از مربع ‪ A‬به مربع ‪ B‬منتقل شود‬
‫‪19‬‬
‫‪19‬‬
‫‪‬‬
‫بهترين راه براي فهم الگوريتمهاي اصالح تکراري درنظر داشتن تمام حالتي‬
‫است که روي سطح يک دورنمايي در معرض ديد قرار داده شده است‪ .‬ارتفاع‬
‫هر نقطه در دورنما مطابق با تابع ارزياب حالت آن نقطه است‪ .‬ايده اصالح‬
‫تکراري‪ ،‬حرکت کردن در اطراف دورنما و سعي بر يافتن قلههاي مرتفع است‪،‬‬
‫که همانا راهحلهاي بهينه هستند‪.‬‬
‫‪‬‬
‫الگوريتمهاي اصالح تکراري معمول اثر حالت جاري را فقط حفظ ميکنند‪ ،‬و‬
‫توجهي فراتر از همسايگي آن حالت ندارند‪.‬‬
‫‪20‬‬
‫‪20‬‬
‫‪evaluation‬‬
‫‪Current‬‬
‫‪state‬‬
‫الگوريتمهاي اصالح تکراري سعي بر يافتن قلههايي بروي سطح حاالت دارند‪،‬‬
‫جائي که ارتفاع توسط تابع ارزيابي تعريف ميشود‪.‬‬
‫‪21‬‬
‫‪21‬‬
‫اين الگوريتمها به دو گره اصلي تقسيم ميشوند‪.‬‬
‫‪ ‬الگوريتمهاي تپهنوردي )‪(Hill-climbing‬‬
‫‪Simulated annealing ‬‬
‫‪22‬‬
‫‪22‬‬
‫• اگر مسیر رسیدن به هدف مهم نباشد الگوریتهای جست و جوی محلی با استفاده از حالت فعلی‬
‫عمل می کنند و فقط به همسایه های آن حالت منتقل می شوند‪.‬‬
‫• الگوریتمهای جست و جوی محلی عالوه بر یافتن هدف برای حل مسئله های بهینهسازی نیز‬
‫مفیدند‪ .‬در این مسئله ها هدف یافتن بهترین حالت بر اساس تابع هدف است‪.‬‬
‫جست و جوی تپه نوردی (جست و جوی محلی حریصانه)‬
‫این الگوریتم حلقه ای است که در جهت افزایش مقدار حرکت می کند وقتی به قله ای‬
‫رسید که هیچ همسایه ای از آن بلند تر نیست خاتمه می یابد ‪.‬‬
‫‪23‬‬
‫‪23‬‬
• Apply the rule that increases the most the
current state value
• Move in the direction of the greatest
gradient
f-value
states
while f-value(state) > f-value(best-next(state))
state := next-best(state)
24
24
‫جست و جوی تپه نوردی (جست و جوی محلی حریصانه)‬
‫اين سياست ساده‪ ،‬سه زيان عمده دارد‪:‬‬
‫‪ :Local Maxima ‬يک ماکزيمم محلي‪ ،‬برخالف ماکزيمم عمومي‪ ،‬قلهاي است که پائينتر از‬
‫بلندترين قله درفضاي حالت است‪ .‬زماني که روي ماکزيمم محلي هستيم‪ ،‬الگوريتم توقف خواهد نمود‪.‬‬
‫اگرچه راه حل نيز ممکن است دور از انتظار باشد‪.‬‬
‫‪ :Plateau ‬يک فالت محوطهاي از فضاي حالت است که تابع ارزياب يکنواخت باشد‪ .‬جستجو‬
‫يک قدم تصادفي را برخواهد داشت‪.‬‬
‫‪ :Ridges ‬نوک کوه‪ ،‬داراي لبههاي سراشيب است‪ .‬بنابراين جستجو به بالي نوک کوه به آساني‬
‫ميرسد‪ ،‬اما بعد با ماليمت به سمت قله ميرود‪ .‬مگر اينکه عملگرهايي موجود باشند که مستقيما به‬
‫سمت بالي نوک کوه حرکت کنند‪ .‬جستجو ممکن است از لبهاي به لبه ديگر نوسان داشته باشد و‬
‫پيشرفت کمي را حاصل شود‪.‬‬
‫‪25‬‬
‫‪25‬‬
‫جست و جوی تپه نوردی (جست و جوی محلی حریصانه)‬
‫بیشینه عمومی‬
‫شانه‬
‫بیشینه محلی هموار‬
‫فضای حالت‬
‫حالت فعلی‬
‫‪26‬‬
‫‪26‬‬
‫تابع هدف‬
‫جست و جوی تپه نوردی (جست و جوی محلی حریصانه)‬
‫در هر مورد‪ ،‬الگوريتم به نقطهاي ميرسد که هيچ پيشرفتي نيست‪ .‬اگر اين اتفاق بيفتد‪ ،‬تنها کار‬
‫ممکن براي انجام دادن آغاز مجدد از نقطه شروع ديگري دوباره آغاز ميشود‪.‬‬
‫موفقيت ‪ hill-climbing‬خيلي به ظاهر فضاي حالت «سطح» بستگي دارد‪ :‬اگر فقط‬
‫ماکزيممهاي محلي کمي وجود داشته باشد‪ ،‬تپهنوردي با شروع تصادفي خيلي سريع راهحل‬
‫خوبي را پيدا خواهد کرد‪.‬‬
‫‪27‬‬
‫‪27‬‬
‫استفاده از فرمول بندی کامل‬
‫هر حالت ‪ 56‬جانشین دارد‬
‫تابع اکتشافی ‪ h‬تعداد جفت هایی از وزیران است که به طور مستقیم و‬
‫غیر مستقیم به یکدیگر گارد می دهند‪.‬‬
‫‪28‬‬
‫‪28‬‬
h = 17
h=1
29
29
‫تپه نوردی مرکب با حرکت تصادفی است‬
‫حرارت دادن فرایندی است که فلزهای سخت و شیشه را تا درجه باالیی حرارت می دهند و به‬
‫تدریج سرد می کنند‪.‬‬
‫مثال ‪ :‬توپ پینگ پنگ در سطح ناصاف‬
‫در اين گروه از الگوريتمها به جاي شروع دوباره به طور تصادفي‪ ،‬زماني که در يک ماکزيمم محلي‬
‫گیر افتاديم‪ ،‬ميتوانيم اجازه دهيم که جستجو چند قدم به طرف پائین بردارد تا از ماکزيمم محلي‬
‫فرار کند‪.‬‬
‫‪30‬‬
‫‪30‬‬
• Proceed like hill climbing, but pick at each step a
random move
• If the move improves the f-value, it is always executed
• Otherwise, it is executed with a probability that
decreases
exponentially as improvement is not
found
• Probability function:
– T is the number of steps since improvement
–
is the amount of decrease at each step
31
31
‫پارامترهاي مؤثر به شرح زير ميباشند‪:‬‬
‫‪: E -1‬چگونگي ارزيابي‪.‬‬
‫‪ :T -2‬تعيين احتمال‪.‬‬
‫الگوريتم شباهت صريحي با ‪( annealing‬پردازش ي که به طور آهسته مايعي را تا زماني که‬
‫يخ ببندد سرد ميکند)‪ ،‬گسترش يافته است‪ .‬مقدار تابع مطابق با انرژي ورودي اتمهاي ماده‬
‫است‪ ،‬و ‪ T‬با دما مطابقت دارد‪ .‬جدول ميزان دما را در جايي که پائين آمده است‪ ،‬تعيين‬
‫ميکند‪.‬‬
‫‪32‬‬
‫‪32‬‬
‫• نگهداری ‪ K‬حالت به جای یک حالت‬
‫• شروع الگوریتم با ‪ k‬حالت تصادفی‬
‫• تولید تمام جانشين های همه حالتها‬
‫• انتخاب بهترین جانشين تا رسیدن به هدف‬
‫جست و جوی پرتو غير قطعی‬
‫• به جای انتخاب بهترین ‪ k‬از جانشين ها‪ k ،‬جانشين به طور تصادفی انتخاب می شود‪.‬‬
‫• احتمال انتخاب یک جانشين‪ ،‬تابع صعودی از مقدار آن است‪.‬‬
‫‪33‬‬
‫‪33‬‬
‫‪ )1‬شروع الگوریتم با مجموعه ای از ‪ k‬حالت تصادفی به نام جمعیت‬
‫• نمایش هر حالت یا رشته یا فرد (‪ )chromosome‬به صورت رشته ای بر روی الفبای‬
‫متناهی‬
‫نمایش مساله هشت وزیر‬
‫‪34‬‬
‫‪34‬‬
‫‪ )2‬انتخاب (‪:)Selection‬‬
‫• استفاده از تابع ارزیابی یا تابع برازش (‪)fitness function‬‬
‫• انتخاب بر اساس بهترین ها یا به طور تصادفی‬
‫‪35‬‬
‫‪35‬‬
‫‪ )3‬تقاطع یا تولید (‪:)Generation‬‬
‫• انتخاب تصادفی نقاط تقاطع و تولید دو فرد جدید از دو فرد موجود‬
‫‪36‬‬
‫‪36‬‬
‫‪ )4‬جهش (‪:)Mutation‬‬
‫• احتمال جهش در یک مکان تصادفی در هر رشته تولید شده به طور مستقل‬
‫‪37‬‬
‫‪37‬‬
‫نسل بعدی‬
‫‪38‬‬
‫‪38‬‬
‫نسل اولیه‬