صفحه 1:
رامین اعیان‌زاده ‎Email: grandee@ayanzadeh.ir‏ 1389

صفحه 2:
مقدمه * عاملهاى حل مسأله * انواع مسأله * فرموله سازى مسأله * مسائل نمونه 5 الگوریتم های ابتدایی جستجو

صفحه 3:
عامل حل مسأله عامل حل مسأله يكك نوع عامل هدف كرا مى باشد. عامل حل مسأله. مسأله داده شده را از طريق يافتن دنباله اى از عمليات كه آنرا از حالت اولیه مسأله به یک حالت هدف می برد؛ حل مى كند. مراحل حل مسأله توسط عامل حل مسأله: (۱) فرموله سازی هدف (۲) فرموله سازی مسأله ( انتخاب حالات و عملیات به دنبال فرموله سازی هدف) (۳) جستجو ( برای یافتن دنباله عملیات مورد نظر یا راه حل مسأله) (۴) اجرا

صفحه 4:
مشخص كردن وضعیت ها * هر وضعیت را به صورت ( ,36) نشان مى دهيم به طوريكه: سیک : مقدار آبموجود در تنگة لیتری می باشدو # : مقدار آبهوجود در تنگا لیتری می باشد

صفحه 5:
تعیین وضعیت هدف هدف : در این مسأله هدف این است که به وضعیتی برسیم که ‎SS al yo‏ ۴ لیتزی حاوی ۲ لشر لب و تنگ ۳ لیتری خالی باشد. بنابراین می توان وضعیت هدف را به شکل زیر فرموله (2, 0) 7.

صفحه 6:
تعيين وضعيت اولیه وضعیت اولیه : در ۱ ين مسأله از وضعیتی شروع می کنیم که در نهر و تکفا تبللن می باشتقد. بتابراین می اتوان, وعنمیت یذ را به شکل زیر فرموله نمود: (0, 0) 0

صفحه 7:
مد مد مد هما جز هك كذ اذ تعيين عملكرها تنگ "ا ليترى در تنكك ؟ ليترى تا پرشدن آن تنگ ۴ لیتری در تنگگ ۳ لیتری تا پرشدن آن خالی کردن مقداری از خالى کردن مقداری از خالی کردن تمام آب تنگ ۴ لیتری در ۳ لیتری خالى كردن تمام آب تنگ ۳لیتری در ۴ لیتری خالى كردن تنگگ ۴ لیتری خالى كردن تنكك ‎SAY‏ در صفحه بعد اين عملكرها فرموله سازى شده اند

صفحه 8:
عملگرها (XY | X < 4) > (4, Y) ‘GY |Y <3) > & 3) (XY |X+Y>=4,Y > 0) > (4, Y-(4-X)) (XY |X+Y>=3,X > 0) > (KX - (3 - Y), 3) (OY | RY s<=5,, 5:20) 200 ey (YY|X+Y<=4,Y>0) > (X+Y, 0) (SY) X >'0) > (0, Y) (X,Y | Y > 0) > (X, 0) خ ‎by‏ د ارك ‎el‏

صفحه 9:
تابع آزمون هدف و هزینه مسیر تابع آزمون هدف: اگر وضعیت فعلی برابر (۲,۰) باشد مقدار درست و در غیر این صورت مقدار نادرست را بر می گرداند. تلبع هزينه مسير: هزينه هر عمل برابر یک می باشد. بنابراین هزینه یک مسیر برابر با طول آن مسیر ( تعداد عملیات) می باشد.

صفحه 10:
یک راه حل نمونه حالت اولیه (شریع) ‎m=) (eo) em) (ea) em) (eo) am)‏ -223 و ردم) ود = ~ حالت هدف ( نهايى) دنباله عملیات: (۲, ۶و ۲و ۳: ۷ 1۶

صفحه 11:
عامل های حل مسأله شکل محدود شده عامل های عمومی function SIMPLE-PROBLEM-SOLVING-AGENT( p) returns an action inputs: p, a percept static: s, an action sequence, initially empty state, some description of the current world state g,agoal problem, a problem formulation state € UPDATE-STATE( state, p) if sis empty then g © FORMULATE-GOAL( state) problem ¢€ FORMULATE-PROBLEM( state, g) s € SEARCH( problem) action € RECOMMENDATION( s, state) s € REMAINDER( 5, state) 11

صفحه 12:
مثال: رومانی یک روز تعطیل در رومانی؛ مکان فعلی شهر آراد ‎AS get senna gulip‏ فرموله سازی هدف: بودن در بخارست فرموله سازی سأله: حالت ها: شهرهای مختلم عملیات: رفتن از شهری به شهر دیگر بافتن پاسخ: دنباله ای از شهرهاء مانند: ‎Arad > Sibiu > Fagaras > Bucharest‏ 12

صفحه 13:
Ara Sibiu, Fagaras | Vaslui Rimnicu Vilcea | ‏لج‎ Pitesti \ 130 ۱0۱ 138 Hirsova 86 ucharest ۳ 9 Eforie Giurgiu

صفحه 14:
انواع مسأله قطعی كاملا دسترس يدير سل تک - حالته عامل دقیقا می داند در چه حالتی خواهد بود؛ راه حل یک دنباله می باشد. قطعی, غير دسترس يدير ‎slag‏ ‏ممكن است عامل ايده اى درباره اينكه كجاست نداشته باشد؛ راه حل ( در صورت وجود) یک دنباله است. غیر قطعی و ایا دسترس پدیر جزئی > مسائل احتمالی ادرااک اطلاعات جدیدی درباره حالت فعلی فراهم می کند. در حین اجرا باید از حسگرها استفاده کند. راه حل به صورت یک درخت اغلب جستجو و اجرا به صورت 1۳161716376 ‎clad‏ حالت اشناخته 7 مسائل اکتشانی (6صت1ظ0) 14

صفحه 15:
داد 2 تکت-حالقه. شروع ۵#. مثال: دنیای مکش ‎BR‏ لت که هه | 1 ل 8

صفحه 16:
مثال: دنياى تك-حالته. شروع #د. لع1ا5 بأاطوتظ] جند-حالته. شروع در }1 ۲ مع ارما ‎Right joc Je‏ به ۱۴۳۲۸۱ 16 له ah Ae

صفحه 17:
مثال: دنیای مکش تكك-حالقه. شروع #د. ‎(Right, Suck}‏ 1۸,۷۶۵ ۴۳۲,۱۱ ‏چندسحالته» شروع در‎ ۱۴۳۲۸۱۱ ‏به‎ Right je ‏مثال‎ ‎|Right, Suck, Left, Suck) احتمالی» شروع در ۵#. قانون مورفی: مکش می تواند یک فرش تميز را کثیف کند.درک محلی: گرد و خاک و محل ‎(Right, if dirt then Suckj‏ 17 8 ah Ae 18 ah

صفحه 18:
فرموله سازی مسائل تک-حالته یک مسأله بوسیله چهار مورد تعریف می شود: حالت اولیه‌مثلا بودن در شهر ۸۲۵0 تابع حالت بعدی ((۱6 ‎(Successor function S(‏ ‎x)‏ )5- مجموعه لعاز زوج هایعمل‌حالت ‎S( Arad) = {<Arad > Zerind, Zerind>, ...}‏ تابم تست هدف ‎(Goal test function)‏ ‎"x = “at Bucharest ‘~~‏ ‎NoDirt( x) : 2.6‏ ‎@ath cost function) ju ab‏ مثلا؛ مجموع فواصل» تعداد عمل های انجام شده و ... هزینه گام ‎c( x, a, y) = 0 «Step cost)‏ راه حل:دنباله ای از عملیات که از حالت اولیه شروع وبه حالت هدف ختم می شود. 18

صفحه 19:
انتخاب یک فضای حالت دنیای واقعی به شدت پیچیده می باشد بنابراین» برای حل مسأله باید فضای حالت انتزاعی باشد. حالت ( انتزاعی) < مجموعه ای از حالت های واقعی عمل ( انتزاعی) - تر کیبی پیچیده از عمل های واقعی ‎uc‏ 2611110 << ۸۵۲80 می تواند مجموعه ای پیچیده از اعمال باشد. ‏راه حل ( انتزاعی) - مجموعه ای از مسیرهای واقعی که در دنیای واقعی راه حل می باشند. ‏هر عمل انتزاعی باید از مسأله اصلی ساده تر باشد! ‎19

صفحه 20:
مثال: گراف فضای حالت دنیای مکش ۳ Cele te ۳ لعل ‎(FELTED‏ ‏ی -Q ۳ D

صفحه 21:
مدال: : گراف فضای حالت دنیای مکش 9۹ هل ‎Rie eee‏ ‘fa ۳ ‏]تس‎ (۳ To 5 وجود كرد و خاك و مكان هاى عامل ( بدون در نظر كرفتن مقدار كرد و خاک) ‎Left, Right, Suck‏ نبودن كرد و خاكك بازاء هر عمل ‎١‏

صفحه 22:
22 8 Goal State 3 Start State

صفحه 23:
7 2 4 1 2 3 5 6 4 5 6 8 3 1 7 8 Start State Goal State اعداد صحیح بیانگر محل کاشی ها حرکت خانه خالی به چپ. بالاء راست و پایین حالت هدف ( داده شده) چز بازاء هر حرکت ۱

صفحه 24:
ع مساله هشت وزير قراردادن هشت وزير در صفحه شطرنج به طوريكه هيج وزيرى نتواند به وزير ديكرى حمله كند. آزمون هدف: ۸وزیر روی صفحه شطرنج که با هم برخورد ندارند. هزینه مسیر: صفر حالات: ترتیب ۸ وزیر هر کدام در یک ستون تال رویرو: ۴۶۸ ۲و ۷ ۵ ۰۳ ۱) عملگرها: انتقال یک وزیر دارای برخورد به ‎ee‏ دیگری در همان ستون 24

صفحه 25:
ریاضیات رمزی حالات: یک معمای رمزی که در آن تعدادی حرف با رقم جایگزین شده باشد. عملگرها: جایگزینی یک حرف با رقمی که قبلا در معما ظاهر نشده باشد. آزمون هدف: معما فقط شامل ارقام است و مجموع صحیح باشد. راه حل - هزينه مسير: صفر 25

صفحه 26:
3 5 مساله كشيش ها و ادمخوارها حالات : يكك سه تايى مرتب كه شامل تعداد كشيشها و تعداد آدمخوارها در ساحلى از رودخانه كه مسأله از آنجا شروع شده و محل قايق ( شمال /جنوب)- مثلا حالت شروع (7, ‎2١,"‏ عملكرها: جابه جايى يكك كشيش» دو كشيش»ء يكك كشيش و يكك آدمخوار» یک آدمخوار و دو آدمخوار توسط قایق به سمت دیگر رودخانه. آزمون هدف : (۰ ۰ ۰) هزینه مسیر: تعداد دفعات عبور قایق از عرض رودخانه 26

صفحه 27:
الكو رد یتمهای جسنجوی درحت ایده اصلی: کاوش 01111116 و شبیه سازی شده فضای حالت بوسیله تولید حالات بعدی حالت هایی که تا کنون تولید شده اند. ‎function GENERAL-SEARCH( problem, strategy) returns a‏ ‎‘solution , or failure‏ ‎initialize the search tree using the initial state of problem‏ ‎loop do‏ ‎if there are no candidates for expansion then return failure‏ choose a leaf node for expansion according to strategy if the node contains the goal state then return the corresponding solution search tree 2

صفحه 28:
28

صفحه 29:
29

صفحه 30:
30

صفحه 31:
پیاده سازی: حالت و گره یک حالت ( بیانگر) یک پیکره بندی فیزیکی می باشد یک گره یک ساختار داده ای تشکیل دهنده بخشی از درخت جستجو شامل: پدر؛ فرزندان؛ عمق و هزينه مسير (16 )0 است. parent, action : ‏حالت ها‎ پدن فرزنده عمق و هزینه مسیر ندارند! ‎Node depth = 6‏ 4 هو ‎g=6‏ ‏۱ ‎fe‏ ‏ام 2 ادا ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ae‏ (228111] كره هاى جديد ايجاد مى كند» فیلدهای مختلف را مقدار می دهد و با بي استفاده از ابع 51100۳55001517 مسأله حالت های مربوطه ایجاد می شود. ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 32:
پیاده سازی: جستجوی درخت گلی function TREE-SEARCH( problem, QUEUING-FN) returns a solution or failure nodes € MAKE-QUEUE( MAKE-NODE(INITIAL-STATE|[ problem] ) loop do if nodes is empty then return failure node € REMOVE-FRONT( nodes) if GOAL-TEST[problem] applied to STATE( node) succeeds, then return node nodes € QUEUING-FN( nodes, EXPAND( node, problem) ) 32

صفحه 33:
پیاده سازی: ناپم گسترش گره ها function EXPAND( node, problem) returns a set of nodes successors € the empty list for each action, result in SUCCESSORS-FN[ problem]( STATE[ node]) s € anew node PARENT-NODE[ s] € node; ACTION[ s] € action; STATE[ s] € result PATH-COST[ s] € PATH-COST[ node] + STEP-COST( node, action, 53) DEPTH s] > [2082111] 2006[ + 1 add sto successors 33

صفحه 34:
استراتزى هاى جستجو یک استراتژی بوسیله ترتیب گسترش كره ها تعريف مى شود. ابعاد ارزيابى استراتزى ها: كامل بودن - آيا در صورت وجود راه حل» هميشه راه حلى بيدا مى كند؟ پیچید گی زمانی - تعداد گره های تولید شده/گسترش یافته پیچید گی حافظه - حداکثر تعداد گره ها در حافظه بهینگی - آیا همیثه کم هزینه ترین راه حل را بيدا مى كند؟ سید گی زمان و فضا برحسب پارامترهای زیر سنجیده می شوند: 9 - حلا کثر فاکتور انشعابدرختجستجو 0 - عمق كم هزينه ترين راه حل - حللكثر عموؤفضاءئحا لل ممكرلستهه باشد) 34

صفحه 35:
استرتزی های جستجوی ناآگاهانه وب ع ویس تنها از اطلاعات موجود در تعریف مسأله جستجوی اول-سطح (۳5ظ) جستجوی هزینه-یکسان (1708) جستجوی اول-عمق (عمقی) (1(۳5) جستجوی با عمق محدود (1(1,5) حتقعواق مق کته تک ای( (011) 35

صفحه 36:
چستجوی سطحی هربار سطحی ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: 6 ب که ) ۳1۳ می‌باشد 11611100-۳۴1( )ف_رزندلن‌جدید را ۳۹

صفحه 37:
چستجوی سطحی هربار سطحی ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: ‎tL... FIFQs << fringe‏ فرزندان‌جدید به لنتهایم فلضافه ‎eet‏ ‎Q‏ ‎be ©‏ / ۷ /ر ۷ /”

صفحه 38:
چستجوی سطحی هربار سطحی ترین گره گسترش نيافته را گسترش می دهد. پیاده سازی: 6 بکصنل) ۳1۳ می‌باشد. فرزندن‌جدید به لنتها لضافه می‌شوندد

صفحه 39:
چستجوی سطحی هربار سطحی ترین گره گسترش نيافته را گسترش می دهد. پیاده سازی: 6 بکصنل) ۳1۳ می‌باشد. فرزندن‌جدید به لنتها لضافه می‌شوندد 4 9 2 <۵ © © ©

صفحه 40:
مثال: جستجوی سطحی > عير که اسات کته 9 ‎(rad) Oradea) Card) 2 lea) Fagara rad‏

صفحه 41:
کاما ۲۴ بله ( به شرط محدود بودن ‎(D‏ 1+ 0+ 9+ ... + 9٩ 2 0)0( 6 4, حاذذل ؟؟ (2)08) چونهمه گره ها را در حافظه نگه می‌دارد ‎Wangs‏ بله ( اگر هزینه هر عمل یک باشد)؛ در حالت کلی خیر ‏مشکل اصلی حافظه می باشد. ‎41

صفحه 42:
میزان مصرف حافظه و زمان در 18۳5 b=10 ‏گره در ثانیه‎ ۰ هر گره ۱۰۰ بایت 42 Memory 100 bytes 11 kilobytes 1 megabyte 111 megabytes 11 gigabytes 1 terabytes 111 terabytes 11,11 terabytes 1 Time Millisecon seconds Seconds Minutes Hours Days Years years 11 18 31 128 35 3500 Node 5 1 111 1,1 1 105 10° 109 10% 10" 10 12 14

صفحه 43:
جستجوی هزینه -یکسان هربار کم هزینه ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: 26 - صفیکه برلساس‌وزینه مسیر مرتبشده باش معادل جستجوی سطحی اگر هزینه گام ها مساوی باشند. کامل؟؟ بله اگر هزینه گامها <- ‎٩‏ تعداد گره هایی که هزینه مسیر آنها کوچکتر یا مساوی حجان ‎Ol) ool py‏ پیچید 5 نی حافظه؟؟ مانند پیچید گی زمانی بهينه؟؟ بله ( گره ها به ترتیب صعودی (12 )© گسترش می یابند). 43

صفحه 44:
مثال: جستجوی هزینه یکسان “STU ‏هتم‎ Grated Cont) ina a) ‏سوه‎ > i (Arad) (Lage) 44

صفحه 45:
مثال: جستجوی هزینه یکسان “Ls | 15 ce G 11 ۰.0

صفحه 46:
جستجوی عمفی هربار عمیق ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. ۵۰ -- or 3 8 % 4 % S DW GF ۵ ico ss al at) 89 ۵ ‏ب‎ ۵ ۵ ( © © 46

صفحه 47:
جسنجوی عمقی هربار عمیق ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. oo 7 وتم 0 5 له ‎go»‏ PN Ie of Day 9 © ( ۵ ( 49 9 © 47

صفحه 48:
جسنجوی عمقی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. ‎wk‏ ام و کم ‎DOD‏ © ف © ن 42 ‎48

صفحه 49:
جسنجوی عمقی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. PVA Souk ' 0 © © 2 ‏«ن‎ © © 49

صفحه 50:
جسنجوی عمقی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. ۸ ۵ 8 ها ری ع 2 © © «4 4 5 2 0 50

صفحه 51:
جسنجوی عمقی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. #۴ © 4 ۵ Pe oh ‏لوح‎ ‎0 © © 9 © © 51

صفحه 52:
جسنجوی عمقی هربار عمیق ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. 52

صفحه 53:
جسنجوی عمقی هربار عمیق ترین گره گسترش نیافته را گسترش می دهد. پیاده سازی: ‎fringe‏ - يشته 1۳*00[ فرزندان جدید را در ابتدا درج می کند. 53

صفحه 54:
جستجوی عمفی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: 6 - پشته ‎LIFO‏ فرزندان جدید را در ابتدا درج می کند. 1 ۵ / EO OOOO 54

صفحه 55:
جستجوی عمفی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: 6 - پشته ‎LIFO‏ فرزندان جدید را در ابتدا درج می کند. ا / و ۵ ۵ ۵ 55

صفحه 56:
جستجوی عمفی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: 6 - پشته ‎LIFO‏ فرزندان جدید را در ابتدا درج می کند. 56

صفحه 57:
جستجوی عمفی هزبار عمیق ترین گره گسترش نیافته:را گسترش می دهد: پیاده سازی: 6 - پشته ‎LIFO‏ فرزندان جدید را در ابتدا درج می کند. 57

صفحه 58:
مثال: جستجوی عمقی مهنم Ge) 1 حلقه بى يايان ! 8 بی پایان ! ‎G,‏ ‎Greet‏ ‏در این جستجو نیاز به فضای حالت محدود و بدون چرخه داریم. ۱ ‎iP‏ 5 ‎and) (Sibia) mi‏ پا باید عالات تکرازق جيك شويد. رس ی و 58

صفحه 59:
خصوصیات جستجوی عمقی کامل 19 خر (در فضاهای حالت با عمق نامحدود» دارای حلقه) برای اجتناب از حالات تکرای در طول مسیر نیاز به اصلاح دارد. بنابراین؛ در فضای حالت محدود کامل است. پیچی د کی زمانی؟1 (۳ )0 اگر 1 خیلی بیشتر از 4 باشد» بسیار زياد آما اگر تعداد راه حل ها زياد باشد» سریعتر از جستجوی سطحی پیچید گی حافظه؟؟ (110 )0 بسه صورتخطلل ‎Beg‏ خير 59

صفحه 60:
جستجوی پا عمق محدود < جستجوی عمقی با محدوده عمقی 1 يعنى»فرزندان گره های واقع در عمق / تولید نخواهند شد. در این استراتژی با در نظر گرفتن یک محدوده عمقی مانند 1 از به دام افتادن جستجوی عمقی در یک حلقه بی پایان جلوگیری می شود.( برش روی درخت جستجو) مثلا در نقشه رومانی چون ۲۰ شهر وجود دارد بنابراین طول راه حل بايد حداکثر ۱۹ باشد. بنابراین هیچ وقت گره ای با عمق بیش از ‎۱٩‏ بررسی نخواهد شد. اگر در محدوده عمقی 7راه حلی وجود داشته باشد» بالاخره پیدا خواهد شدة اما هیچ تضمینی برای یافتن راه حل بهینه وجودندارد. 60

صفحه 61:
جستجوی پا عمق محدود Ho )[ < 6 ‏بله (اگر‎ پیچید گیی زمانی19 ‎O(b)‏ 2 ‎Fovsey‏ _ حافظه؟1 0) Bain ‏خير‎

صفحه 62:
جستجوی پا عمق محدود ‎function DEPTH-LIMITTED-SEARCH( problem, limit) returns‏ ‎soln/fail/cutoff‏ RECURSIVE-DLS(MAKE-NODE(INITAIL-STATE[ problem), problem, limit) function RECURSIVE-DLS( node, problem, limit) returns soln/fail/cutoff cutoff occurred? € false if GOAL-TESTI problem]( STATE[ node]) then return node else if DEPTH node] = limit then return cutoff else for each successor in EXPANDE( node, problem) do result € RECURSIVE-DLS( successor, problem, limit) if result = cutoff then cutoff occurred? € true

صفحه 63:
جستجوی عمیق کننده تکراری مشکل اصلی در جستجوی عمقی با عمق محدود شده (101.5) انتخاب ‎8S‏ ‏محدوده عمقی مناسپ است. در نقشه رومانی طول بزرگترین مسیر بین دو شهر ‎٩‏ می باشد(قطر» و این محدوده عمقی مناسب تر از ‎۱٩‏ می باشد. اما در بیشتر فضاهای حالت انتخاب محدوده مناسب قبل از حل مسأله میسر نمی باشد. جستجوی عمیق کننده تکراری روشی برای تعیین محدوده عمقی مناسب با امتحان کردن تمامی محدوده ها ( از صفر به بالا) می باشد. یعنی اول عمق صفر بعد عمق ١ح‏ بعد عمق ۲ و ... 63

صفحه 64:
جستجوی عمیق کننده تکراری ‎function ITERATIVE-DEEPENING-SEARCH( problem)‏ returns a solution inputs: problem, a problem for depth € 0 to ~ do result € DEPTH-LIMITTED-SEARCH( problem, depth) if result + cutoffthen return result 64

صفحه 65:
جستجوی عمیق کننده تکراری جستجوی عمیق کننده تکراری مزایای جستجوی سطحی و عمقی رابا هم تركيب مى كند: جستجوى سطحى كامل و بهينه است. جستجوى عمقى داراى مصرف حافظه خطى مى باشد. اين جستجو از نظر بيجي د كى زمانى مانند جستجوى سطحى مى باشد به جز اينكه برخى حالات جند بار بسط داده مى شوند. 65

صفحه 66:
جستجوی عمیق کننده تکراری (0 < [) 20. a Limit = 0

صفحه 67:
جستجوی عمیق کننده تکراری (1 > [)

صفحه 68:
جستجوی عمیق كننده تكرارى (2 > [) شب يسيس تيم ات کبک مر ۳۹

صفحه 69:
جستجوى عميق كللده تكرارى ‎3B)‏ = 0 Limit ~3 ao 0 & By doe ck wok 83 ‏ك8 ن 0 ف‎ 5 01 ١ 4 ‏أن نب و‎ © 0

صفحه 70:
خواص جستجوی عمیق کننده تکراری کامل ۲ بله ‎(dm 1) b® + db! + (d.— 1) 2 2 as es‏ O(b?) O(bd) seats ‏پیچیدگی‎ بهینه 1۶ بله (اگر هزینه گام - یک) می تواند برای کاوش درخت جستجوی هزینه یکسان اصلاح شود.

صفحه 71:
تعداد گره های گسترش یافته در ۳9۳5: 0 + 01 + ... + 2 +ط + 1 اگر 10 < طو 5 < 0: 111,111 = 000 ,100 + 10,000 + 000 ,1 + 100 + 10 + 1 ‎IDS 53‏ 123,456 = 100,000 + 20,000 + 3,000 + 400 + 50 + 6 محاسبه میزان سربار: 11% = 100 *)111111)/111111 - 123456(( با فزایش فاکتور انشعاب 8 میزان سربار کاهش می یابد. در بدترین حالت 2 < 0 سربار 1۱۰۰ است و این جستجو دو برابر زمان می برد. برای له های بز رگ: (1 - ظ) / ‎Nurs = b‏ /عمل 71

صفحه 72:
استدلال جلورو در مقابل عقبرو هدف روال جستجوء کشف یک مسیر از میان فضای حالت مسأله از یک حالت اولیه به یک حالت هدف می باشد. چنین جستجویی به دو روش ممکن است: (۱) رو به جلو از حالت اولیه به سمت حالت هدف (۲) رو به عقب. از حالت هدف به سمت حالت اولیه فا کتورهای موثر در انتخاب جهت جستجو ۱- تعداد حالت های اولیه و حالت های هدف ( کمتر به بیشتر) مثال: رانند گی از یک محل ناآشنا به سمت منزل( عقبرو) ۲- فا کتور انشعاب در دو جهت ( کمتر) مثال: اثبات تتوری ( از یکك اصل می توان تعداد زيادى تثورى نتيجه كرفت)( عقبرو) ۳- طبیعی بودن جهت جستجو مثال: سیستم خبره تشخیص بیماری ‎MYCIN‏ جلورو) 272

صفحه 73:
جستجوی دو طرفه ‎(Bidirectional Search)‏ ‎co!‏ جستجوی همزمان: ( به شرطی که میسر باشد) از حالت اولیه به سمت حالت هدف (0۳773۳0) ؛ و از حالت هدف به سمت حالت ‎(Backward). Js)‏ اگر عملیات قلبل وارهنه کردن باشند( مانند معمای هشت)؛ می توان از جستجوی دو طرفه استفاده نمود؛ اما مثلا در مسأله تنگ ‎OT‏ تمام عملیات قابل وارونه سازی نمی باشند: مثال: 10 < ط و6 < 0 حستجوی سطحی: ۱:۱۱۱:۱۱۱ گره را بررسی می کند جستجوی دو طرفه تنها ۱,۱۱۱ + 2۱,۱۱۱ ۲:۲۲۲ را بررسی می کند. 73

صفحه 74:
چستجوی دو طرفه ‎@idirectional Search)‏ در مسایلی که دارای حالات اولیه و هدف متعددی باشند. ممکن است با ت روبرو شود. باید یک راه موثر برای کنترل هر گره جدید وجود داشته باشدتا متوجه شویم که آیا این گره قبلا در درخت جستجوی طرف دیگر ظاهر شده است یا خبر ( اغلب با جدول پراکندگی) بايد د ‎age‏ که در هر جهت از کدام روش جستجو استفاده ‎Sab eat‏ گره های -داقل یکی | 5 ‎tiga‏ لقره عردو ابر سطحی) بنابراین ۷ حافظه و زمان (0)109/2) است. 74

صفحه 75:
مقایسه استراتزیهای جستجو Criterion |Breadt Unifor Depth- Depth- Iterativ Bidirectio ‎m- First Limited e- nal‏ خط ‎First Cost Deepen (if‏ ‎ing _ applicable‏ ) ‎Time bt ‘bt be BD bt bi? ‎Space bt bt bm bl bd be ‎Optimal | Yes Yes No No Yes Yes 2 ‎Complet | Yes Yes No Yes, if Yes Yes ‎2 120 ‎ ‎75 ‎ ‎ ‎ ‎

صفحه 76:
‎ONG‏ تکراری ‏شکست در تشخیص حالت های تکرای می تولند یک مسأله خطی ‎EK aa ly‏ مسأله نمایی تبدیل کند! ‎ ‎76

صفحه 77:
جستجوی گراف function GRAPH-SEARCH( problem, fringe) returns a solution o! failure closed € an empty set fringe € INSERT( MAKE-NODE(INITIAL-STATE[ problem), fringe) loop do if fringe is empty then return failure node € REMOVE-FRONT( fringe) if GOAL-TESTI problem)( STATE[ node]) then return node if STATE[ node] is not in closed then add STATE[ node] to closed fringe € INSERTALL( EXPAND( node, problem), fringe) end

صفحه 78:
خلاصه فرموله سازی مسأله اغلب نیاز به انتزاع جزیبات مسأله دارده تا بتوان فضای حالتی بدست آورد که به صورت مقرون به صرفه ای قابل ‏ کاوش کرد ن و جستجو باشد. انواع استراتژی های نا گاهانه وجود دارد. مصرف حافظه جستجوی عمیق کننده تکراری دارای مرتبه خطی می باشد و زمان خیلی بیشتری نسبت به سایر روشهای نا گاهانه مصرف نمی کند. 78

حل مسائل توسط جستجو رامین اعیانزاده ‏Email: grandee@ayanzadeh.ir 1389 مقدمه • عاملهای حل مسأله • انواع مسأله • فرموله سازی مسأله • مسائل نمونه • الگوريتم های ابتدايی جستجو 2 عامل حل مسأله عامل حل مسأله يک نوع عامل هدف گرا می باشد. عام(ل ح(ل مس(أله ،مس(أله داده شده را از طري(ق يافت(ن دنبال(ه ای از عمليات ک(ه آنرا از حالت اوليه مسأله به يک حالت هدف می برد ،حل می کند. مراحل حل مسأله توسط عامل حل مسأله: ( )1ف(رموله سازی هدف ( )2فرموله سازی مسأله ( انتخاب حاالت و عمليات به دنبال فرموله سازی هدف) ( )3جستجو ( برای ياف(تن دنباله عمليات مورد نظر يا راه حل مسأله) ( )4اجرا 3 مشخص کردن وضعيت ها • هر وضعيت را به صورت ( )X, Yنشان مي دهيم به طوريکه: آب(وجود در ت(((نگ 4ل((يتري م(ي ب(((اشد و( – : Xم(قدار م آب(وجود در ت(((نگ 3ل((يتري م(ي ب(((اشد. – : Yم(قدار م 3 4 4 تعيين وضعيت هدف • هدف :در اي(ن مس(أله هدف اي(ن اس(ت ک(ه ب(ه وضعيت(ي برس(يم که در آ(ن تن(گ 4ليتري حاوي 2ليت(ر آ(ب و تن(گ 3ليتري خالي باشد .بنابراي(ن م(ي توان وض(عي(ت هدف را ب(ه شک(ل زي(ر فرموله نمود: )(2, 0 2 5 تعيين وضعيت اوليه • وضعيت اوليه :در اين مس(أله از وضعيت(ي شروع م(ي کني(م که در آ(ن ه(ر دو تن(گ خال(ي م(ي باشند .بنابراي(ن م(ي توان وضعي(ت اوليه را به شکل زير فرموله نمود: )(0, 0 6 تعيين عملگرها • عملگرها .1 .2 .3 .4 .5 .6 .7 .8 پر کردن تنگ 4ليتري پرکردن تنگ 3ليتري خالي کردن مقداري از تنگ 3ليتري در تنگ 4ليتري تا پرشدن آن خالي کردن مقداري از تنگ 4ليتري در تنگ 3ليتري تا پرشدن آن خالي کردن تمام آب تنگ 4ليتري در 3ليتري خالي کردن تمام آب تنگ 3ليتري در 4ليتري خالي کردن تنگ 4ليتري خالي کردن تنگ 3ليتري در صفحه بعد اين عملگرها فرموله سازي شده اند 7 عملگرها 1. 2. 3. 4. 5. 6. 7. 8. (X,Y (X,Y (X,Y (X,Y (X,Y (X,Y (X,Y (X,Y | | | | | | | | X < 4)  (4, Y) Y < 3)  (X, 3) X + Y >=4, Y > 0)  (4, Y – (4 – X)) X + Y >=3 , X > 0)  (X – (3 – Y), 3) X + Y <= 3 , X >0)  ( 0, X + Y) X + Y <= 4 , Y >0)  (X + Y, 0) X > 0)  (0, Y) Y > 0)  (X, 0) 8 تابع آزمون هدف و هزينه مسير تاب ع آزمون هدف :اگ(ر وضعي(ت فعل(ي برابر ( )2,0باشد مقدار درست و در غير اين صورت مقدار نادرست را بر مي گرداند. تابع هزينه مسير :هزين(ه ه(ر عم(ل برابر ي(ک م(ي باشد .بنابراي(ن هزينه يک مسير برابر با طول آن مسير ( تعداد عمليات) مي باشد. 9 يک راه حل نمونه حالت اوليه ( شروع) 3 )(3, 3 2 )(3, 0 6 )(0, 3 2 )(0, 0 )(2, 0 6 )(0, 2 7 )(4, 2 حالت هدف ( نهايی) دنباله عمليات}6 ,7 ,3 ,2 ,6 ,2{ : 10 عامل های حل مسأله شکل محدود شده عامل های عمومی function an action SIMPLE-PROBLEM-SOLVING-AGENT( p) returns inputs: p, a percept static: s, an action sequence, initially empty state, some description of the current world state g, a goal problem, a problem formulation state  UPDATE-STATE( state, p) if s is empty then g FORMULATE-GOAL( state) problem  s SEARCH( problem) action  s FORMULATE-PROBLEM( state, g) RECOMMENDATION( s, state) REMAINDER( s, state) return action 11 مثال :رومانی يک روز تعطيل در رومانی؛ مکان ف(علی شهرآراد پرواز فردا بخارست را ترک می کند. فرموله سازی هدف: بودن در بخارست فرموله سازی مسأله: حالت ها :شهرهای مختلف عمليات :رفتن از شهری به شهر ديگر يافتن پاسخ: دنباله ای از شهرها ،مانند: ‏Arad  Sibiu  Fagaras  Bucharest 12 مثال :رومانی 13 انواع مسأله مسائل تک – حالته قطعی ،کامال دسترس پذير عامل دقيقا می داند در چه حالتی خواهد بود؛ راه حل يک دنباله می باشد. مسائل چند-حالته قطعی ،غير دسترس پذير ممک(ن اس(ت عام(ل ايده ای درباره اينک(ه کجاس(ت نداشت(ه باش(د؛ راه ح(ل ( در صورت وجود) يک دنباله است. مسائل احتمالی غير قطعی و/يا دسترس پذير جزئی ادراک اطالعات جديدی درباره حالت فعلی ف(راهم می کند. در حين اجرا بايد از حسگرها استفاده کند. راه حل به صورت يک درخت اغلب جستجو و اجرا به صورت interleave مسائل اکتشافی ()online فضای حالت ناشناخته 14 مثال :دنيای مکش تک-حالته ،شروع .5#پاسخ؟؟ 15 مثال :دنيای مکش تک-حالته ،شروع .5#پاسخ؟؟ []Right, Suck چند-حالته ،شروع در {}8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 مثال عمل Rightبه { .}4 ,3 ,2 ,1پاسخ؟؟ 16 مثال :دنيای مکش تک-حالته ،شروع .5#پاسخ؟؟ []Right, Suck چند-حالته ،شروع در {}8 ,7 ,6 ,5 ,4 ,3 ,2 ,1 مثال عمل Rightبه { .}4 ,3 ,2 ,1پاسخ؟؟ []Right, Suck, Left, Suck احتمالی ،شروع در .5# قانون مورفی :مکش می تواند يک فرش تميز را کثيف کند.درک محلی :گرد و خاک و محل پاسخ؟؟ []Right, if dirt then Suck 17 فرموله سازی مسائل تک-حالته يک مسأله بوسيله چهار مورد تعريف می شود: حالت اوليهمثال بودن در شهر Arad تابع حالت بعدی ()) Successor function S( x لح(ا((لت ) =S( xم(جموعه ا(یاز زو(ج هایع(م - }… S( Arad) = {<Arad  Zerind, Zerind>, تابع تست هدف ()Goal test function صريح”x = “at Bucharest : ضمنیNoDirt( x) : تابع هزينه مسير ()Path cost function مثال :مجموع فواصل ،تعداد عمل های انجام شده و ... هزينه گام (c( x, a, y) ≥ 0 :)Step cost راه حل:دنباله ای از عمليات که از حالت اوليه شروع و به حالت هدف ختم می شود. 18 انتخاب يک فضای حالت دنيای واقعی به شدت پيچيده می باشد بنابراين ،برای حل مسأله بايد فضای حالت انتزاعی باشد. حالت ( انتزاعی) = مجموعه ای از حالت های واقعی عمل ( انتزاعی) = ترکيبی پيچيده از عمل های واقعی مثال عم(ل Arad  Zerindم(ی توان(د مجموعه ای پيچيده از اعمال باشد. راه ح(ل ( انتزاع(ی) = مجموع(ه ای از مس(يرهای واقع(ی ک(ه در دنيای واقعی راه حل می باشند. هر عمل انتزاعی بايد از مسأله اصلی ساده تر باشد! 19 مثال :گراف فضای حالت دنيای مکش حاالت؟؟ اعمال؟؟ تست هدف؟؟ هزينه مسير؟؟ 20 مثال :گراف فضای حالت دنيای مکش حاالت؟؟ وجود گرد و خاک و مکان های عامل ( بدون در نظر گرفتن مقدار گرد و خاک) اعمال؟؟ Left, Right, Suck تست هدف؟؟ نبودن گرد و خاک هزينه مسير؟؟ بازاء هر عمل 1 21 مثال :معمای هشت حاالت؟؟ اعمال؟؟ تست هدف؟؟ هزينه مسير؟؟ 22 مثال :معمای هشت حاالت؟؟ اعداد صحيح بيانگر محل کاشی ها اعمال؟؟ حرکت خانه خالی به چپ ،باال ،راست و پايين تست هدف؟؟ حالت هدف ( داده شده) هزينه مسير؟؟ بازاء هر حرکت 1 23 مسأله هشت وزير ق(راردادن هش(ت وزي(ر در ص(فحه شطرن(ج ب(ه طوريک(ه هي(چ وزيری نتوان(د ب(ه وزير ديگری حمله کند. آزمون هدف 8 :وزير روی صفحه شطرنج که با هم برخورد ندارند. هزينه مسير :صفر حاالت :ترتيب 8وزير هر کدام در يک ستون مثال روبرو}1 ,3 ,5 ,7 ,2 ,4 ,6 ,8{ : عملگرها :انتقال يک وزير دارای برخورد به مربع ديگری در همان ستون 24 رياضيات رمزی حاالت :يک معمای رمزی که درآن تعدادی حرف با رقم جايگزين شده باشد. عملگرها :جايگزينی يک حرف با رقمی که قبال در معما ظاهر نشده باشد. ‏FORTY + TEN + TEN ---------SIXTY 29786 آزمون هدف :معما فقط شامل ارقام است و مجموع صحيح باشد. 850 راه حل 850 هزينه مسير :صفر 25 -------31486 مسأله کشيش ها و آدمخوارها حاالت :ي(ک س(ه تاي(ي مرت(ب ک(ه شام(ل تعداد کشيشه(ا و تعداد آدمخوارها در س(احلی از رودخان(ه ک(ه مس(أله از آنج(ا شروع شده و محل قايق ( شمال/جنوب)– مثال حالت شروع ()1 ,3 ,3 عملگره(ا :جاب(ه جاي(ی ي(ک کشي(ش ،دو کشي(ش ،ي(ک کشي(ش و يک آدمخوار، يک آدمخوار و دو آدمخوار توسط قايق به سمت ديگر رودخانه. آزمون هدف )0 ,0 ,0( : هزينه مسير :تعداد دفعات عبور قايق از عرض رودخانه 26 الگوريتمهای جستجوی درخت و ش(بيه س(ازی شده فضای حال(ت بوس(يله توليد حاالت بعدیoffline کاوش:ايده اص(لی .حالت هايی که تا کنون توليد شده اند function GENERAL-SEARCH( problem, strategy) returns a solution , or failure initialize the search tree using the initial state of problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains the goal state then return the corresponding solution else expand the node and add the resulting node to the search tree 27 مثال جستجوی درخت 28 مثال جستجوی درخت 29 مثال جستجوی درخت 30 پياده سازی :حالت و گره يک حالت ( بيانگر) يک پيکره بندی فيزيکی می باشد ي(ک گره ي(ک س(اختار داده ای تشکي(ل دهنده بخش(ی از درخ(ت جس(تجو شامل :پدر ،فرزندان، عمق و هزينه مسير ) g( xاست. حالت ها : پدر ،فرزند ،عمق و هزينه مسير ندارند! تاب(ع EXPANDگره های جدي(د ايجاد م(ی کن(د ،فيلدهای مختل(ف را مقدار م(ی ده(د و با استفاده از تابع SUCCESSORSFNمسأله ،حالت های مربوطه ايجاد می شود. 31 جستجوی درخت کلی:پياده سازی function TREE-SEARCH( problem, or failure QUEUING-FN) returns a solution nodes  MAKE-QUEUE( MAKE-NODE(INITIAL-STATE[ problem] ) loop do if nodes is empty then return failure node  REMOVE-FRONT( nodes) if GOAL-TEST[problem] applied to return node nodes  end STATE( node) succeeds, then QUEUING-FN( nodes, EXPAND( node, problem) ) 32 تابع گسترش گره ها:پياده سازی function EXPAND( node, problem) returns a set of nodes successors  the empty list for each action, result in s  a new node SUCCESSORS-FN[ problem]( STATE[ node]) PARENT-NODE[ s]  node; ACTION[ s]  action; STATE[ s]  result s) PATH-COST[ s]  PATH-COST[ node] + STEP-COST( node, action, DEPTH[ s]  DEPTH[ node] + 1 add s to successors return successors 33 استراتژی های جستجو يک استراتژی بوسيله ترتيب گسترش گره ها تعريف می شود. ابعاد ارزيابی استراتژي ها: کامل بودن– آيا در صورت وجود راه حل ،هميشه راه حلی پيدا می کند؟ پيچيدگی زمانی – تعداد گره های توليد شده/گسترش يافته پيچيدگی حافظه – حداکثر تعداد گره ها در حافظه بهينگی – آيا هميشه کم هزينه ترين راه حل را پيدا می کند؟ پيچيدگی زمان و فضا برحسب پارامترهای زير سنجيده می شوند: (ابر(خ(تج(ستجو – bح(دا(ک(ثر ف(((اک(تور ا(ن(شع د – dعمق کم هزينه ترين راه حل م(مکن(س(ت∞ ب اشد) ا (ا((لت – mح(دا(ک(ثر ع(مقف((((ضایح ( 34 استرتژی های جستجوی ناآگاهانه اس(تراتژی های ناآگاهانه تنه(ا از اطالعات موجود در تعري(ف مسأله استفاده می کنند. جستجوی اول-سطح ()BFS جستجوی هزينه-يکسان ()UCS جستجوی اول-عمق ( عمقی) ()DFS جستجوی با عمق محدود ()DLS جستجوی عميق کننده تکراری ()IDS 35 جستجوی سطحی هربار سطحی ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: fringeي((کص((ف FIFOم(یب(((اشدQueuing-Fn .ف(((رز(ندا(نج(ديد را ص((ف(ضاف(ه م(یک(((ند. ب(((ه ا(ن(تهای ا 36 جستجوی سطحی هربار سطحی ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: ص((ف(ضاف(ه fringeي((کص((ف FIFOم((یب(((اشد .ف(((رز(ندا(نج(دي(د ب((((ه ا(ن(تهای ا م(یش((وند. 37 جستجوی سطحی هربار سطحی ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: fringeي(((کص(((ف FIFOم((یب(((اشد .ف(((رز(ندا(نج(دي(د ب((((ه ا(ن(تهایص((ف ا(ضاف(ه م(یش((وند. 38 جستجوی سطحی هربار سطحی ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: fringeي(((کص(((ف FIFOم((یب(((اشد .ف(((رز(ندا(نج(دي(د ب((((ه ا(ن(تهایص((ف ا(ضاف(ه م(یش((وند. 39 جستجوی سطحی:مثال Arad Zerind Arad Oradea Arad Sibiu Timisoara Oradea Fagaras Rimnicu Vilcea Arad Lugoj 40 خصوصيات جستجوی سطحی کامل؟؟ بله ( به شرط محدود بودن )b )1 + b + b2 + … + bd = O( bd پيچيدگی زمانی؟؟ پيچيدگی حافظه؟؟ ) O(bdچ(ونهمه گ(((ره( ها را در ح(اف(ظه ن((گه م(یدارد بهينه؟؟ بله ( اگر هزينه هر عمل يک باشد)؛ در حالت کلی خير مشکل اصلی حافظه می باشد. 41 BFS ميزان مصرف حافظه و زمان در Dept h Node s 0 1 Time 1 Millisecon d .1 seconds Memory 100 bytes 2 111 4 11,11 1 11 Seconds 6 106 18 Minutes 8 108 31 Hours 10 1010 12 1012 35 Years 111 terabytes 14 1014 3500 years 11,11 terabytes 1 128 Days 11 kilobytes 1 megabyte b=10 گره در ثانيه1000 بايت100 هر گره 111 megabytes 11 gigabytes 1 terabytes 42 جستجوی هزينه-يکسان هربار کم هزينه ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeص((فیک(((ه ب(((را(ساسهزينه م(سير م(رتبش((ده( ب(((اشد. معادل جستجوی سطحی اگر هزينه گام ها مساوی باشند. کامل؟؟ بله اگر هزينه گامها ≤ ε پيچيدگ(ی زمان(ی؟؟ تعداد گره هاي(ي ک(ه هزين(ه مس(ير آنه(ا کوچکت(ر ي(ا مساوی هزينه راه حل بهينه باشد. پيچيدگی حافظه؟؟ مانند پيچيدگی زمانی بهينه؟؟ بله ( گره ها به ترتيب صعودی ) g( nگسترش می يابند). 43 جستجوی هزينه يکسان:مثال Arad 7 5 140 Zerind 7 5 Arad 7 1 Oradea 140 Arad Sibiu 118 Timisoara 9 9 Oradea Fagaras 151 8 118 0 Rimnicu Vilcea 111 Arad Lugoj 44 مثال :جستجوی هزينه يکسان ‏S ‏A 0 ‏C 15 5 1 10 ‏B 1 ‏A ‏G 5 ‏B 5 ‏G 10 45 11 ‏G 5 15 ‏C ‏S جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 46 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 47 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 48 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 49 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 50 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 51 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 52 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 53 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 54 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 55 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 56 جستجوی عمقی هربار عميق ترين گره گسترش نيافته را گسترش می دهد. پياده سازی: = fringeپشته ،LIFOفرزندان جديد را در ابتدا درج می کند. 57 مثال :جستجوی عمقی ‏Arad ‏Timisoara ‏Sibiu حلقه بی پايان ! ‏Zerind ‏Oradea ‏Arad در اين جستجو نياز به فضای حالت محدود و بدون چرخه داريم، يا بايد حاالت تکراری چک شوند. 58 ‏Timisoara ‏Sibiu ‏Zerind خصوصيات جستجوی عمقی کامل؟؟ خير (در ف(ضاهای حالت با عمق نامحدود ،دارای حلقه) برای اجتناب از حاالت تکرای در طول مسير نياز به اصالح دارد. بنابراين ،در فضای حالت محدود کامل است. پيچيدگی زمانی؟؟ )O( bm اگر mخيلی بيشتر از dباشد ،بسيار زياد اما اگر تعداد راه حل ها زياد باشد ،سريعتر از جستجوی سطحی پيچيدگی حافظه؟؟ خ(طی ) ،O( bmب(((ه ص((ور(ت ! بهينه؟؟ خير 59 جستجوی با عمق محدود = جستجوی عمقی با محدوده عمقی l يعنی،فرزندان گره های واقع در عمق lتوليد نخواهند شد. در اي(ن اس(تراتژی ب(ا در نظ(ر گرفت(ن ي(ک محدوده عمق(ی مانن(د lاز به دام افتادن جس(تجوی عمق(ی در ي(ک حلق(ه ب(ی پايان جلوگيری می شود (.برش روی درخت جستجو) مثال در نقش(ه رومان(ی چون 20شه(ر وجود دارد بنابراي(ن طول راه ح(ل بايد حداکثر 19باشد. بنابراين هيچ وقت گره ای با عمق بيش از 19بررسی نخواهد شد. اگ(ر در محدوده عمق(ی lراه حل(ی وجود داشت(ه باش(د ،باالخره پيدا خواه(د شد، اما هيچ تضمينی برای يافتن راه حل بهينه وجودندارد. 60 جستجوی با عمق محدود کامل؟؟ بله ( اگر )l ≥ d پيچيدگی زمانی؟؟ )O(bl پيچيدگی حافظه؟؟ )O(bl بهينه؟؟ خير 61 جستجوی با عمق محدود function DEPTH-LIMITTED-SEARCH( problem, limit) returns soln/fail/cutoff RECURSIVE-DLS(MAKE-NODE(INITAIL-STATE[ problem]), problem, limit) function RECURSIVE-DLS( node, problem, limit) returns soln/fail/cutoff cutoff occurred?  false if GOAL-TEST[ problem]( STATE[ node]) then return node else if DEPTH[ node] = limit then return cutoff else for each successor in result  EXPANDE( node, problem) do RECURSIVE-DLS( successor, problem, limit) if result = cutoff then cutoff occurred?  true else if result ≠ failure then return result 62 جستجوی عميق کننده تکراری مشک(ل اص(لی در جس(تجوی عمق(ی ب(ا عم(ق محدود شده ( )DLSانتخاب يک محدوده عمقی مناسب است. در نقش(ه رومان(ی طول بزرگتري(ن مس(ير بي(ن دو شه(ر 9م(ی باش(د(قط(ر) ،و اين محدوده عمق(ی مناس(ب ت(ر از 19م(ی باشد .ام(ا در بيشت(ر فضاهای حالت انتخاب محدوده مناسب قبل از حل مسأله ميسر نمی باشد. جس(تجوی عمي(ق کننده تکراری روش(ی برای تعيي(ن محدوده عمق(ی مناس(ب با امتحان کردن تمام(ی محدوده ه(ا ( از ص(فر ب(ه باال) م(ی باشد .يعن(ی اول عمق صفر ،بعد عمق ،1بعد عمق 2و ... 63 جستجوی عميق کننده تکراری function ITERATIVE-DEEPENING-SEARCH( returns a solution inputs: inputs problem, a problem problem) for depth  0 to ∞ do result  DEPTH-LIMITTED-SEARCH( problem, depth) if result ≠ cutoff then return result end 64 جستجوی عميق کننده تکراری جس(تجوی عمي(ق کننده تکراری مزايای جس(تجوی س(طحی و عمقی را با هم ترکيب می کند: جستجوی سطحی کامل و بهينه است. جستجوی عمقی دارای مصرف حافظه خطی می باشد. اين جستجو از نظر پيچيدگی زمانی مانند جستجوی سطحی می باشد به جز اينکه برخی حاالت چند بار بسط داده می شوند. 65 جستجوی عميق کننده تکراری ()l = 0 66 جستجوی عميق کننده تکراری ()l = 1 67 جستجوی عميق کننده تکراری ()l = 2 68 جستجوی عميق کننده تکراری ()l = 3 69 خواص جستجوی عميق کKننده تکراری کامل؟؟ بله پيچيدگی زمانی ؟؟ = (d + 1) b0 + db1 + (d – 1) b2 + … + bd )O(bd پيچيد(گی حافظه؟؟ )O(bd به(ينه ؟؟ بله( ،اگر هزينه گام = يک) می تواند برای کاوش درخت جستجوی هزينه( يکسان اصالح شود. 70 مقايسه کارآيي IDSو BFS تعداد گره های گسترش يافته در :BFS 1 + b + b2 + … + bd-1 + bd اگر b = 10و : d = 5 1 + 10 + 100 + 1, 000 + 10,000 + 100, 000 = 111,111 در :IDS 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456 محاسبه ميزان سربار: ((123456 – 111111)/111111)* 100 = 11% با افزايش فاکتور انشعاب bميزان سربار کاهش می يابد. در بدترين حالت ،b = 2سربار %100است و اين جستجو دو برابر زمان می برد. برای dهای بزرگ: )NIDS / NBFS = b / (b – 1 71 استدالل جلورو در مقابل عقبرو هدف روال جس(تجو ،کش(ف ي(ک مس(ير از ميان فضای حال(ت مس(أله از ي(ک حال(ت اولي(ه به يک حالت هدف می باشد .چنين جستجويی به دو روش ممکن است: ( )1رو به جلو ،از حالت اوليه به سمت حالت هدف ( )2رو به عقب ،از حالت هدف به سمت حالت اوليه ف(اکتورهای موثر در انتخاب جهت جستجو -1تعداد حالت های اوليه و حالت های هدف ( کمتر به بيشتر) مثال :رانندگی از يک محل ناآشنا به سمت منزل( عقبرو) -2فاکتور انشعاب در دو جهت ( کمتر) مثال :اثبات تئوری ( از يک اصل می توان تعداد زيادی تئوری نتيجه گرف(ت)( عقبرو) -3طبيعی بودن جهت جستجو مثال :سيستم خبره تشخيص بيماری ( MYCINجلورو) 72 جستجوی دو طرفه ()Bidirectional Search ايده ،جستجوی همزمان ( :به شرطی که ميسر باشد) از حالت اوليه به سمت حالت هدف ( ، )forwardو از حالت هدف به سمت حالت اوليه )Backward(. اگ(ر عمليات قابل وارونه کردن باشن(د( مانن(د معمای هش(ت) ،م(ی توان از جستجوی دو طرف(ه اس(تفاده نمود ،ام(ا مثال در مس(أله تن(گ آ(ب تمام عمليات قاب(ل وارون(ه س(ازی نمی باشند. مثال b = 10 :و d = 6 حستجوی سطحی 1,111,111 :گره را بررسی می کند جستجوی دو طرفه تنها 2,222 = 1,111 + 1,111را بررسی می کند. 73 جستجوی دو طرفه ()Bidirectional Search در مس(ايلی ک(ه دارای حاالت اولي(ه و هدف متعددی باشن(د ،ممک(ن اس(ت با شکست روبرو شود. باي(د ي(ک راه موث(ر برای کنترل ه(ر گره جدي(د وجود داشت(ه باشدت(ا متوج(ه شويم که آيا اين گره قبال در درخت جستجوی طرف ديگر ظاهر شده است يا خير ( اغلب با جدول پراکندگی) باي(د تص(ميم بگيري(م ک(ه در ه(ر جه(ت از کدام روش جس(تجو اس(تفاده کنيم .بايد گره های حداق(ل يک(ی از جس(تجوها در حافظ(ه ذخيره شون(د( جستجوی سطحی) ،بنابراين پيچيدگی حافظه و زمان ) O(bd/2است. 74 مقايسه استراتژيهای جستجو Breadt hFirst Unifor mCost Time bd bd bm Space bd bd Optimal ? Yes Complet e? Yes Criterion Depth- DepthFirst Limited Iterativ eDeepen ing Bidirectio nal (if applicable ) bl bd bd/2 bm bl bd bd/2 Yes No No Yes Yes Yes No Yes, if l≥d Yes Yes 75 حاالت تکراری شکس(ت در تشخي(ص حال(ت های تکرای م(ی توان(د ي(ک مس(أله خط(ی را ب(ه يک مسأله نمايي تبديل کند! 76 جستجوی گراف function failure GRAPH-SEARCH( problem, fringe) returns a solution or closed  an empty set fringe  INSERT( MAKE-NODE(INITIAL-STATE[ problem]), fringe) loop do if fringe is empty then return failure REMOVE-FRONT( fringe) if GOAL-TEST[ problem]( STATE[ node]) then return node if STATE[ node] is not in closed then add STATE[ node] to closed fringe  INSERTALL( EXPAND( node, problem), fringe) node  end 77 خالصه فرمول(ه س(ازی مس(أله اغل(ب نياز ب(ه انتزاع جزييات مس(أله دارد ،تا بتوان فضای حالت(ی بدس(ت آوردک(ه ب(ه ص(ورت( مقرون ب(ه ص(رفه ای قابل کاوش کرد ن و جستجو باشد. انواع استراتژی های ناآگاهانه وجود( دارد. مص(رف حافظ(ه جس(تجوی عمي(ق کننده تکراری دارای مرتب(ه خطی م(ی باش(د و زمان خيل(ی بيشتری نس(بت ب(ه س(اير روشهای ناآگاهانه مصرف نمی کند. 78
39,000 تومان