الگوریتم قورباغه جهنده (Shuffled Frog Leaping Algorithm - SFLA)، در ریاضیات (Mathematics)
انواع روش های بهینه سازی (Optimization Methods) را در آموزش زیر شرح دادیم :
الگوریتم قورباغه جهنده (Shuffled Frog Leaping Algorithm - SFLA) :
📌 معرفی
الگوریتم قورباغة جهنده (Shuffled Frog Leaping Algorithm - SFLA) توسط یوسف و همکاران در سال ۲۰۰۶ معرفی شد. این الگوریتم ترکیبی از دو رویکرد است: استراتژی های مبتنی بر ممتیک (Memetic) و رفتار جستجوی غذای قورباغه ها. SFLA برای مسائل بهینه سازی ترکیبیاتی و پیوسته کاربرد دارد.
🐸 ایده اصلی
در SFLA، جمعیت قورباغه ها به چندین زیرجمعیت (Memeplexes) تقسیم می شود. هر زیرجمعیت به طور مستقل به جستجوی محلی می پردازد و سپس قورباغه ها بین زیرجمعیت ها در هم آمیخته (Shuffled) می شوند تا تبادل اطلاعات صورت گیرد. این کار ترکیبی از جستجوی محلی عمیق و جستجوی سراسری مؤثر را فراهم می کند.
🔧 مراحل الگوریتم
ایجاد جمعیت اولیه قورباغه ها به صورت تصادفی.
مرتب سازی قورباغه ها بر اساس برازندگی و تقسیم به m زیرجمعیت (هر زیرجمعیت شامل n قورباغه).
برای هر زیرجمعیت (Memeplex):
برای تعداد تکرار معین:
تعیین بهترین قورباغه (
\[ X_b \]) و بدترین قورباغه (
\[ X_w \]) در زیرجمعیت.
به روزرسانی موقعیت بدترین قورباغه به سمت بهترین قورباغه:
\[ D = rand() \times (X_b - X_w) \] \[ X_w' = X_w + D \]اگر
\[ X_w' \]بهتر از
\[ X_w \]بود، جایگزین کن. در غیر این صورت، به روزرسانی به سمت بهترین قورباغه سراسری (
\[ X_g \]) را امتحان کن.
اگر باز هم بهبود نداشت، یک قورباغه جدید تصادفی تولید کن.
ترکیب همه زیرجمعیت ها (Shuffling) و مرتب سازی مجدد.
تکرار تا شرط توقف.