480 likes | 687 Views
به نام خالق یکتا. هوش مصنوعی ( Artificial Intelligence ). مدرس: محبوبه یعقوبی. فصل3. حل مسئله با جستجو. فهرست. عاملهای حل مسئله مسئله اندازه گيری کارايي حل مسئله جستجوی ناآگاهانه اجتناب از حالتهای تکراری جستجو با اطلاعات ناقص. عاملهاي حل مسئله.
E N D
به نام خالق یکتا هوش مصنوعی (Artificial Intelligence) مدرس:محبوبه یعقوبی
فصل3 حل مسئله با جستجو
فهرست • عاملهای حل مسئله • مسئله • اندازه گيری کارايي حل مسئله • جستجوی ناآگاهانه • اجتناب از حالتهای تکراری • جستجو با اطلاعات ناقص
عاملهاي حل مسئله يک نوع عامل هدفگرا، عامل حل مسئله ناميده ميشود. عاملهاي حل مسئله توسط يافتن ترتيب عمليات تصميم ميگيرند که چه انجام دهند تا آنها را به حالتهاي مطلوب سوق دهد.
عاملهای حل مسئله • چهار گام اساسي برای حل مسائل • فرموله کردن هدف: وضعيتهای مطلوب نهايي کدامند؟ • فرموله کردن مسئله: چه فعاليتها و وضعيتهايي برای رسيدن به هدف موجود است؟ • جستجو: انتخاب بهترين دنباله از فعاليتهايي که منجر به حالاتی با مقدار شناخته شده ميشود. • اجرا: وقتی دنباله فعاليت مطلوب پيدا شد، فعاليتهای پيشنهادی آن ميتواند اجرا شود.
حل مسئله با جستجو مثال: نقشه رومانی
مثال: نقشه رومانی • صورت مسأله: رفتن از آراد به بخارست • فرموله کردن هدف:رسيدن به بخارست • فرموله کردن مسئله: • وضعيتها: شهرهای مختلف • فعاليتها: حرکت بين شهرها • جستجو: دنباله ای از شهرها مثل:آراد، سيبيو، فاگارس، بخارست • اين جستجو با توجه به کم هزينه ترين مسير انتخاب ميشود
انواع مسائل • چهار نوع اساسي از مسائل وجود دارند: • مسائل تک حالته (Single-state) • مسائل چند حالته (Multiple-state) • مسائل احتمالي (Contingency) • مسائلاکتشافي (Exploration)
مدلهاي مختلف براي مسئله جاروبرقي: • - مدل تک حالته: • حسگرهاي عامل به آن اطلاعات کافي ميدهند تا وضعيت دقيق مشخص شود. (دنيا قابل دسترسي است). عامل ميتواند محاسبه کند که کدام وضعيت پس از هر دنباله از عمليات قرار خواهد گرفت.
مدلهاي مختلف براي مسئله جاروبرقي: - مدل چند حالته: عامل تمام اثرهاي عملياتش را ميداند اما دسترسي به حالت دنيا را محدود کرده است.زماني که دنيا تماماً قابل دسترسي نيست عامل بايد در مورد مجموعه حالتهايي که ممکن است به آن برسد استدلال کند.
مدلهاي مختلف براي مسئله جاروبرقي: - مدل احتمالي: با اين مدل حل مسئله، حسگرهايي را در طول فاز اجرايي نياز داريم. عامل اکنون بايد تمام درخت عملياتي را بر خلاف دنباله عملياتي منفرد، محاسبه کند. که به طور کلي هر شاخه درخت، با يک امکان احتمالي که از آن ناشي ميشود، بررسي ميشود.
مدلهاي مختلف براي مسئله جاروبرقي: • مدل اکتشافي: • عاملي که هيچ اطلاعاتي در مورد اثرات عملياتش ندارد. • در اين حالت، عامل بايد تجربه کند و به تدريج کشف کند که چه عملياتي بايد انجام شود و چه وضعيتهايي وجود دارند. اين روش يک نوع جستجو است. • اگر عامل نجات يابد، «نقشهاي» از محيط را ياد ميگيرد که ميتواند مسائل بعدي را حل کند.
دانستني های لازم برای تعريف هر مسئله: • حالت اوليه: حالتی که عامل از آن شروع ميکند. • در مثال رومانی: شهر آراد n(Arad) • تابع جانشين: توصيفي از فعاليتهای ممکن که برای عامل مهيا است. • در مثال رومانی:Zerind,Sibui,Timisoara} S(Arad)={ • فضای حالت: مجموعه ای از حالتها که از حالت اوليه ميتوان به آنها رسيد. • در مثال رومانی: کليهشهرها که با شروع از آراد ميتوان به آنها رسيد • تابع جانشين + حالت اوليه = فضای حالت
دانستني های لازم برای تعريف هر مسئله: • آزمون هدف: تعيين ميکند که آيا حالت خاصی، حالت هدف است يا خير • هدف صريح:در مثال رومانی، رسيدن به بخارست • هدف انتزاعی:در مثال شطرنج، رسيدن به حالت کيش و مات • مسير: دنباله ای از حالتها که دنباله ای از فعاليتها را به هم متصل ميکند. • در مثال رومانی:Arad, Sibiu, Fagarasيک مسير است • هزينه مسير:برای هر مسير يک هزينه عددی در نظر ميگيرد. • در مثال رومانی:طول مسير بين شهرها بر حسب کيلومتر راه حل مسئله مسيری از حالت اوليه به حالت هدف است راه حل بهينه کمترين هزينه مسير را دارد
مثال: دنيای جارو برقي حالتها:دو مکان که هر يک ممکن است کثيف يا تميز باشند.لذا 8 = 2^2* 2حالت در اين جهان وجود دارد حالت اوليه:هر حالتی ميتواند به عنوان حالت اوليه طراحی شود تابع جانشين:حالتهای معتبر از سه عمليات: راست، چپ، مکش آزمون هدف:تميزی تمام مربعها هزينه مسير:تعداد مراحل در مسير
مثال: دنيای جارو برقي حالتها: دو مکان که هر يک ممکن است کثيف يا تميز باشند.لذا 8 = 2^2* 2حالت در اين جهان وجود دارد حالت اوليه: هر حالتی ميتواند به عنوان حالت اوليه طراحی شود تابع جانشين: حالتهای معتبر از سه عمليات: راست، چپ، مکش آزمون هدف: تميزی تمام مربعها هزينه مسير: تعداد مراحل در مسير
مثال: معمای8 حالتها:مکان هر هشت خانه شماره دار و خانه خالی در يکي از 9 خانه حالت اوليه:هر حالتي را ميتوان به عنوان حالت اوليه در نظر گرفت تابع جانشين:حالتهای معتبر از چهار عمل، انتقال خانه خالی به چپ، راست، بالا يا پايين آزمون هدف:بررسی ميکند که حالتی که اعداد به ترتيب چيده شده اند(طبق شکل روبرو) رخ داده يا نه هزينه مسير:برابر با تعداد مراحل در مسير
مثال: معمای8 حالتها: مکان هر هشت خانه شماره دار و خانه خالی در يکي از 9 خانه حالت اوليه: هر حالتي را ميتوان به عنوان حالت اوليه در نظر گرفت تابع جانشين: حالتهای معتبر از چهار عمل، انتقال خانه خالی به چپ، راست، بالا يا پايين آزمون هدف: بررسی ميکند که حالتی که اعداد به ترتيب چيده شده اند(طبق شکل روبرو) رخ داده يا نه هزينه مسير: برابر با تعداد مراحل در مسير
مثال: مسئله 8 وزير فرمول بندی افزايشي حالتها:هر ترتيبي از 0 تا 8 وزير در صفحه، يک حالت است حالت اوليه:هيچ وزيری در صفحه نيست تابع جانشين:وزيری را به خانه خالی اضافه ميکند آزمون هدف:8وزير در صفحه وجود دارند و هيچ کدام به يکديگر گارد نميگيرند در اين فرمول بندی بايد 14^10*3 دنباله ممکن بررسی ميشود
مثال: مسئله 8 وزير روش1: فرمول بندی افزايشي حالتها: هر ترتيبي از 0 تا 8 وزير در صفحه، يک حالت است حالت اوليه: هيچ وزيری در صفحه نيست تابع جانشين: وزيری را به خانه خالی اضافه ميکند آزمون هدف: 8وزير در صفحه وجود دارند و هيچ کدام به يکديگر گارد نميگيرند
مثال: مسئله 8 وزير روش2: فرمول بندی حالت کامل حالتها: چيدمان n وزير (0≤ n≤ 8)، بطوريکه در هر ستون از n ستون سمت چپ، يک وزير قرار گيرد و هيچ دو وزيری بهم گارد نگيرند حالت اوليه:با 8 وزير در صفحه شروع ميشود تابع جانشين:وزيری را در سمت چپ ترين ستون خالي قرار ميدهد، بطوری که هيچ وزيری آن را گارد ندهد آزمون هدف:8وزير در صفحه وجود دارند و هيچ کدام به يکديگر گارد نميگيرند اين فرمول بندی فضای حالت را از 14^10*3 به 2057 کاهش ميدهد
مثال: مسئله 8 وزير روش2: فرمول بندی حالت کامل حالتها: چيدمان n وزير (0≤ n≤ 8)، بطوريکه در هر ستون از n ستون سمت چپ، يک وزير قرار گيرد و هيچ دو وزيری بهم گارد نگيرند حالت اوليه: با 8 وزير در صفحه شروع ميشود تابع جانشين: وزيری را در سمت چپ ترين ستون خالي قرار ميدهد، بطوری که هيچ وزيری آن را گارد ندهد آزمون هدف: 8وزير در صفحه وجود دارند و هيچ کدام به يکديگر گارد نميگيرند
اندازه گيری کارايي حل مسئله • کامل بودن:آيا الگوريتم تضمين ميکند که در صورت وجود راه حل، آن را بيابد؟ • بهينگي:آيا اين راهبرد، راه حل بهينه ای را ارائه ميکند. • پيچيدگي زمانی:چقدر طول ميکشد تا راه حل را پيدا کند؟ تعداد گره های توليد شده در اثنای جستجو • پيچيدگی فضا:برای جستجو چقدر حافظه نياز دارد؟ حداکثر تعداد گره های ذخيره شده در حافظه
اندازه گيری کارايي حل مسئله • کامل بودن:آيا الگوريتم تضمين ميکند که در صورت وجود راه حل، آن را بيابد؟ • بهينگي:آيا اين راهبرد، راه حل بهينه ای را ارائه ميکند. • پيچيدگي زمانی:چقدر طول ميکشد تا راه حل را پيدا کند؟ تعداد گره های توليد شده در اثنای جستجو • پيچيدگی فضا:برای جستجو چقدر حافظه نياز دارد؟ حداکثر تعداد گره های ذخيره شده در حافظه
جستجوی ناآگاهانه • جستجوی ناآگاهانه، اين است که الگوريتم هيچ اطلاعاتی غير از تعريف مسئله در اختيار ندارد • اين الگوريتمها فقط ميتواند جانشينهايي را توليد و هدف را از غير هدف تشخيص دهند • راهبردهايي که تشخيص ميدهد يک حالت غير هدف نسبت به گره غير هدف ديگر، اميد بخش تر است، جست و جوی آگاهانه يا جست و جوی اکتشافي ناميده ميشود. راهبردها • جست و جوی عرضی • جست و جوی عمقی • جست و جوی عميق کننده تکراری • جست و جوی هزينه يکنواخت • جست و جوی عمقی محدود • جست و جوی دو طرفه
A B C D E F G H I J K L M N O P Q جستجوی عرضی
جستجوی عرضی(سطحی) در اين استراتژي که بسيار سيستماتيک است، ابتدا گره ريشه، و سپس تمام گرههاي ديگر گسترش داده ميشوند.به عبارت کليتر، تمام گرههاي عميق d، قبل از گرههاي عميق d+1 گسترش داده ميشوند. مزايا:جستجوي سطحي، کامل و بهينه ميباشد زيرا هزينه مسير، يک تابع کاهشنيابنده از عمق گره است. معايب:مرتبه زماني O(bd) مي باشد که نمايي است. نياز به حافظه زياد.
جستجوی عرضی(سطحی) کامل بودن:بله بهينگی:بله(مشروط) در صورتی بهينه است که هزينه مسير، تابعی غير نزولی از عمق گره باشد.(مثل وقتي که فعاليتها هزينه يکسانی دارند) پيچيدگي زماني: پيچيدگی فضا:
جستجوی هزينه يکنواخت اين جستجو گره n را با کمترين هزينه مسير بسط ميدهد کامل بودن:بله هزينه هر مرحله بزرگتر يا مساوی يک مقدار ثابت و مثبت ε باشد.(هزينه مسير با حرکت در مسير افزايش مي يابد) بهينگی:بله هزينه هر مرحله بزرگتر يا مساوی ε باشد پيچيدگي زماني: پيچيدگی فضا:
A B C D E F G H I J K L M N O P Q جستجوی عمقی 2 6 3 7 4 5
جستجوی عمقی اين استراتژي، يکي از گرهها را در پائينترين سطح درخت بسط ميدهد؛ اما اگر به نتيجه نرسيد، به سراغ گرههايي در سطوح کم عميقتر ميرود. مزايا: اين جستجو، نياز به حافظه نسبتاً کمي فقط براي ذخيره مسير واحدي از ريشه به يک گره برگي، و گرههاي باقيمانده بسط داده نشده دارد. پيچيدگي زماني O(bm) ميباشد. به طوريکه b فاکتور انشعاب فضاي حالت، و m حداکثر عمق درخت باشد.
جستجوی عمقی معايب: اگر مسيري را اشتباه طي کند، هنگام پائين رفتن گير ميکند. جستجوي عمقي نه کامل و نه بهينه است. در درختهاي با عمق نامحدود و بزرگ اين استراتژي کار نميکند.
جستجوی عمقی کامل بودن:خير اگر زير درخت چپ عمق نامحدود داشت و فاقد هر گونه راه حل باشد، جستجو هرگز خاتمه نمي يابد. بهينگی:خير پيچيدگي زماني:O(bm) پيچيدگی فضا:
A B C D E F G H I J K L M N O P Q جستجوی عمقی محدود مسئله درختهای نامحدود ميتواند به وسيله جست و جوی عمقي با عمق محدود L بهبود يابد
جستجوی عمقی محدود کامل بودن:خير اگر L<d و سطحی ترين هدف در خارج از عمق محدود قرار داشته باشد، اين راهبرد کامل نخواهد بود. بهينگی:خير اگر L>d انتخاب شود، اين راهبرد بهينه نخواهد بود. پيچيدگي زماني: پيچيدگی فضا:
جستجوی عمقی محدود اين استراتژي، براي رهايي از دامي که جستجوي عمقي در آن گرفتار ميشد، از يک برش استفاده ميکند. جستجوي عمقي محدود شده کامل است اما بهينه نيست.
A B C D E F G H I J K L M N O P Q جستجوی عميق کننده تکراري
A B C D E F G H I J K L M N O P Q جستجوی عميق کننده تکراري
جستجوی عميق کننده تکراري A B C D E F G H I R S J K L M N O P Q
جستجوی عميق کننده تکراري کامل بودن:بله در صورتی که فاکتور انشعاب محدود باشد بهينگی:بله وقتی که هزينه مسير، تابعی غير نزولی از عمق گره باشد پيچيدگي زماني: پيچيدگی فضا:
جستجوي عميقکننده تکراري: قسمت دشوار جستجوي عمقي محدود شده، انتخاب يک محدودة خوب است. اگر محدودة عمق بهتري را پيدا کنيم، اين محدوده، ما را به سوي جستجوي کاراتري سوق ميدهد. اما براي بيشتر مسائل، محدودة عمقي مناسب را تا زماني که مسئله حل نشده است، نميشناسيم. جستجوي عميقکنندة تکراري استراتژي است که نظريه انتخاب بهترين محدودة عمقي، توسط امتحان تمام محدودة مسيرهاي ممکن را يادآوري ميکند.
مزايا: ترکيبي از مزاياي جستجوي سطحي و عمقي را دارد. اين جستجو مانند جستجوي سطحي کامل و بهينه است، اما فقط مزيت درخواست حافظه اندک را از جستجوي عمقي دارد. مرتبه بسط حالات مشابه جستجوي سطحي است، به جز اينکه بعضي حالات چند بار بسط داده ميشوند.
در جستجوي عميقکننده تکراري، گرههاي سطوح پائيني يک بار بسط داده ميشوند، آنهايي که يک سطح بالاتر قرار دارند دوبار بسط داده ميشوند و اليآخر تا به ريشه درخت جستجو برسد، که d+1 بار بسط داده ميشوند. بنابراين مجموع دفعات بسط در اين جستجو عبارتست از: (d+1)1+(d)b+(d-1)b2+…+3bd-2+2bd-1+1bd پيچيدگي زماني اين جستجو هنوز O(bd) است، و پيچيدگي فضا O(bd) است. در حالت کلي، عميقکننده تکراري، روش جستجوي برتري است؛ زماني که فضاي جستجوي بزرگي وجود دارد و عمق راه حل نيز مجهول است.
جستجوی دو طرفه انجام دو جست و جوی همزمان، يکي از حالت اوليه به هدف و ديگری از هدف به حالت اوليه تا زمانی که دو جست و جو به هم برسند
جستجوی دو طرفه کامل بودن:بله اگر هر دو جستجو، عرضی باشند و هزينه تمام مراحل يکسان باشد بهينگی:بله اگر هر دو جستجو، عرضی باشند و هزينه تمام مراحل يکسان باشد پيچيدگي زماني: پيچيدگی فضا:
اجتناب از حالتهای تکراری وجود حالتهای تکراری در يک مسئله قابل حل، ميتواند آن را به مسئله غير قابل حل تبديل کند
مقايسه استراتژيهاي جستجو: ارزيابي استراتژيهاي جستجو. b فاکتور انشعاب، dعمقپاسخ،m ماکزيمم عمق درخت جستجو،l محدوديت عمق است.