Presentation is loading. Please wait.

Presentation is loading. Please wait.

فصل ۳ - حل مساله از طریق جستجو

Similar presentations


Presentation on theme: "فصل ۳ - حل مساله از طریق جستجو"— Presentation transcript:

1 فصل ۳ - حل مساله از طریق جستجو
فصل ۳  - حل مساله از طریق جستجو الگوریتم‌های نا آگاه

2 توضیحات ۱- در اسلاید متناوباً از واژهٔ‌های کارگزار و عامل استفاده شده است: این ۲ یکی‌ هستند ۲- در اسلاید به تابع جانشین اشاره شد، در کتاب از تابع جانشین به تابع پسین اشاره شده است: این ۲ نیز یکی‌ هستند ۳- در اسلاید به صفحات کتاب نیز اشاره شد، تا دانشجویان بتوانند مطالب را به راحتی‌ در کتاب نیز پیدا کنند ۴- سعی‌ شده است برای فهم بیشتر و بهتر از یکسری شکل‌ها که در کتاب نیستند نیز صرفاً جهت بهتر شدن یادگیری دانشجویان استفاده شود: اسلاید ۱۳-۲۱-۲۲-۲۴-۲۵

3 کارگزار حل مساله 1- در این فصل یک کارگزار مبتنی‌ بر هدف به نام کارگزار حل مساله معرفی‌ می‌کنیم. این نوع کارگزارها با پیدا کردن رشته هایی از اقدامات به حالت‌های . مطلوب منجر میشوند، تصمیم میگیرند چه عملی‌ انجام دهند. 2-در این فصل به بررسی الگوریتم‌های نا آگاه برای یافتن جواب می‌پردازیم. به این دلیل به این الگوریتم‌ها نا آگاه میگوییم چون این الگوریتم‌ها دربارهٔ مساله هیچ اطلاع‌ای به جز تعریف آن ندارند یک عامل حل مساله باید ۴ مرحله را برای حل مساله انجام دهد: ۱- تدوین هدف، ۲-تدوین مساله ۳-جستجو ۴-اجرا توضیحات در صفحهٔ ۷۱-۷۳ کتاب آمده است

4 کارگزار حل مساله ۱- تدوین هدف = وضعیت‌های مطلوب نهایی کدامند. ۲-تدوین مساله = چه اقدامات و وضعیت هایی برای رسیدن به هدف موجود است ۳-جستجو = در این مرحله عامل تصمیم می‌گیرد که چه رشته اعمالی میتواند وی را از حالت شروع به حالت هدف برساند، مسلما این رشته اعمال از بین یک مجموعه اعمال ممکن انتخاب میشوند، خروجی این مرحله یک راه حل است ۴-اجرا = راه حلی‌ که از مرحلهٔ قبل به دست آماده است اجرا میشود محیطی‌ که کارگزار حل مساله دارای چه خصوصیاتی است؟ (صفحهٔ ۷۴ کتاب) ایستا = در حالی‌ که کارگزار در حال بررسی محیط است، محیط تغییر نمیکند. رویت پذیری= فرض بر این است که محیط رویت پذیر است. گسسته =برشماری اقدامات مختلف در محیط گسسته صورت می‌گیرد (تعداد محدودی حالت متمایز داریم). قطعی (معین) = بر اساس وضعیت فعلی‌ و اقدامی که کارگزار انجام میدهد، وضعیت بعدی محیط به طور کامل تعیین میشود

5 شکل ۳-۲ صفحهٔ ۷۶ ۴ مرحله عامل حل مساله  برای شکل فوق اگر صورت مساله رفتن از آراد به بخارست باشد چیست؟

6 کارگزار حل مساله (آراد - بخارست)
اجرا = کم هزینه‌ترین مسیر که از مرحلهٔ جستجو به دست آمد را اجرا کن

7 مسائل خوش تعریف صفحهٔ ۷۴ -76 در هوش مصنوعی‌ دیدگاه بر این اساس است که هر مساله به صورت فضای حالت دیده شود. که این فضا شامل یک سری نقطه هست که تمام فضا را تشکیل میدهند. به این نقطه‌ها اصطلاحا  حالت گفته میشود.برای حل یک مساله باید فضای حالت آن را ابتدا تعریف کنیم 1 2 بدیهی‌ است که از حالت اولیه نمیتوان به حالتهای دیگر پرید، فقط میتوان به حالت‌های پیرامون رفت. این کار از طریق تابع جانشین انجام میشود تابع جانشین همان تابع پسین است که در کتاب از این نام نیز استفاده شده است

8 مسائل خوش تعریف صفحهٔ ۷۴ -76 3 4 اصولاً در هوش مصنوعی‌ فضای حالت توصیف میشود، ترسیم نمی‌شود چون خیلی‌ بزرگ است. فضای حالت را نیز نداریم، تازه بزرگی‌ فضای حالت را نیز معمولا تخمین می‌زنیم

9 مسائل نمونه صفحهٔ ۷۷-۸۰ مساله دنیای جاروبرقی‌

10 مسائل نمونه صفحهٔ ۷۷-۸۰

11 مسائل نمونه صفحهٔ ۷۷-۸۰ پازل هشت تایی

12 مسائل نمونه صفحهٔ ۷۷-۸۰

13 ۳ روش برای تشخیص میزان سختی مساله؟ (بحث کمکی)
۳ روش برای تشخیص میزان سختی مساله؟  (بحث کمکی) ۱- تخمین فضای حالت: برای مساله پازل هشت تایی حدود !۹ است، دقیقتر بگوییم ۲/!۹ که این نیز تخمین است. ۲- فاکتور انشعاب: متوسط درجه خروجی هر نود؛ برای مساله پازل هشت تایی این بین ۲ تا ۴ است ۳- گراف بودن یا درخت بودن فضای حالت: وجود گراف (حلقه) هم انسان هم ماشین را به دردسر می‌اندازد پازل هشت تایی گراف است، چون ممکن است حالت‌های تکراری تولید شوند

14 مسائل نمونه صفحهٔ ۷۷-۸۰ مساله ۸ وزیر ۹۲ جواب دارد که ۱۲ تای آن یکتا است

15 مسائل نمونه صفحهٔ ۷۷-۸۰ 648 در مساله ۸ وزیر حالت نهایی مهم است بنابرین هزینهٔ مسیر اهمیت ندارد

16 مسائل نمونه صفحهٔ ۷۷-۸۰ در مساله ۸ وزیر حالت نهایی مهم است بنابرین هزینهٔ مسیر اهمیت ندارد

17 جستجوی درختی Tree Search
اکنون که مشخص شد فضای حالت میتواند گراف یا درخت باشد، ۲ روش جستجو را عنوان می‌کنیم، روش جستجو مبتنی‌ بر درخت و روش جستجو مبتنی‌ بر گراف. روش‌های جستجو بر خلاف فضای حالت ترسیم و تولید میشوند. اکثر فضای حالت‌هایی‌ که ما با آنها سر و کار داریم گراف هستند. مهم نیست که فضای حالت گراف است، چون می‌توان آن را بصورت درختی جستجو کرد. 1 1 2 3 2 3 1 3 4 1 2 4 4

18 صفحه ۸۲-۸۶ جستجوی راه حل بعد از تدوین مساله (فرموله کردن مساله) باید آن را حل کنیم، این کار از طریق جستجو در فضای حالت انجام میشود. این کتاب فنون جستجو را بر روی درخت یا گراف حل مساله توضیح میدهد. در فصل ۳ فقط الگوریتم‌های نا آگاه مورد بررسی قرار میگیرند و در فصل ۴ الگوریتم‌های آگاه را بیان می‌کنیم درخت جستجوی نا تمام برای یافتن مسیری از آراد به بخارست در شکل آماده است شکل ۳-۶ نود هایی که تولید میشوند با دایره سفید مشخص شدند- نود هایی که گسترش یافتند با دایره تیر مشخص شدند - نود هایی که کاندیدای تولید هستند ولی‌ هنوز تولید نشدند با دایر نقطه چین مانند مشخص شدند

19 صفحه ۸۲-۸۶ جستجوی راه حل

20 صفحه ۸۲-۸۶ جستجوی راه حل در صفحه ۸۴ معادل واژگان انگلیسی آمده است

21 شکل ۳-۸ صفحه ۸۵ - خصوصیات یک نود در درخت
= right

22 اندازگیری کارایی حل مساله
خروجی یک الگوریتم حل مساله یآا شکست هست یآا یک راه حل: کارایی یک الگوریتم جستجو را از ۴ زاویه بررسی می‌کنیم کامل بودن: اگر جواب وجود دارد، الگوریتم تضمین می‌کند که جواب را پیدا کند؟ بهینگی‌: اگر چند جواب وجود دارد، بهترین جواب را پیدا می‌کند؟ پیچیدگی‌ زمانی‌: چقدر طول میکشد که جواب پیدا شود؟ پیچیدگی‌ فضایی یا مکانی:برای آنجام جستجو چقدر حافظه نیازداریم؟

23 اندازگیری کارایی حل مساله

24 جستجوی اول سطح - صفحه ۸۷-۸۹ به شکل ۳-۱۰ در کتاب رجوع شود تا مفاهیم تولید و گسترش نود روشن شود

25 جستجوی اول سطح - صفحه ۸۷-۸۹ از نقطه نظر عملی، برای پیاده‌سازی این الگوریتم از صف استفاده می‌شود. بدین ترتیب که در ابتدا ریشه در صف قرار می‌گیرد. سپس هر دفعه عنصر ابتدای صف بیرون کشیده شده، همسایگانش بررسی شده و هر همسایه‌ای که تا به حال دیده نشده باشد به انتهای صف اضافه می‌شود. (Example; slide 18 - next class)

26 بر حسب چاپ سوم پیمایش اول سطح
پیمایش اول سطح بر روی گراف‌های فاقد وزن صورت می‌گیرد A ABCD B C اگر فرض کنیم نودD هدف باشد پیمایش به شکلABCD تمام میشود اول آزمون هدف را انجام میدهیم، اگر هدف بود که الگوریتم متوقف میشود، راه حل بازگردانده میشود، اگر هدف نبود در صف درج می‌کنیم C D

27 بر حسب چاپ دوم پیمایش اول سطح
A D E F G B C اگر فرض کنیم نودD هدف باشد پیمایش به شکلABCD تمام میشود هنگامی که نود را می‌خواهیم از سر صف خارج کنیم قبلش آزمون هدف را انجام میدهیم C D E

28 پیمایش اول سطح(وقوع شکست)
هنگامی که هیچ هدفی‌ موجود نباشد با خالی‌ شدن صف (تمام شدن نود‌های درخت جستجو) مسلما هیچ هدفی‌ یافت نمی‌شود و طبیعتا هیچ مسیری به عنوان مسیر بهینه برگردانده نمی‌شود. در این حالت اصطلاحا میگوئیم شکست خردیم. A D E F G G E F G B C F G C D E

29 جستجوی اول سطح - صفحه ۸۷-۸۹ (مشروط) اگر فاکتور انشعاب متناهی باشد
در مورد پیچیدگی‌ زمانی‌ و مکانی بر حسب اینکه آزمون هدف کی‌ انجام شود ۲ نوع پیچیدگی‌ خواهیم داشت a 1 1 b c 4 1 d e اگر اول عرض اعمال شود جواب بهینه بدست نمیاید

30 بحث در مورد پیچیدگی‌ اگر آزمون هدف هنگام ورود به صف صورت گیرد اون عمق اضافه هیچ وقت تولید نمی‌شود بنابرین پیچیدگی‌ زمانی‌ و مکانی این بار O (b d)میشود اگر آزمون هدف هنگام خروج نود از صف صورت گیرد پیچیدگی‌ زمانی‌ ( تعداد نود‌های شمرده شده توسط الگوریتم اول سطح) در بدترین شرایط O (bd+1) میشود. از آنجایی که صف که حافظه من می‌باشد نیز حد اکثر با نودO (bd+1) پر میشود همین پیچیدگی‌ را دارد =O(bd)

31 پیچیدگی‌ زمانی‌ و مکانی بد الگوریتم اول سطح
پیچیدگی‌‌های قید شده در این جدول بر حسب زمانی‌ است که آزمون هدف بر روی نود زمان خارج کردن نود از صف انجام میشودO (bd+1) به شکل ۳-۱۱ کتاب برای پیچیدگی‌ زمانی‌ و فضایی رجوع شود

32 جستجو هزینهٔ یکنواخت --- صفحه  ۸۹ - ۹۰ Uniform cost search (Cheapest – first search)
3- Tree may have dead end nodes. dead end nodes are nodes that their neighbors have already explored, exploration means generating children. Dead end nodes will be explored once. 1- Explored nodes: SABG, Cheapest route can be found from the tree: SBG 2- The tree has 6 distinguished nodes; Two g’s are two different nodes since they have two different g(n)s

33 جستجو هزینهٔ یکنواخت --- صفحه  ۸۹ - ۹۰ Uniform cost search (Cheapest – first Search)
جستجو هزینهٔ یکنواخت همان رفتار الگوریتم دیجکسترا را دارد: کوتاه‌ترین مسیر را همواره انتخاب کن کامل: بله (مشروط) ۱- فاکتور انشعاب متناهی باشد ۲- هزینه هر مسیر از ɛ بزرگتر باشد: این تضمین می‌کند که با جلو رفتن در مسیر همواره هزینه بیشتر میشود بهینه: همواره بهینه است چون دارد در هر شرایطی کوچکترین مسیر از لحاظ هزینه را به دست میاورد

34 بحث کمکی‌ اگر وزن‌های منفی‌ داشته باشیم الگوریتم جستجو با هزینه یکنواخت بهینه نیست S 1 15 5 A B C 5 10 -7 G SA=1 SB=5 SC=15 SB=5 SAG=11 SC=15 SBG=10 SAGB=11 SC=15

35 جستجو هزینهٔ یکنواخت --- صفحه ۸۹ - ۹۰
جستجو هزینهٔ یکنواخت صفحه  ۸۹ - ۹۰ پیچیدگی‌ زمانی‌ و فضایی آن به راحتی‌ از طریقb وd بدست نمی‌آید 1+ نکته: از آنجایی که ما در جستجوی با هزینه یکنواخت قبل از خروج نود از سر صف آزمون هدف را انجام میدهیم بنابرین ۱ در توان جمع شد اگر هزینه همهٔ اعمال یکسان باشد این الگوریتم با الگوریتم اول سطح یکی‌ است

36 بحث چرا با اینکه الگوریتم جستجو با هزینه یکنواخت همواره کوتاه‌ترین مسیر را پیدا می‌کند جز الگوریتم‌های هوشمند نیست؟ S 5 1 B A 1 1 C 0.5 1 0.25 2 1 D E F H G

37 جستجو اول عمق صفحه ۹۰ -۹۲ این روش جستجو به حافظه کمی‌ نیاز دارد. فقط یک مسیر از ریشه تا گره برگی همراه به گره‌های هم نیا (همزاد) گسترش نیافتهٔ تمامی‌ گره‌های آن مسیر را نگهداری می‌کند. اگر گرهی گسترش پیدا کرد به محض اینکه  تمامی‌ فرزندانش کاملا کاوش شدند، میتواند از حفظ حذف شود : شکل ۳-۱۲

38 DFS در هر لحظه عنصر بالای پشته را پیمایش می‌کنیم
یک نود زمانی‌ از حافظه حذف میشود که یا فرزندی نداشته باشد، یا همه فرزندانش حذف شده باشند ABDHIEJKCFLM A B C D E C H I E C I E C E C J K C K C C F G L M G M G

39 Time Vs. Space اگر در بد‌ترین شرایط جواب در منتها علیه سمت راست درخت باشد تعداد نود هایی که میشماریم: 1 + b + b1+ b2 + … + bm = O (bm) همچنین حد اکثر فضای مصرفی توسط پشته بصورت زیر است: 1 + b + b + … +b = O (b.m) m

40 جستجو اول عمق صفحه ۹۰ -۹۲ نوع خاصی‌ از جستجو اول عمق به نام جستجو پس گرد وجود دارد که حفظ کمتری مصرف می‌کند. در جستجو پسگرد پس گرد به جای تمام پسین‌ها در هر لحظه فقط یک پسین تولید میشود O (bm)  O (m). از لحاظ پیچیدگی‌ زمانی‌، الگوریتم اول عمق در بدترین حالت نیاز دارد که همهٔ نود‌ها را بشمرد پس پیچیدگی زمانی‌ آن استO (b ^m) جستجو اول عمق نه کامل است نه بهینه، کامل نیست چون اگر زیر درخت سمت چپ دارای عمق نامحدود بود و جواب در در زیر درخت سمت راست بود، هرگز به جواب نمیرسیدیم. بهینه نیست چون فرض کنید در شکل ۳-۱۲ اگر گره‌هایj و c جواب‌ها باشند آنگاه اول عمق زودتر j را پیدا می‌کند

41 جستجو اول عمق صفحه ۹۰ -۹۲ جهت پیمایش گراف به صورت اول عمق از ساختار داده پشته استفاده می‌کنیم (اسلاید ۸) پیاده سازی پیمایش اول عمق هم بصورت بازگشتی هم به صورت غیر بازگشتی انجام پذیر است.

42 جستجو عمق محدود - صفحه ۹۲ مشکل درختان نامحدود را می‌توان با در نظر گرفتن یک محدودیت عمق از پیش تعیین شده مانندL تا حدی کاهش داد باید Lرا زیرکانه انتخاب کنیم، اگر d>L آنگاه به جواب نمیرسیم پس این روش به طور کلی کامل نیست. فرض کنیم که d<Lولی‌ باز ممکن است ماند روش اول عمق جواب بهینه را به ما ندهد پس بهینه هم نیست حدس زدن پیچیدگی‌ زمانی‌ و مکانی جستجو عمق محدود کار سختی نیست، چون حالت خاصی‌ از عمق اول است پس پیچیدگی‌ مکانی آن O(bl)و پیچیدگی‌ زمانی‌ آن O(b ^l) است

43 جستجو عمق محدود - صفحه ۹۲

44 جستجو عمیق شونده تکراری صفحه ۹۳ -۹۴
محدودیت عمق بصورت تدریجی‌ اضافه میشود تا زمانی‌ که یک هدف پیدا شود. این روش مزیت جستجو اول عمق و اول سطح را دارد. مزایای جستجو اول سطح چه بود؟ هم کامل بود هم بهینه. این روش نیز اگر فاکتور انشعاب نامتناهی باشد کامل است از طرفی‌ اگر هزینهٔ مراحل یکسان باشند بهینه هم هست. مزایای جستجو اول عمق؟ حافظه کمی‌ مصرف میکرد. این روش نیز چنین است. پس پیچیدگی‌ زمانیO (b^d)‌ و پیچیدگی‌ مکانیO(bd) است.

45 جستجو عمیق شونده تکراری صفحه ۹۳ -۹۴

46 جستجو عمیق شونده تکراری صفحه ۹۳ -۹۴

47 جستجو عمیق شونده تکراری صفحه ۹۳ -۹۴
به نظر می‌رسد این روش اصراف کرانه باشد زیرا حالت‌ها چندین بر تولید میشوند اما در حقیقت خیلی‌ هم پر هزینه نیست چون بیشترین نود‌ها در عمقd هستند که تنها یک بر تولید میشوند در  کتاب و در صفحه ۹۵ IDSباBFS مقایسه شده است، مطالعه کنید

48 جستجو ۲ طرفه - صفحه ۹۵ این جستجو به این شکل پیاده سازی میشود که یکی‌ یا هر دوی جستجوها قبل از گسترش هر گره بررسی می‌کند که آیا آن گره در لبهٔ درخت جستجو دیگر قرار دارد یا نه، اگر چنین بود یک راه حل پیدا شده است

49 جستجو ۲ طرفه - صفحه ۹۵ ۲ پیش فرض داریم: ۱ اینکه هدف یا اهداف از قبل مشخص باشد، ۲ اینکه تابعPred را بتوان تصحیح کرد. در مورد مشخص بودن اهداف در بازی پازل ۸ تایی و شطرنج بحث کنید در بهترین حالت اگر برای ۲ طرف از اول سطح استفاده کنیم، جستجو ۲ طرفه هم کامل است هم بهینه اگر یکی‌ اول سطح باشد، دیگری اول عمق، حتما کامل است اما بهینگی‌ زیر سوال میرود اگر هر ۲ اول سطح باشد نه کامل است نه بهینه

50 جستجو ۲ طرفه - صفحه ۹۵ معایب: 1- در هر طرف چه جستجویی باید انجام داد؟ نیاز به تصمیم گیری است 2-وقتی‌ هدف ضمنی‌ است، مشخص کردن آن مشکل است و الگوریتم ۲ طرفه به مشکل بر می‌خورد = مثلا در معمای پازل ۸ می‌توان از دو طرفه استفاده کرد اما در شطرنج ۲ طرفه مفید نیست 3-همیشه برگشت از هدف به عقب کار اسانی‌ نیست

51 جستجو ۲ طرفه - صفحه ۹۵ پیچیدگی‌ زمانی‌ و مکانی آن O(b^d/2) است ,برای هر پیمایش اول سطح داریم:1+b+…+bd/2 برای هر ۲ پیمایش داریم:bd/2 + bd/2 = 2 bd/2 = O (bd/2) گفتیم در روش ۲ طرفه انتخاب اینکه کدام الگوریتم جستجو به کار رود بستگی به شرایط دارد، اگر اول سطح به کار رود و فاکتور انشعاب متناهی باشد این روش کامل است و در صورتی‌ که هزینه مسیر‌ها یکسان باشد بهینه نیز است

52 مثال اگر در گراف زیر جستجو در عمق را از راس C شروع کنیم، کدام گره‌ها به ترتیب از چپ به راست رویت میشوند؟ (فرض کنید فرزندان یک گره بر اساس ترتیب حروف الفبا انتخاب میشوند) مهندسی‌ کامپیوتر ۸۱ باید ترتیب ملاقات گره‌ها را به صورت عمقی تشکیل دهیم CABDIEFH : A B C F حال اگر سوال پیمایش اول عرض را می‌خواست باید ترتیب پیمایش گره‌ها را به صورت اول عرض تشکیل میدادیم D E H I

53 مثال گراف زیر را با استفاده از روش جستجو با هزینه یکنواخت پیمایش کنید.
A 1 3 جستجو با هزینه یکنواخت همان الگوریتم دیجکسترا است پس کوتاه‌ترین مسیر را انتخاب کنABCFG: 4 2 2 B C D 5 2 4 2 1 E G F


Download ppt "فصل ۳ - حل مساله از طریق جستجو"

Similar presentations


Ads by Google