الگوریتم بهینه‌سازی جهش قورباغه — صوتی

Shuffled Frog-Leaping Algorithm
الگوریتم بهینه‌سازی جهش قورباغه — صوتی
00:00
مطالب صرفا بصورت دمو می باشد و فروشی در این سایت انجام نمی شود.

نسخه نوشتاری

یکی از مخاطبین سوالی را مطرح کردند با این مضمون که می‌خواهند با استفاده از الگوریتم قورباغه که آموزش آن در فرادرس موجود است، مساله‌ای را حل کنند که در آن هدف بیشینه کردن «میزان برازش» (Fitness) است. در اغلب آموزش‌هایی که در فرادرس موجود هستند، مانند آموزش‌های الگوریتم‌های بهینه‌سازی و تکاملی گوناگون، مساله کمینه‌سازی حل شده است؛ یعنی یک تابع زیان (Cost Function) وجود داشته که هدف، کم کردن مقدار آن بوده است. اما اگر هدف، حل عکس این مساله باشد، چه می‌شود؟ اگر بخواهیم میزان برازش (میزان برازش) را در واقع بهبود بدهیم و بیشینه کنیم چه راهکاری وجود دارد؟ در واقع اگر مساله «بیشینه‌سازی» (Maximization) باشد، چه می‌شود؟

در چنین مواردی، چند راهکار می‌تواند مورد استفاده قرار بگیرد. یکی از این راهکارها این است که کاربر اصلا کد این مساله را دست نزند؛ یعنی کد الگوریتم همین طور باشد. در آن تابع زیان (Cost Function)، همین تابع میزان برازش ( Fitness Function)، تعریف شود، فقط قرینه میزان برازش (Fitness) به عنوان خروجی بازگردانده شود. زیرا، از نظر ریاضی می‌دانیم که بیشینه کردن تابع (F(x، مانند کمینه کردن منفی (F(x است. بنابراین، می‌توان با ضرب کردن خروجی در یک منفی، خیلی راحت این کار را انجام داد.

یک راه کمی سخت‌تر این است که کد را کمی دستکاری کرد؛ در قسمتی که بهتر و بدتر بودن را بررسی می‌کند، در واقع دو پاسخ با یکدیگر در رقابت هستند. در آنجا پیش از این گفته شده که هر چه کمتر باشد بهتر است؛ اکنون باید گفت هر چه بیشتر باشد بهتر محسوب می‌شود. در حالت خیلی کلی‌تر، آموزشی در فرادرس موجود است با عنوان «پیاده‌سازی الگوریتم‌های فراابتکاری با استفاده از زبان برنامه‌نویسی #C»؛ در آن آموزش نوع مساله تعریف شده که کمینه‌سازی یا بیشنه‌سازی است و بر اساس نوع مساله، بهتر و بدتر تعریف می‌شود.

در واقع، نوع مساله بالاتر (در ابتدای کد #C) – در کد متلب هم این کار را می‌توانیم انجام بدهیم – تعریف می‌شود و مشخص می‌شود که از چه نوعی است؛ بعد، آن پایین مقایسه به یک تابع سپرده می‌شود که این تابع، دو تا پاسخ الف و ب و نوع مساله را می‌گیرد. حالا نوع مساله اگر از نوع کمینه‌سازی باشد الف از ب بهتر است، به شرطی که کمتر از آن باشد. اما پارامتر سوم که نوع مساله است اگر که بیشنه‌سازی باشد، الف از ب اگر بیشتر باشد بهتر است. یعنی مقایسه را باید به داخل یک تابع برد، تا بتوان به این روش این کار را انجام داد که خیلی کلی‌تر هم می‌شود و در واقع فرد خیلی راحت می‌تواند در بالا فقط نوع مساله را تغییر بدهد تا عوض شود (بیشینه‌سازی یا کمینه‌سازی بشود).

حالا این نوع پیاده‌سازی به غیر از زبان #C، با زبان دیگری در فرادرس موجود نیست؛ ولی توصیه می‌شود افراد آن آموزش را مشاهده کنند، زیرا از یک روش خیلی پیشرفته‌تر از برنامه‌نویسی در آن استفاده می‌شود و به هر حال یک تجربه متفاوت است. لزومی هم ندارد آموزش حتما خریداری شود، چون بخش زیادی از درس‌های آن رایگان هستند. به نظر من، این سبک برنامه‌نویسی چیزی است که افراد در پروژه‌های بزرگ به آن احتیاج دارند. به طور خاص، اگر دوستانی که در مقطع دکتری تحصیل می‌کنند، با مسائل بزرگی درگیر هستند و یا سال‌ها است که با متلب کار می‌کنند، یک نیم نگاهی هم به یک زبان برنامه‌نویسی کامپایل شده مانند #C یا جاوا داشته باشند که الگوی آن در همان آموزش داده شده، خیلی می‌تواند خوب باشد.

به هر حال، هدف کلا این بود که راه حلی برای مساله طرح شده بیان شود. این مساله را به سادگی، با قرینه کردن می‌توان انجام داد. روشی که کار بیشتری می‌برد و فقط مسائل بیشینه‌سازی را حل می‌کند، عوض کردن جهت نامساوی است. روش اصولی و درست این کار هم آن است که اساسا این مقایسه به یک تابع سپرده شود که نوع مساله نیز جز ورودی‌های همین تابع باشد.

معرفی دورهپخش رایگان

پادکست شماره یک

3دقیقه

پادکست شماره دو

2دقیقه

پادکست شماره سهپخش رایگان

4دقیقه
دیدگاهتان را با ما درمیان بگذارید
تعداد دیدگاه : 0
امتیاز کلی : 0.0
پیشنهاد شده توسط : 0 کاربر
بر اساس 0 فروش
0
0
0
0
0

هیچ دیدگاهی برای این محصول نوشته نشده است.

لطفا پیش از ارسال نظر، خلاصه قوانین زیر را مطالعه کنید:

فارسی بنویسید و از کیبورد فارسی استفاده کنید. بهتر است از فضای خالی (Space) بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

نظرات خود را براساس تجربه و استفاده‌ی عملی و با دقت به نکات فنی ارسال کنید؛ بدون تعصب به محصول خاص، مزایا و معایب را بازگو کنید و بهتر است از ارسال نظرات چندکلمه‌‌ای خودداری کنید.
اولین کسی باشید که دیدگاهی می نویسد “الگوریتم بهینه‌سازی جهش قورباغه — صوتی”

نشانی ایمیل شما منتشر نخواهد شد.

قیمت

9,600 تومان

امتیازی ثبت نشده است
تعداد دانشجو : 0
مدت دوره: 02:00ساعتتاریخ انتشار: 14 اسفند 1400آخرین بروزرسانی: 14 اسفند 1400تعداد بازدید: 51
قوانین و مزایای استفاده

  • دسترسی به فایل محصول به صورت مادام‌العمر
  • تضمین کیفیت آموزش ها
  • فعال‌سازی آنی لینک دانلود، پس از ثبت سفارش
  • فروش فقط از طریق وب سایت حوزه
  • به صورت رایگان یک یا چند آموزش را دریافت می کنید.
مدرس

قیمت

9,600 تومان