پویا نهفت

پویا نهفت

Poyanahoft

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

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

There are no reviews yet.

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

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Original price was: 12,000 تومان.Current price is: 9,600 تومان.

تعداد
تعداد دانشجو : 19
مدت دوره: 02:00ساعتتاریخ انتشار: 1 اسفند 1398آخرین بروزرسانی: 27 اسفند 1402تعداد بازدید: 2697
مدرس

جواد مرادی

زمان خود را به بهتر کردن خود با مطالعه نوشته های دیگران اختصاص دهید. بنابراین شما به سادگی آنچه را بدست می آورید که دیگران سخت برای آن زحمت کشیده اند.
امتیازی ثبت نشده است