HW2.pdf

‫هو العالم‬
‫هوش مصنوعی‬
‫مدرس ‪ :‬سلیمانی‬
‫تمرین ‪2‬‬
‫دانشکده مهندسی کامپیوتر‬
‫موعد تحویل تمرین تئوری‪ 14 :‬اسفند قبل از کالس درس‬
‫موعد تحویل تمرین عملی‪ 17 :‬اسفند ساعت ‪24‬‬
‫سوال ‪ 15( - 1‬نمره)‬
‫فرض کنید دو دوست در دو شهر متفاوت زندگی می کنند‪ .‬هدف نهایی آن است که در کوتاهترین زمان ممکن این‬
‫دو فرد یکدیگر را مالقات کنند‪ .‬برای این کار در هر مرحله این دو نفر به صورت همزمان می توانند از شهری که در‬
‫آن قرار دارند به شهر همسایه آن شهر عزیمت کنند‪ ،‬با این شرط که اگر یکی از دو دوست زودتر به شهر همسایه‬
‫مورد نظرش رسید‪ ،‬بایستی تا رسیدن دوست خود به شهر همسایه ای که قصد عزیمتش را داشت صبر کند تا مرحله‬
‫بعدی مسافرت آغاز شود‪ .‬مسافت میان دو شهر همسایه ‪ i‬و ‪ j‬را )‪ d(i, j‬بنامید‪.‬‬
‫‪ )a‬این مسأله را به صورت یک مساله جستجو فرموله کنید‪.‬‬
‫‪ )b‬آیا امکان دارد کوتاهترین راه این باشد که مالقات دو دوست در محل اقامت یکی از آنان باشد؟‬
‫‪ )c‬یک تابع هیوریستیک سازگار (‪ )consistent‬برای این مسأله پیشنهاد دهید‪ .‬به توابع هیوریستیک بدیهی نمره‬
‫‪ 0‬تعلق می گیرد‪.‬‬
‫‪ )d‬برای حالتی که سرعت نفر اول برابر با ‪ V1‬و سرعت نفر دوم برابر با ‪ V2‬باشد‪ ،‬تابع هیوریستیک پیشنهادی‬
‫خود را گسترش دهید‪.‬‬
‫سوال ‪ 15( – 2‬نمره)‬
‫‪ n‬مهره دارای شماره را در نظر بگیرید که به ترتیب در سطر پایینی یک مربع ‪ n‬در ‪ n‬چیده شده اند‪ .‬هدف این است‬
‫که این مهره ها را به ترتیب برعکس در باالترین سطر این مربع جای دهیم‪ .‬مثال مهره موجود در ستون‪- i‬ام و سطر‬
‫اول را به مکان ستون‪ n – i +1‬م و سطر‪ n‬م منتقل کنیم‪ .‬در هر مرحله می توانیم هر یک از مهره ها را به باال‪ ،‬پایین‪،‬‬
‫چپ و یا راست منتقل کنیم یا حرکتی انجام ندهیم‪ .‬در صورتی که در یک مرحله یک مهره حرکت نکند‪ ،‬حداکثر‬
‫یکی از همسایگانش می تواند از روی آن بپرد‪ .‬همچنین در هیچ مرحله ای دو مهره روی هم قرار نمی گیرند‪.‬‬
‫‪ )a‬ابعاد فضای حالت را بر حسب ‪ n‬به دست آورید‪.‬‬
‫‪ )b‬فاکتور انشعاب را بر حسب ‪ n‬به دست آورید‪.‬‬
‫‪ )c‬با استفاده از ‪ relax‬کردن مسأله یک هیوریستیک قابل قبول برای مسأله پیشنهاد دهید‪ .‬به توابع هیوریستیک‬
‫بدیهی نمره ‪ 0‬تعلق می گیرد‪.‬‬
‫سوال عملی – (‪ 20+60‬نمره)‬
‫‪:N-Packman‬‬
‫فرض کنید در یک زمین به صورت شکل ‪ 1‬قرار است تعداد ‪ N‬عامل ‪ Pacman‬به طور همزمان شروع به پیمودن‬
‫مسیر موجود و خوردن دانهها کنند‪ .‬هر عامل در هر لحظه میتواند یک خانه به سمت باال‪ ،‬پایین‪ ،‬چپ یا راست‬
‫حرکت کند یا اینکه اصال حرکتی نکند‪ .‬فرض کنید که در هر لحظه هیچ کدام از دو پکمنی حق حضور در یک‬
‫خانه را ندارند (و در واقع چنین کنشی که دو پکمن را به یک خانه ببرد غیرمجاز است)‪ .‬با وارد شدن پکمن به‬
‫خانهای که در آن دانه وجود دارد خودبهخود آن دانه توسط پکمن خورده میشود‪ .‬فرض کنید عاملها از نقاط‬
‫متفاوتی در لحظهی شروع وارد زمین می شوند‪ .‬هدف این است که در کمترین زمان ممکن‪ ،‬تمامی دانههای موجود‬
‫را میل نمایند!‬
‫شکل ‪1‬‬
‫فایل ورودی مسأله باید به صورت یک فایل با نام ‪ input.txt‬باشد‪ .‬این فایل شامل یک ماتریس ‪ 20‬در ‪ 20‬است که‬
‫به ازای هر مانع یک کاراکتر ’|‘‪ ،‬به ازای هر دانه یک کاراکتر ’*‘ و به ازای هر پکمن یک کاراکتر ’‪ ‘1‬نوشته شده‬
‫باشد‪ .‬مکانهای خالی در این فایل با ‪ Space‬نمایش داده خواهد شد‪ .‬نمونه ای از فایل ورودی در مسیر تمرین قرار‬
‫گرفته است‪ .‬تعداد پکمنها برابر با ‪ 4‬در نظر گرفته شده است‪.‬‬
‫‪ )a‬روش جستجوی ‪ BFS‬را برای این مسأله پیادهسازی کنید‪.‬‬
‫‪ )b‬متد جستجوی *‪ A‬را پیاده سازی نمایید‪ .‬همچنین یک هیوریستیک قابل قبول و مناسب برای این مساله‬
‫پیشنهاد کنید‪ .‬به طور پیش فرض تعداد کل دانه ها تقسیم بر ‪ N‬به عنوان تابع هیوریستیک در نظر گرفته شده‬
‫است‪.‬‬
‫‪ )c‬نتایج روش ‪ BFS‬و *‪ A‬را برای مسائل ورودی باال به صورت تعداد گرههای گسترش یافته برای این مسائل‬
‫همراه با طول مسیر بهینه پیدا شده گزارش نمایید‪.‬‬
‫‪ )d‬فرض کنید پکمنها برای حرکت از روی خانههای بدون دانه و دانهدار زمان یکسانی صرف نمیکنند‪ .‬به‬
‫طور دقیقتر پکمنها برای ورود به یک خانه بی دانه یک واحد زمانی نیاز دارند ولی زمانی که می خواهند‬
‫به یک خانه دانهدار وارد میشوند (که منجر به خورده شدن آن دانه هم میشود) زمان ‪ 𝑐 > 1‬نیاز دارند‪ .‬با‬
‫این فرض فرمولبندی مساله جدید را مشخص نمایید‪ .‬تابع هیوریستیک مناسبی پیشنهاد دهید و پس از‬
‫اجرای *‪ ،A‬نتیجه جستجوی *‪ A‬خود را گزارش نمایید (تعداد گرههای گسترش یافته برای مسائل باال به‬
‫همراه طول مسیر بهینه)‪.‬‬
‫‪ )e‬روش ‪ UCS‬را پیادهسازی نمایید و نتایج آن را برای مسالهی بند (‪ )d‬گزارش کنید‪.‬‬
‫در صورت وجود هرگونه ابهام یا سوال به آدرس ‪[email protected]‬‬
‫ایمیل بفرستید‪.‬‬
‫در صورت مشاهده هر گونه تقلب نمره تقلب کننده و گیرنده ‪ 0‬منظور شده و به استاد معرفی می شوند‪.‬‬
‫موفق باشید‬