پیاده سازی الگوریتم جست وجوی تپه نوردی hill-climbing با پایتونیکشنبه 22, جولای 2018
دانلود پروژه آماده “پیاده سازی الگوریتم جست وجوی تپه نوردی hill-climbing با پایتون”
تیم همیارپروژه ، پروژه ای را با موضوع جستجوی تپه نوردی hill-climbimg را با زبان پایتون پیاده سازی کرده و جهت دانلود شما عزیزان به همراه توضیح پروژه و کدها در سایت قرار داده است.
در زیر توضیحی از این الگوریتم قرار داده شده و بعد از آن نحوه خرید و دانلود پروژه نیز توضیح داده شده است.
الگوریتم جست وجوی تپه نوردی hill-climbimg
الگوریتم جست وجوی تپه نوردی از ابتدایی ترین تکنیک جست وجوی محلی است.
در هر مرحله گره فعلی با بهترین همسایه جایگزین میشود. اگر “تخمین هزینه ابتکاری h” استفاده شود، همسایه ای با کمترین h انتخاب میگردد.
الگوریتم جست وجوی تپه نوردی، حلقه ای است که در جهت افزایش مقدار حرکت میکند (به طرف بالای تپه). وقتی به “قله ای” رسید که هیچ همسایه ای از آن بلندتر نیست، خاتمه می یابد.
در این الگوریتم، درخت جست وجو را نگهداری نمیکند، لذا گره داده فعلی فقط باید حالت و مقدار تابع هدف را نگهداری کند. تپه نوردی به همسایه های حالت فعلی نگاه میکند. مثل تلاش برای یافتن قله کوه اورست در مه گرفتگی غلیط، در حالیکه دچار فراموشی هستید.
الگوریتم جست وجوی محلی معمولا از فرموله کردن حالت کامل استفاده میکنند.
تپه نوردی گاهی جست وجوی محلی حریصانه نام دارد، زیرا بدون اینکه قبلا فکر کند به کجا برود، حالت همسایه خوبی را انتخاب میکند. تپه نوردی معمولا به سرعت به سمت جواب پیش می رود زیرا به راحتی میتواند حالت بد را بهبود بخشد.
متاسفانه تپه نوردی به دلایل زیر متوقف میشود:
ماکزیمم محلی (local maxima). قله ای است که بلندتر از هر یک از همسایه هایش می باشد، اما از ماکزیمم سراسری کوتاهتر است. الگوریتم های تپه نوردی که به مجاورت ماکزیمم محلی میرسند، به طرف بالا و به سمت قله حرکت میکنند، ولی از آن پس متوقف میشوند و به جایی نمیرود.
- برآمدگی ها (ridges). برآمدگی ها منجر به دنباله ای از ماکزیمم های محلی می شوند که عبور از آن برای الگوریتم های حریصانه دشوار است.
- فلات(Plateaux). فلات ناحیه همواری از دورنمای فضای حالت است. فلات میتواند یک ماکزیمم محلی هموار باشد که هیچ خروجی به سمت بالا وجود ندارد، یا یک شانه باشد که از طریق آن میتوان پیشروی کرد. جست وجوی تپه نوردی ممکن است نتواند راه خروج را در فلات پیدا کند و مفقود شود.
در هر یک از این موارد، الگوریتم به نقطه ای میرسد که پیشروی از آن ممکن نیست. هر وقت الگوریتم به یک “ماکزیمم محلی هموار” میرسد که شانه نیست، یک حلقه تکرار بی نهایت بوجود خواهد آمد. یک راه حل متداول، محدود کردن تعداد حرکت های فرعی متداول است.
شکلهای گوناگونی از تپه نوردی اختراع شده اند. تپه نوردی اتفاقی، بطور تصادفی حرکت هایی را به سمت بالای تپه انتخاب میکند.
روش تپه نوردی اولین انتخاب، تپه نوردی اتفاقی را به این صورت پیاده سازی میکند که پسین ها را بطور تصادفی تولید میکند تا اینکه یکی از آنها بهتر از حالت فعلی باشد. اگر یک حالت دارای پسین های زیادی باشد این راهبرد مناسب است.
الگوریتم های جست وجوی تپه نوردی که تاکنون شرح دادیم، کامل نیستند، چون در ماکزیمم های محلی متوقف میشوند، با وجود هدف، موفق به یافتن آن نمیشوند.
تپه نوردی با شروع مجدد از این ضرب المثل پیروی میکند “اگر موفق نشدید، دوباره و دوباره سعی کنید.” این الگوریتم دنباله ای از جست وجوهای تپه نوردی را از “حالت های شروعی” که بطور تصادفی تولید شدند، اجرا میکنند تا هدفی را پیدا کنند. با احتمال نزدیک به ۱، این الگوریتم کاملاست، زیرا سرانجام حالت هدف را به عنوان حالت شروع تولید میکند.
موفقیت تپه نوردی به شکل “دورنمای فضای حالت” بستگی دارد: اگر تعداد ماکزیمم های محلی و فلات ها کم باشد، “تپه نوردی با شروع مجدد تصادفی” سریعا راه حل خوبی را می یابد.
همیارپروژه پیاده سازی این پروژه را به همراه گزارش و توضیحات با زبان پایتون انجام داده و جهت دانلود شما عزیزان با قیمتی ارزان در سایت قرار داده است
جهت خرید این پروژه با پرداخت هزینه از طریق لینک خرید اقدام نمایید.
دیدگاهتان را بنویسید