زمان کنونی: ۰۷ دى ۱۴۰۳, ۰۵:۲۴ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

فراتر از جستجوی کلاسیک(الگوریتم های جستجوی محلی)

ارسال:
  

Saman پرسیده:

فراتر از جستجوی کلاسیک(الگوریتم های جستجوی محلی)

سلام

به زودی خلاصه ای از تمام این الگوریتم ها از روی منبع اصلی در اینجا درج میشود تا تمام تردید ها و شبهات راجع به این موضوع در این بخش بر طرف شود.
ارسال های بی ربط به این موضوع حذف خواهند شد

منبع مورد بررسی در این بخش هوش مصنوعی نوشته ی راسل -پیترنوروینگ

ویراست سوم-۲۰۱۰ چاپ سوم، به ترجمه ی جعفر نژاد.
فیلم های دانشگاه صنعتی شریف
=========

پیشنهاد شما برای منابع بهتر و کمک با توجه به سایر منابع باعث می شود تردید ها کاسته شود و پاسخ گویی به تست های این بخش با تردید کمتری باشد.(پس اگر منبع بهتری سراغ دارید اطلاع دهید)

شرح کلیت و هدف جستجوی محلی :

این الگوریتم ها به جای اینکه مسیر هایی از حالت شروع را به طور سیستماتیک و منظم بررسی کنند یک یا چند حالت فعلی را ارزیابی و اصلاح میکنند.

نکته : در این الگوریتم ها حالت جواب مهم است و هزینه ی دستیابی به حالت جواب اهمیتی ندارد


نکته : خانواده ی الگوریتم های جستجوی محلی شامل روش هایی است که از فیزیک آماری (simulated annealing) و زیست شناسی تکاملی (الگوریتم های ژنتیک) سرچشمه می گیرند.

۱-۱- الگوریتم های جستجوی محلی و مساله های بهینه سازی
شرح کلیت :
در این الگوریتم ها مانند مساله ی ۸ وزیر مسیر رسیدن به هدف مهم نیست و تنها پیکربندی نهایی مهم است.

نکته : وقتی مسیر رسیدن به هدف مهم نباشد یعنی گره ای در حافظه ذخیره نمی شود.
الگوریتم های جستجوی محلی با استفاده از گره ی فعلی عمل می کنند و فقط به همسایه های ان گره منتقل میشوند و مسیر هایی که در جستجو رد یابی می شوند نگهداری نخواهند شد.
دو امتیاز عمده الگوریتم های جستجوی محلی :
۱)از حافظه اندکی استفاده میکنند(معمولا مقدار ثابت)
۲)در فضاهای حالت بزرگ و نامتناهی جواب های منطقی را پیدا میکنند.
====
نکته ها :
۱)الگوریتم های جستجوی محلی علاوه بر یافتن هدف برای حل مسائل بهینه سازی نیز مفید هستند
۲)در این مساله ها هدف یافتن بهترین حالت بر اساس تابع هدف است

سوال : منظور از مورد بالا چیست ؟
به عنوان مثال در طبیعت یک تابع هدف وجود دارد که تکامل داروینی را میتوان تلاش برای بهینه سازی آن دانست و نمیتوان این روش ها را قائل به یک وضعیت سیستماتیک دانست.
پ ن :(در کتاب فرگشت و ژنتیک هم با اجازه تون من خوندم قبلا که نقش تکامل داروین این هستش که بر اساس یک سری خصوصیات چطور میتوانیم نسل بعدی را برتر کنیم و این حالت کلی نیست بلکه بر اساس انتخاب بهترین ویژگی ها از هر دو نفر برای تولید نسل بعدی هستش که موضوع قسمت ژنتیک می باشد)
پس وقتی هدف تنها بهینه سازی هست آزمون هدف و هزینه ی مسیر برای این مسائل وجود ندارد.
====
۱-۱-۱ ) جستجوی تپه نوردی
۱-۱-۲) simulated annealing
۱-۱-۳) جستجوی پرتو محلی
۱-۱-۴)الگوریتم های ژنتیک


در ادامه به توضیح هر بخش خواهیم پرداخت :

۱-۱-۱ ) جستجوی تپه نوردی ااا (hill-climbing)
الگوریتم جستجوی تپه نوردی(نسخه ی تیز ترین صعود(یا شیب)) حلقه ای است که در جهت افزایش مقدار حرکت می کند(به طرف بالای تپه)-وقتی به قله ای رسید که هیچ همسایه ای از آن بلندتر نیست خاتمه می یابد. این الگوریتم درخت جستجو را نگهداری نمیکند لذا ساختمان داده ی گره ی فعلی فقط باید حالت و مقدار تابع هدف را نگهداری کند.تپه نوردی به همسایه های حالت فعلی نگاه میکند.مثل تلاش برای یافتن قله ی کوه اورست در مه گرفتگی غلیظ در حالی که دچار فراموشی هستید.
نکته :
۱) مه گرفتگی غلیظ منظور ناتوانی در یافتن ماکزیمم سراسری به صورت قطعی است.(بعد خواهید دید که یکی از دلایل توقف این الگوریتم ماکزیمم محلی است)
۲)دچار فراموشی بودن منظور عدم استفاده از حافظه یا همان استفاده ی اندک است(فلسفه ی جستجوی محلی نیز همین است)

نکته: الگوریتم های جستجوی محلی معمولا از فرموله کردن حالت کامل استفاده میکنند(۸ وزیر)
نکته : تپه نوردی گاهی جستجوی محلی حریصانه نام دارد زیرا بدون این که قبلا فکر کند به کجا برود حالت های همسایه ی خوبی را انتخاب می کند
سوال : دلایل توقف الگوریتم تپه نوردی؟ سه مورد دارد :

۱)ماکزیمم محلی(local maxima)
قله ای که از هر یک از همسایه هایش بلند تر است اما از ماکزیمم سراسری کوتاه تر است.الگوریتم های تپه نوردی که به مجاورت ماکزیمم محلی می رسند به طرف بالا و به سمت قله حرکت میکنند ولی از آن پس متوقف می شوند و جایی نمی روند.

۲)برآمدگی ها(ridges) : موجب "دنباله ای از ماکزیمم های محلی" می شوند که عبور از آن ها برای الگوریتم های حریصانه دشوار است

۳)فلات(plateaux)
ناحیه ی همواری از دور نمای فضای حالت است فلات میتواند یک ماکزیمم محلی هموار باشد که هیچ خروجی به سمت بالا وجود نداردیا یک شانه باشد که از طریق آن می توان پیشروی کرد"جستجوی تپه نوردی ممکن است نتواند راه خروج را در فلات پیدا کند و مفقود شود
نکته : شانه معمولا همان فلات است که در نهایت به حالتی می رسد که می تواند در آن صعود داشته باشیم
شکل ۱-۴ صفحه ی ۱۴۸ از منبع مورد بررسی


نتیجه این که : در هر یک از موارد بالا الگوریتم به نقطه ای میرسد که پیشروی از ان ممکن نیست

نکته : اگر در الگوریتم تپه نوردی مقدار بعدی گره ها(مابعد ها ، پسین ها) با مقدار فعلی برابر باشد متوقف میشود.(یعنی حتی اگر ماکزیمم سراسری بعد از ان قرار داشته باشد توان پیدا کردنش را ندارد) سوال؟ آیا ادامه ی حرکت ایده ی خوبی نیست؟
بله هست، و ما در مسیر های فرعی اجازه ی حرکت میدهیم، دقت کنید که مسیر های فرعی را خود ما انتخاب میکنیم به این امید که فلات ها یک شانه باشند.(مسیر های فرعی را خود ما انتخاب میکنیم) ایده ی اجازه ی حرکت در صورت یافتن نقاط مساوی موجب میشود در ۹۴% موارد به موفقیت برسیم.
{فلسفه ی توسعه و اختراع شکل های مختلف الگوریتم تپه نوردی همین موضوع است}
شامل :

۱)تپه نوردی اتفاقی(تصادفی) : به طور تصادفی حرکت هایی را به سمت بالای تپه انتخاب میکند(به انتخاب مسیر های فرعی فکر کنید) احتمال انتخاب می تواند بر اساس شیب دار بودن حرکت به سمت بالای تپه تغییر کند. (**) این روش نسبت به روش تیز ترین صعود(یا شیب){که نسخه ای از همان تپه نوردی عادی است} کندتر همگرا میشود ولی در بعضی از دور نماهای حالت جواب های بهتری را میابد.
نکته : کندتر همگرا :منظور سرعت کمتر در نزدیک شدن به هدف است

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

نکته ی مهم(**): الگوریتم های تپه نوردی که تا کنون شرح داده شدند"کامل" نیستند چون در ماکزیمم های محلی متوقف می شوند و با وجود هدف موفق به یافتن آن نمی شوند


۳)تپه نوردی با شروع مجدد تصادفی : دنباله ای از جستجو های تپه نوردی را از حالت های شروعی که به طور تصادفی تولید شده اند اجرا میکند تا هدفی را پیدا کند.به عبارت دیگر کار این الگوریتم اداره ی مجموعه ای از جستجو های تپه نوردی است که از حالت های شروع آغاز می کنند.
نکته مهم(**) : این الگوریتم با احتمال نزدیک به یک "کامل" است،زیرا سر انجام حالت هدف را به عنوان حالت شروع تولید میکند
نکته :این روش برای مساله ی ۸ وزیر کارامد تر از سایر روش ها است
=====
نکاتی که باید بدانید : (**)

۱)موفقیت تپه نوردی به شکل "دور نمای فضای حالت" بستگی دارد. اگر تعداد ماکزیمم های محلی و فلات ها کم باشد "تپه نوردی با شروع مجدد تصادفی" سریعا راه حل خوبی میابد(خب طبیعی هستش چون که با احتمال نزدیک به ۱ کامل بود)

۲) در مسائل NP که تعدا ماکزیمم های محلی "توانی" است پس از چند شروع مجدد تصادفی میتوان "ماکزیمم محلی" خوبی را پیدا کرد.

پایان بخش اول
نقل قول این ارسال در یک پاسخ

۳
ارسال:
  

Saman پاسخ داده:

RE: فراتر از جستجوی کلاسیک(الگوریتم های جستجوی محلی)

۱-۱-۲) simulated annealing

فلسفه ی شروع و چرایی استفاده از simulated annealing این است که این الگوریتم به نسبت جستجوی تپه نوردی علاوه بر کارآمدی "کامل" نیز هست.

در این جا بسیار دقت شود که منظور از جستجوی تپه نوردی تمام حالت های آن شامل(رفتن به مسیر های فرعی و تپه نوردی اتفاقی(تصادفی) و روش تپه نوردی اولین انتخاب و تپه نوردی با شروع مجدد تصادفی)نیز هست. همان طور که ما در نسخه ی تپه نوردی با شروع مجدد تصادفی از این الگوریتم ها مشاهده کردیم "کامل" بودن با احتمال نزدیک به یک امکان پذیر میشد.پس نگاه simulated annealing بیشتر بر کارآمدی هست. چگونه ؟

در ابتدا باید بگوییم که simulated annealing به جای تپه نوردی ،فرود آمدرن از شیب(گرادیان نزولی) را استفاده می کند.
نکته :در یکی از سوالات کنکور سراسری به مقایسه ی (گرادیان نزولی) و تپه نوردی پرداخته می شود به شکل زیر :

الگوریتم گرادیان سریع تر از الگوریتم تپه نوردی است
بررسی کامل :
اولا تنها جایی که الگوریتم گرادیان در سراسر این کتاب در آن معنا پیدا میکند فقط simulated annealing می باشد.در تپه نوردی(نسخه ی اصلی){چرا که در گزینه نسخه ی خاصی را ذکر نکرده چه بسا در سال های اتی ذکر کند}،تپه نوردی تنها به یک نقطه بعد از نقطه ی فعلی می رود در حالی که گرادیان چون در simulated annealing هست با حرکت های تصادفی انتخاب بعدی را انجام می دهد و سرعت بالاتری دارد. به طور دقیق تر به شرح این موضوع می پردازیم :

دقت کنید که گرادیان را می توان به منزله ی توپ پینگ پنگی روی یک سطح ناصاف در نظر گرفت که ما با تکان دادن سطح قصد یافتن هدف را داریم!!!!

یعنی چه ؟!

تفاوت قل خوردن توپ برای رفتم به ماکزیمم محلی و تکان دادن سطح برای یافتن ماکزیمم محلی چیست؟!!

قل خوردن توپ مسیر پیوسته ای را طی میکند و تکان دادن سطح مسیر را تصادفی میکند!!!قل خوردن توپ شبیه تپه نوردی است و تکان دادن سطح simulated annealing است!.
حال اگر ما سطح زیرین را موجودیتی بگیریم که در صورت بالا رفتن دما می تواند سطح را تکان دهد حالت های زیر متصور است :
simulated annealing با تکان دادن شدید شروع میکند(دمای زیاد) و به تدریج شدت تکان دادن را کاهش می دهد(دمای پایین تر)
داخلی ترین حلقه ی الگوریتم simulated annealing مانند تپه نوردی است اما به جای انتخاب بهترین حرکت ، یک حرکت تصادفی را انتخاب می کند.اگر این حرکت وضعیت را بهبود بخشید همواره قابل قبول است(مثلا به سمت کامل بودن دارد حرکت میکند و کامل بودن مفهوم ۱ بودن دارد).وگرنه الگوریتم حرکتی را با احتمال کمتر از ۱ می پذیرد.

۱)میزان احتمال بر حسب بد بودن به صورت نمایی کاهش می یابد
یعنی چه ؟؟ یعنی هر چه حرکت های بعدی احتمالشان از ۱ کمتر شود با سرعت بیشتری از هدف دور می شویم.
وقتی دمای T پایین می آید ، این احتمال نیز کــــــــــاهش می یابد.
۲)وقتی دما بالا است حرکت های بد با احتمال بیشتری رخ می دهند.و با کاهش دادن T حالات بد بیشتر نمی شوند.

نتیجه(۱) و (۲) : می توان ثابت کرد که اگر زمان بندی ، T را به تدریج کاهش دهد ، الگوریتم یک بهینه ی سراسری را با احتمال نزدیک به ۱ می یابد.
======
نکته) اگر خاطرتان باشد سطح زیر توپ را موجودیتی در نظر گرفتیم که می توانیم دمای آن را تغییر دهیدم.
۱)اگر دما را خیلی بالا ببریم simulated annealing تبدیل به نسخه ی تصادفی می شود
۲)اگر دما را خیلی پایین بیاوریم simulated annealing به الگوریتم تپه نوردی تبدیل می شود.
طنز . یک خرگوش رو روی یه سطح خیلی داغ یا خیلی سرد تصور کنیدBig Grin
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

Saman پاسخ داده:

RE: فراتر از جستجوی کلاسیک(الگوریتم های جستجوی محلی)

پایان کل این بخش.

خدا رو شکر با بررسی سایر سرفصل ها شامل
۱-۱-۳) جستجوی پرتو محلی
۱-۱-۴)الگوریتم های ژنتیک

تناقضی در توضیحات کتب کنکوری و منابع اصلی مورد بررسی پیدا نشد.

اگر فرض را بر این بگذاریم که کتاب مورد استفاده ی شما پارسه باشد با توضیحات تکمیلی ارائه شده این بخش از این کتاب را کامل و دقیق تر کرده ایم.
و ادامه را میتوانید از روی این کتاب یا سایر کتب کنکوری بخوانید.
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  مبحث جستجوهای محلی Elham_tm ۷ ۴,۵۳۷ ۱۷ اسفند ۱۴۰۰ ۰۵:۴۳ ب.ظ
آخرین ارسال: KB2000
  دو سوال در مورد درخت BST(درخت جستجوی دودویی) امیدوار ۳ ۵,۶۵۶ ۱۰ دى ۱۳۹۹ ۱۲:۰۴ ق.ظ
آخرین ارسال: marzi.pnh
  زمان جستجوی درخت fateme.sm ۰ ۱,۷۹۸ ۰۶ دى ۱۳۹۹ ۱۰:۴۱ ب.ظ
آخرین ارسال: fateme.sm
  در جستجوی اساتید امنیت wskf ۰ ۲,۱۴۳ ۱۸ فروردین ۱۳۹۹ ۰۸:۴۶ ب.ظ
آخرین ارسال: wskf
  راهنمایی در مورد محلی امن برای زندگی نزدیک چهارراه ولیعصر kadoos ۹ ۸,۱۰۹ ۱۴ اسفند ۱۳۹۸ ۱۱:۰۰ ب.ظ
آخرین ارسال: ehsan0000
  افزایش واگرایی الگوریتم های مبتنی بر جمعیت moslem73421 ۲ ۳,۳۵۱ ۰۵ شهریور ۱۳۹۸ ۱۰:۵۳ ب.ظ
آخرین ارسال: cpt.mazi
  دانلود آموزش تصویری کلاس درس تحلیل و طراحی الگوریتم های پیشرفته دانشگاه فردوسی jazana ۱۳ ۱۴,۴۰۳ ۱۰ خرداد ۱۳۹۸ ۰۵:۴۲ ب.ظ
آخرین ارسال: Valipourh20
Question تفاوت تعداد مقایسه های مورد نیاز در الگوریتم های متفاوت porseshgar ۰ ۲,۱۸۸ ۱۵ بهمن ۱۳۹۷ ۱۲:۳۳ ب.ظ
آخرین ارسال: porseshgar
  دوران در درخت جستجوی دودویی tarane.68 ۵ ۶,۴۱۲ ۱۷ مهر ۱۳۹۷ ۰۱:۴۰ ب.ظ
آخرین ارسال: fsadat7
  الگوریتم های تکاملی maryame ۵ ۴,۶۹۰ ۰۷ مرداد ۱۳۹۷ ۰۶:۴۹ ب.ظ
آخرین ارسال: خانه سبز

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close