
در این پست کد الگوریتم بهینه سازی قورباغه در متلب (کد الگوریتم SFLA در متلب) قرار داده شده است. الگوریتم بهینه سازی جهش قورباغه یا Shuffled Frog Leaping Algorithm (به اختصار SFLA)، یکی از الگوریتم های بهینه سازی فرا ابتکاری است که از رفتار اجتماعی قورباغه ها در طبیعت الهام گرفته شده است، و از نظر دسته بندی، در میان الگوریتم های رفتاری یا الگوریتم های ممتیک (Memetic Algorithms) قرار می گیرد.
از نام های دیگر الگوریتم بهینه سازی جهش قورباغه، می توان به الگوریتم قورباغه و الگوریتم جهش قورباغه و الگوریتم SFLA اشاره نمود. این الگوریتم در ابتدا توسط Eusuff و Lansey در سال 2003 مطرح شد هر چند مقالات زیادی پس از برای بهبود این الگوریتم ارائه شده است.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
الگوریتم SFLA چیست؟
الگوریتم SFLA یک الگوریتم مبتنی بر ممتیک متأهيوريستیک است. الگوریتم ممتیک، یک الگوریتم مبتنی بر جمعیت است که برای مسائل بهینه سازی پیچیده و بزرگ مورداستفاده قرار می گیرد. ایده اصلی این الگوریتم، به کار گیری یک روش جستجوی محلی در درون ساختار الگوریتم ژنتیک برای بهبود کار آبی فرآیند تشدید هنگام جستجو است.
الگوریتم ممتیک در ابتدا مجموع جوابهای اولیه را رمزگذاری می کند، آنگاه ابن الگوریتم میزان مطلوبیت هر یک از جوابها را بر اساس یک تابع برازندگی را محاسبه کرده و جواب های جدیدی را تولید می کند.
الگوریتم SFLA از نحوه جستجوی غذای گروه قورباغه ها الهام می گیرد. این الگوریتم برای جستجوی محلی میان زیر گروه قورباغه ها از روش نموممتیک استفاده می کند. الگوريتم جهش ترکیبی قورباغه از استراتژی ترکیب استفاده می کند و امکان مبادله پیام در جستجوی محلی را فراهم می سازد. این الگوریتم مزایای الگوریتم نموممتیک و بهینه سازی گروه ذرات را ترکیب می کند. در الگوریتم جهش ترکیبی قورباغه نه تنها در جستجوی محلی بلکه در جستجوی سراسری نیز پیامها مبادله می شوند.
بدین ترتیب جستجوی محلی و سراسری به خوبی در این الگوریتم ترکیب می شوند. الگوریتم جهش ترکیبی قورباغه قابلیت بالایی برای جستجوی سراسری دارد و پیاده سازی آن آسان است. الگوريتم جهش ترکیبی قورباغه می تواند بسیاری از مسائل غیر خطی، غیرقابل تشخیص و چند حالته را حل کند.
کد الگوریتم بهینه سازی قورباغه در متلب
سورس کد الگوریتم قورباغه در متلب شامل توابعی است که اسکریپت main در واقع کد اصلی برنامه می باشد و بقیه فراخوانی ها از آنجا انجام می شود. همچنین این برنامه داری 7 تابع تست می باشد که در زیر مشاهده می کنید.
- تابع SPHERE
- تابع ACKLEY
- تابع SUM SQUARES
- تابع ROSENBROCK
- تابع SUM OF DIFFERENT POWERS
- تابع ZAKHAROV
- تابع Rastrigin
توابع تست برای ارزیابی الگوریتم های بهینه سازی بکار می روند که در این سایت برای توضیحات بیشتر در مورد توابع تست الگوریتم های بهینه سازی مقاله ای آماده کردیم. توابع زیادی برای تست عملکرد الگوریتم های بهینه سازی وجود دارد که در اینجا ما به این 7 تابع اکتفا کرده ایم و همچنین لازم به ذکر است که برای اجرای الگوریتم بهینه سازی روی مسئله مورد نظر تابع هزینه یا Cost Function آن تغییر خواهد کرد و بقیه الگوریتم دست نخورده باقی می ماند بنابراین برای اجرای الگوریتم SFLA در متلب برای بهینه سازی مسئله خودتان تابع هزینه خود را بر اساس پارامترهای مسئله خود تعریف کنید.
قسمتی از سورس کد الگوریتم SFLA در متلب
%% SFLA Main Loop for it = 1:MaxIt fla_params.BestSol = BestSol; % Initialize Memeplexes Array Memeplex = cell(nMemeplex, 1); % Form Memeplexes and Run FLA for j = 1:nMemeplex % Memeplex Formation Memeplex{j} = pop(I(j,:)); % Run FLA Memeplex{j} = RunFLA(Memeplex{j}, fla_params); % Insert Updated Memeplex into Population pop(I(j,:)) = Memeplex{j}; end % Sort Population pop = SortPopulation(pop); % Update Best Solution Ever Found BestSol = pop(1); % Store Best Cost Ever Found BestCosts(it) = BestSol.Cost; % Show Iteration Information disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCosts(it))]); end
برای دانلود سورس کامل محصول را خریداری فرمایید.
تصویر خروجی محصول
درباره محصول
سورس کد الگوریتم بهینه سازی قورباغه در متلب در محیط Matlab 2017b نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت محصول توسط پی استور تضمین می شود و محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.
مباحث مرتبط با الگوریتم SFLA
مباحث دیگر درمورد الگوریتم های بهینه سازی
تاریخ انتشار: | 15 بهمن 1398 |
---|---|
تاریخ بروزرسانی: | 25 مرداد 1399 |
حجم فایل: | 3.8 کیلوبایت |
فرمت فایل | m. |
هماهنگی با: | متلب 2017 و بالاتر |
سفارش تدریس: | توضیحات تکمیلی |
تاکنون 306 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 15 بهمن 1398 |
---|---|
تاریخ بروزرسانی: | 25 مرداد 1399 |
حجم فایل: | 3.8 کیلوبایت |
فرمت فایل | m. |
هماهنگی با: | متلب 2017 و بالاتر |
سفارش تدریس: | توضیحات تکمیلی |
2 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
بهاری
سلام خسته نباشید
شما یک محصول در سایت قرار دادید به نام الگوریتم جهش قورباغه و با ۷ تابع تست کردید
میخواستم یک سوال بپرسم که این الگوریتم هر کدام از این تابع به طور مثال اسفیر را در کد متلبش چند بار فراخوانی (آنالیز)میکند؟(یک بار به تعداد اعضای جمعیت ؟)چون ممپلکس داره و در یکجا ران میکنه fla
?
مدیریت و پشتیبانی
سلام و وقت بخیر
در هر iteration بسته به شرط هایی که در تابع RunFLA برای فراخوانی CostFun وجود داره فراخوانی ها انجام میشه و در هر بار اجرای کامل، چون تصادف دخیل هست ممکن هست تعداد فراخوانی ها متفاوت باشه. به عنوان نمونه در اجرای اول با در نظر گرفتن MaxIt = 100 , nPopMemeplex = 10 , nMemeplex = 5 تعداد فراخونی های تابع تست فقط در داخل تکرار اصلی برابر 8913 است در حالی که در اجرای دوم این عدد برابر 9015 هست و در اجرای سوم 8865 می باشد.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.