840 likes | 1.03k Views
فصل چهارم. جستجوهاي آگاهانه. yousefpour@shomal.ac.ir. Alireza yousefpour. فصل چهارم: جستجوي آگاهانه. جستجوي آگاهانه. Heuristic Search. يا جستجوي مکاشفه اي.
E N D
فصل چهارم جستجوهاي آگاهانه yousefpour@shomal.ac.ir Alirezayousefpour
فصل چهارم: جستجوي آگاهانه جستجوي آگاهانه Heuristic Search ياجستجوي مکاشفه اي • اگر بتوان استراتژيهايقبلي را به نحويتکميل کرد بطوري که فضاي جستجو بسيار کوچکتر از آنچه که هست، گردد در اين صورت ميتوانيمبگوييم رفتار الگوريتم کورکورانه نيست • در جستجوي آگاهانه اطلاعاتي در رابطه با هزينهرسيدن به هدف در اختيار عامل قرار ميگيرد • تابعي را معرفيميکنيم که توضيحاتي در مورد مطلوب بودن يا نبودن بسط گره ارائه مي دهد به نام : Evaluation function تابع ارزياب
فصل چهارم:استراتژيهايجستجوي آگاهانه انواع هايجستجويآگاهانه 2. جستجويمحلي و بهينهسازي 1. جستجوي اول بهترين • حريصانه • A* • IDA* • RBFS • SMA* • تپه نوردي • شبيهسازيannealing • پرتو محلي • الگوريتمهايژنتيک
فصل چهارم:جستجوي اول بهترين 1- جستجوي اول بهترين Best -First Search اين استراتژي به اين صورت بيان ميشود که در يک درخت، گره ها توسط تابع ارزيابارزيابي شده ، سپس گرهها مرتب ميشوند ودر نتيجهگرهاي که بهترين ارزيابي را داشته باشد، ابتدا بسط داده ميشود هدف: يافتن راهحلهاي کمهزينه است، اين الگوريتمها عموماً از تعدادي معيار تخمين براي هزينه راهحلها استفاده ميکنند و سعي بر حداقل کردن آنها دارند.
فصل چهارم:جستجوي اول بهترين- ادامه نکته : گره که انتخاب مي شود براساس تابع ارزياببهترين است • اگر تابع ارزياب درست باشد پس گره حقيقتاًبهترين است • ولي اگر تابع ارزياب درست نباشد جستجو را گمراه مي کند
فصل چهارم:جستجوي اول بهترين- مثال مثال:در درخت جستجويزير به شرطي که گره O هدف باشد براساس الگوريتمجستجويBest Firstترتيبرويت گره ها کدام است؟ A F(B) =3 B C 4 D 5 6 5 2 4 4 E F G H I J K L M N O P Q R S T 0 3 1 3 3 3 3 2 3 4 2
فصل چهارم:جستجويحريصانه Greedy Search 1-1- جستجوي حريصانه حداقل هزينه ي تخمين زده شده براي رسيدن به هدف را انتخاب مي کند در اين روش نزديکترين گره به هدف براي بسط انتخاب مي شود که اينهزينه توسط تابع ارزيابيتخمين زده مي شود به نام : Heuristics Function h h : حسي ، ذهني هدف hاين است که فضاي جستجو را کوچک کند در حالي که تضمينمي کند پاسخ در اينفضاي کوچک قرار دارد .
فصل چهارم:جستجويحريصانه- ادامه در جستجويحريصانهارزيابي هر گره برابر است با : • f(n) = h(n) • h(n): ارزان ترينمسير از گره n به هدف . مثال : محاسبه h - برايطيمسيربين دو شهر ارزان ترينمسيرمي تواند کوتاهترينمسير باشد. - مسئله معماي 8 : h1: تعداد خانه هايي که در مکان هاي نا درست قرار دارند h2: مجموع فاصله خانه هاي نادرست تا مکان هايصحيح شان.
فصل چهارم:جستجويحريصانه- ادامه نکته : • h هر تابعيمي تواند باشد فقط لازم است h(n)=0اگر n گره هدف باشد h(Goal) = 0 • جستجويحريصانه از لحاظ دنبال کردن يکمسيرويژه در تمام طول راه به طرف هدف مثل جستجويعمقي است . معيارهايارزيابياستراتژيجستجويحريصانه: • 1) کامل بودن: • در بدترين حالت h ممکن است هدف در عمق d باشد • اما گره ها در عمق بيشتر زودتر گسترش يابند و هرگز براي امتحان مسير ها ممکن بر نگردد
فصل چهارم:جستجويحريصانه- ادامه يعنيhنزديک به هدف از hهايNodeهايديگربيشتر شود و هرگز انتخاب نشود • پس کامل نيست، بهينهنيست • زيراتوجهي به g(n) ندارد. • 2) بهينه بودن: • 3) پيچيدگيزماني: O(bm) در بدترين حالت • 4) پيچيدگيمکاني: O(bm) در بدترين حالت ميزان کاهش پيچيدگي، بهمسئله و کيفيت تابع hبستگي دارد.
فصل چهارم:جستجويحريصانه- مثال جستجويحريصانه مثال A g=3 1 3 h(B)=1 B C 2 1 1 1 1 3 5 2 D E F G 1 3 3 2 1 2 1 3 1 3 2 1 2 3 3 J H I K L M N O 2 3 0 2 2 3 3 3 2 1 3 1 P Q R S T U V W X Y Z 0 2 3 1 2 2 1 1 2 1 1
فصل چهارم:جستجويحريصانه- مثال جستجويحريصانه مثال A g=3 1 3 h(B)=1 B C 2 1 1 1 1 3 5 2 D E F G 1 3 3 2 1 2 1 3 1 3 2 1 2 3 3 J H I K L M N O 2 3 0 2 2 3 3 3 2 1 3 1 P Q R S T U V W X Y Z 0 2 3 1 2 2 1 1 2 1 1
فصل چهارم:جستجويحريصانه- مثال جستجويحريصانه مثال A g=3 1 3 h(B)=1 B C 2 1 1 1 1 3 5 2 D E F G 1 3 3 2 1 2 1 3 1 3 2 1 2 3 3 J H I K L M N O 2 3 0 2 2 3 3 3 2 1 3 1 هزينهمسير پاسخ = 7 ولي هزينه پاسخ بهينه = 4 P Q R S T U V W X Y Z 0 2 3 1 2 2 1 1 2 1 1
فصل چهارم:جستجويA* 1-2- جستجوي A* حداقلسازي مجموع هزينه مسير f(n) = h(n) • جستجويحريصانه: h(n) را به سمت هدف حداقل مي کند نه بهينه بود و نه کامل f(n) = g(n) • جستجو با هزينهيکنواخت: g(n)ياهزينهمسير را حداقل مي کند هم بهينه است و هم کامل f(n) = g(n) + h(n) الگوريتمA* الگوريتم گره اي را بسط مي دهد که کمترينf را داراست
فصل چهارم:جستجويA*- ادامه تابع ارزيابديگر: f(n) = g(n) + (1-) h(n) :1 0 : از سمت يک به سمت صفر کاهش پيدامي کند در شروع توليدفضاي پاسخ مساوييک است و سپس به تدريج کاهش پيدامي کند • هنگام توليدگراف فاصله طي شده از مبداء محور رشد گراف است • ولي به تدريج فاصله مانده تا هدف تاثيربيشتري در توليدگراف خواهد داشت.
فصل چهارم:جستجويA*- مثال اول جستجويA* S 4 مثال 2 فضاي حالت 5 2 1 A 2 1 C 3 1 B 1 4 1 G1 0 1 8 5 9 D 1 5 2 E 6 G2 0 7
فصل چهارم:جستجويA*- مثال اول S 4 2 5 f=2+2 A 2 C 3 f=5+3 8 1 E 6 B 1 3+1 10+6 4 2 1 1 G1 0 D 1 C 3 S 5 4+1 4+3 5+5 7+0 درخت جستجوي با استفاده از جستجويA* 2 5 f* = f =6+0=6 9+0 G1 0 G2 0 6+0
فصل چهارم:جستجويA*- مثال دوم مثال: معماي 8 Start State Goal State h= تعداد چهارخانههايي که در مکانهاي نادرست هستند.
فصل چهارم:جستجويA*- مثال دوم h= تعداد چهارخانههايي که در مکانهاي نادرست هستند. جستجويA* 0+4 مثال معماي 8 1+5 1+3 1+5 2+3 2+3 2+4 3+3 3+4 3+2 3+4 goal ! 5+0 4+1 5+2
فصل چهارم:جستجويA*- ادامه نگاهي گذرا به اثبات کامل A*: تقريباً تمام کشفکنندگيهاي مجاز داراي اين ويژگي هستند که در طول هر مسيري از ريشه، هزينه f هرگز کاهش پيدا نميکند. اين خاصيت براي کشفکنندگي، خاصيت يکنوايي (monotonicity) گفته ميشود. خاصيت يکنوايي (monotonicity) در صورتي که hيکي از آن استثناها باشد که يکنوا نيست، مي توان با ايجاد يک اصلاح جزئي آن را يکنوا ميکنيم
فصل چهارم:جستجويA*- ادامه هر گره جديدي که توليد ميشود، بايد کنترل کنيم که آيا هزينة f اين گره از هزينه f پدرش کمتر است يا خير. اگر کمتر باشد، هزينة f پدر به جاي فرزند مينشيند. اگر n’ فرزند n باشد f(n’) = max( f(n) , g(n’)+h(n’) ) هزينه گره والد هزينه گره فرزند از اينطريق، مقادير گمراه کننده اي که ممکن است با يکهيورستيکيکنواپديدار شوند حذف ميکنيم. به اين معادل سازيمعادله pathmaxناميدهمي شود
فصل چهارم:جستجويA*- ادامه بهينه بودنA*: با شرطي بر روي تابع هيورستيکh(n)بهينهنيز خواهد بود: اين شرط عبارت است از اينکه تابع h(n)قابل قبول (admissibles) باشد • يعنيبراي هر گره مثل n ، بيشتر از هزينهواقعيمسير تا هدف نباشد. • يعني تابع h(n)تخميناضافي نزند. در مثال مسيريابيبين دو شهر h(n)مي تواند خط مستقيمبين دو شهر باشد؟ بله قابل قبول است چون خط مستقيمکوهتاهترينمسيربين دو شهر است h*(n) :هزينه واقعي رسيدن از n به هدف باشد آنگاه: • 0 h(n) h*(n) for all nS
فصل چهارم:جستجويA*- ادامه با توجه به جستجوي با هزينهيکنواخت که وابسته به g(n) است و با شرط اينکههزينهيکمسير با ادامه مسير، کاهش پيدا نخواهد کرد، کامل است آنگاه: f(n) = g(n) + h(n) f(n’) = g(n’) + h(n’) = g(n) + c + h(n’) f(n’) f(n) g(n) + c + h(n’) g(n) + h(n) نا برابريمثلثي c + h(n’) h(n)
فصل چهارم:جستجويA*- ادامه 2 73 مثال h=100 h=1 X Y در صورتيA* جواب بهينه را مي دهد که h قابل قبول باشد 1 1 h=0 h=0 در مثال فوق h قابل قبول نيست g(X)+h(X) = 102 g(Y)+h(Y) = 74 Optimal path is not found!
فصل چهارم:جستجويA*- ادامه اگر f*هزينههزينهمسير راه حل (هزينهواقعيمسيربهينه از شروع تا هدف) تعريف شود مي توان گفت: • A*تمام گره ها با f(n) < f* را بسط خواهد داد f*
فصل چهارم:جستجويA*- ادامه اگر f*هزينههزينهمسير راه حل (هزينهواقعيمسيربهينه از شروع تا هدف) تعريف شود مي توان گفت: • A*تمام گره ها با f(n) < f*را بسط خواهد داد • A*ممکن است تعداد از گره هايي که f(n)=f*است قبل از اينکه گره هدف انتخاب شود بسط دهد • A*تمام گره ها با f(n)>f*را بسط نخواهد داد. • يعنيالگوريتمA* قادر است گره هاي بدل را بدون امتحان حذف ياهرس کند.
فصل چهارم:جستجويA*- ادامه A*به طور موثريبراي هر تابع h قابل قبول، از نظر بهينگيکارآمي باشد. • (کارآبهينهOptimally effecient) يعنيهيچالگوريتمبهينهاي که جستجو را از ريشه شروع مي کند، تضميننمي کند تعداد گره هايکمتري نسبت به A*ايجاد کند • و در زماني که تابع هيورستيک بکار رفته در تمام الگوريتمهايکسان باشد. • يکالگوريتم ممکن است که راه حل بهينه را در صورتي که همه گره ها با f(n)<f* بسط ندهد، گم کند.
فصل چهارم:جستجويA*- کارآييA* اثر صحت کشفکنندگي بر کارايي: يک راه براي تشخيص کيفيت کشفکنندگيفاکتور انشعاب مؤثر b* است فاکتور انشعاب مؤثر b* (Effective Branching Factor) تعداد گرههاي بسط داده شده توسط A* براي يک مسئله ويژه N باشد و عمق راه حل d، سپسb* فاکتور انشعابي است که يک درخت يکنواخت با عمق d خواهد داشت تا گرههاي N را نگهدارد. بنابراين: 1+ b*+( b*)2…+( b*)d = N • معمولاً فاکتور انشعاب مؤثر که توسط کشفکنندگي نمايش داده ميشود، مقدار ثابتي دارد. • يک کشفکنندگي خوب طراحي شده، b* آن در حدود 1 است.
فصل چهارم:جستجويA*- کارآييA* مثال اگر هدف در عمق 5 باشد d = 5 و تعداد گره هاييA* بسط داده تا به هدف رسيده برابر 25 باشد N = 25 b* = 1.91 آنگاه : يعنيمتوسط تعداد گره هايي که در هر سطر بسط مي دهد تا به هدف برسد برابر با 1.91 است تابع هيورستيکي که b*آن به يکنزديکتر باشد بهتر طراحي شده است يعنيبين توابع h آن تابعي که b* آن به يکنزديکتر است مناسبتر است زيرا تعداد گره کمتري بسط مي دهد.
فصل چهارم:جستجويA*- کارآييA* معماي 8 يکي از مسائل اوليه کشفکنندگي بود. اگر خواستار يافتن راهحلهاي کوتاه باشيم، به يک تابع کشفکننده نياز داريم که هرگز در تعداد مراحل به هدف اغراق نکند. در اينجا ما دو کانديد داريم: • h1 =تعداد چهارخانههايي که در مکانهاي نادرست هستند. • h1 يک کشفکننده مجاز است، زيرا واضح است که هر چهارخانهاي که خارج از مکان درست باشد حداقل يکبار بايد جابجا شود. • h2=مجموع فواصل چهارخانهها از مکانهاي هدف صحيحشان است. • فاصلهاي که ما حساب ميکنيم، مجموع فواصل عمودي و افقي است که بعضي وقتها city block distance و يا Manhattan distanceناميده ميشود.
فصل چهارم:جستجويA*- کارآييA* اگر مجموعه اي از توابع مثل {h1,h2,h3,…,hn} وجود داشته باشد و هيچ کدام بر ديگريبرتري نداشته باشد بينhهاي موجود hاي انتخاب مي شود که بيشتر از همه باشد آنگاه • h(n) = max{h1,h2,h3,…,hn} در مثال معماي 8 h1 و h2 هر قابل قبول اند و جواب بهينه را مي دهند و h1 < h2 h2 کارآتر از h1استزيرا تعداد گرهايکمتري را بسط مي دهد
فصل چهارم:جستجويA*- کارآييA* اثر صحت کشفکنندگي بر کارايي: هزينه جست و جو فاکتور انشعاب مؤثر ميانگين گره هايبسط يافتهدر جستجويعمقي تکرار شوندهIDSو A* و فاکتور انشعاب مؤثر با استفاده از h1و h2
فصل چهارم:جستجويA*- ادامه تابع ارزياب وزن دار: fw(n) = (1–w) g(n) + w h(n) w = 0 Uniform Cost Search w = 1/2 A* w = 1 Greedy Search
فصل چهارم:جستجويA*- ادامه تابع هيورستيکي خوب است که: اولاً: صحيح عمل کند يعني قابل قبول باشد ثانياً: کارآيينيز داشته باشد گره کمتري را بسط دهد يعنيهزينه جستجو بالا نرود و زمان جستجو کم باشد زمان محاسبه يکي از نقص هاياصليA*نيست، از آنجاييکهاين جستجو تمام گره هايتوليد شده را در حافظه ذخيرهمي کند، معمولاً قبل از اينکه دچار کمبود زمان شود دچار کمبود حافظه مي شود
فصل چهارم:جستجويIDA* Iterative Deepening A* 1-3- جستجوي IDA* سادهترين راه براي کاهش حافظه مورد نيازA* استفاده از الگوريتمعمقي تکرار شونده در زمينه جست و جوياکتشافي است. به دو دسته تقسيممي شوند : 1-3-1- جستجوي اول بهترينبازگشتي - RBFS 1-3-2- جستجويA* با حافظه محدود شده – SMA*
فصل چهارم:جستجويIDA*- ادامه در جستجويIDA* بسط منطقي گره ها، جستجويعمقي تکرار شونده است و در ايناستراتژي به جايمحدوديت عمق در IDS، از محدوديتf-cost استفاده مي کند. در اينالگوريتم هر تکرار يکجستجويعمقي است در جستجويIDA* مقدار برش مورد استفاده، عمق نيست بلکه هزينهf(g+h) است. در هر تکرار، مقدار برش کمترينهزينهfهر گره اي است که از مقدار برش تکرار قبليبيشتر باشد.
فصل چهارم:جستجويIDA*- ادامه الگوريتمIDA* در هر بار تکرار گره هايي که f-cost آنها از f-limit کمتر است گسترش داده مي شود • مقدار اوليه f-limit مقدار f-costريشهمي باشد • در تکرار اول تمام گره هايي که مقدار f آنها کمتر از f-limit است گسترش مييابد • در صورتي که هدف پيدا شد کار تمام است • در غيراينصورت مقدار f-limit برابر با کمترين مقدار f-costبين برگ ها مي شود • و الگوريتم دوباره با اين مقدار جديدf-limit آغاز مي شود • اين تکرارها آنقدر ادامه مييابد تا زمانيکه مقدار f-limitبگونهاي باشد که گره هدف نيزبراي گسترش انتخاب شود
IDA*: فصل چهارم:جستجويIDA*- مثال تکرار اول 0+4 f-Limit = 4 1+5 1+3 2+3 2+3 2+4 f-Limit = 5
فصل چهارم:جستجويIDA*- مثال IDA*: 0+4 تکرار دوم f-Limit = 5 1+5 1+3 2+3 2+3 3+3 3+4 3+2 goal ! 5+0 4+1
فصل چهارم:جستجويIDA*- ادامه بخاطر اينکه در هر مرحله فقط گره هايي که f(n) آنها کمتر از f-limit است در حافظه نگهداريمي شود به هميندليل از نظر پيچيدگي حافظه مثل جستجويعمقيO(bd) است. البته در بدترين حالت O(bf*/) است که کمترينهزينهعملگر است IDA*مثل A* کامل و بهينه است. پيچيدگيزمانيIDA*به تعداد مقاديرمختلفي که تابع هيورستيکمي تواند بگيرد (تعداد باري که مقدار f در طول مسيرتغييريافته است) بستگي دارد. اگر تعداد تکرارها زياد نباشد از نظر کارآيي مثل A* است.
فصل چهارم:جستجويIDA*- مثال متأسفانه IDA* در دامنه هايپيچيده تر با مشکل روبرو مي شود به عنوان مثال : در مسئله فروشنده دوره گرد مقدار کشف کنندگيبراي هر حالت فرق مي کند. بدين معناست که هر ناحيه شامل يک حالت بيشتر از حالت قبلي است اگر A* ، N گره را بسط دهد . IDA*بايدN تکرار را انجام دهد بنابراينN2مطمئناً زمان زياديبراي انتظار است 1 + 2 + 3 + … + N = N2
فصل چهارم:جستجويRBFS 1-3-1- جستجوي اول بهترينبازگشتيRBFS Recursive Best-First Search • جستجوي اول بهترين را با فضايخطيتقليدمي کند. • ساختار آن شبيه جست و جويعمقيبازگشتياست به جاياينکه دائما به طرف پايينمسير حرکت کند: • بازگشت را با نگهداريجريانf-costبهترينمسيرجايگزين از هر جد گره فعلي محدود مينمايد. • در صورتي که گره جاري از اين مقدار بيشتر شود، بازگشت به مسيرجايگزينبرمي گردد. • بدين صورت حرکت به عقب f-cost گره جاري را با بهترينهزينهزير درخت ها جايگزينمي کند.
فصل چهارم:جستجويRBFS- ادامه مثال RBFS :
فصل چهارم:جستجويRBFS- ادامه اين جستجو اگر تابع اکتشافي قابل قبولي داشته باشد، بهينه است. پيچيدگيفضايي آن O(bd) است. تعيينپيچيدگيزماني آن به دقت تابع اکتشافيوميزانتغييربهترينمسير در اثر بسط گره ها بستگي دارد. RBFSتا حدياز IDA* کارآمدتر است، اما گره هايزياديتوليدميکند. IDA* و RBFS در معرض افزايشتوانيپيچيدگيقرار دارند که در جست و جويگرافها مرسوم است، زيرانميتوانندحالتهايتکراريرا در غير از مسيرفعليبررسي کنند. لذا، ممکن است يک حالت را چندين بار بررسي کنند. IDA* و RBFS از فضاياندکي استفاده ميکنند که به آنها آسيبميرساند. IDA*بين هر تکرار فقط يک عدد را نگهداريميکند که هزينهفعليf است. و RBFS اطلاعات بيشتريدر حافظه نگهداريميکند
فصل چهارم:جستجويSMA* 1-3-2- جستجويحافظه محدود ساده SMA* Simplified – Memory – Bounded A* اينالگوريتم از تمام حافظه موجود براي جستجو استفاده مي کند، مسلماً وجود حافظه بيشترکارآيي جستجو را وسعت مي بخشد SMA*بهترين برگرا بسط ميدهد تا حافظه پر شود. در ادامه الگوريتم جهت انتخاب گره بعدي، بدون از بين بردن گره هايقبلينميتواند گره جديدي اضافه کند براي انجام اين امر، يک گره را حذف ميکند. گرههايي که به اين طريق از صف حذف ميشوند، گرههاي فراموششده(forgotten nodes)يا گره هاي بدون اميد (unpromise) (با هزينه بالا و قديمي) ناميده ميشوند.
فصل چهارم:جستجويSMA*- ادامه براي اجتناب از جستجوي مجدد زيردرختهايي که از حافظه حذف شدهاند، در گرههاي اجدادي، اطلاعاتي در مورد کيفيت بهترين مسير در زير درخت فراموش شده، نگهداري ميشود. • هزينهبهترينمسير فراموش شده را در اجداد نگه مي دارد. • مسيرهاي بلندتر از صف دارايهزينهمي باشد. مي تواند از تمام حافظه دسترس استفاده کند از حالات تکراريتا جايي که حافظه اجازه مي دهد جلوگيريمي کند
SMA*: فصل چهارم:جستجويSMA*- ادامه مثال A 12 10 8 B 5 G 5 f=10+5 f=8+5 10 8 16 5 C 5 D 0 H 2 I 0 F=15+5 f=16+2 f=20+0 f=24+0 3 8 8 10 E 5 F 0 J 0 K 5 F=25+5 f=18+0 f=24+0 f=24+5 • پيشرفتجستجويSMA* با حافظه اي به اندازه 3 گره در فضاي حالت بالا ...
فصل چهارم:جستجويSMA*- ادامه A 12 A 12 12 A 12 A 12 12 13(15) 13 8 10 10 8 G 5 13 B 5 G 5 B 5 13 8 15 15 ∞ • اکنون حافظه پر است G براي بسط و برگي که کم عمق (قديم) ترين و بيشترين هزينه دارد حذف مي کنيم H 2 18 A 12 A 12 15(15) 15 A 12 15(24) A 12 20(24) 8 10 8 10 10 G 5 24(∞) B 5 G 5 B 5 15 20(∞) B 5 16 10 15 24(24) 10 I 0 C 5 ∞ D 0 20 25 24 • مقادير داخل پرانتز مقدار بهترين نسل هاي مابعد فراموش شده را نشان مي دهد