
در این پست به سورس کد الگوریتم وال WOA بهبود یافته یا همان الگوریتم نهنگ بهبود یافته در متلب می پردازیم. این الگوریتم توسط Amarjeet Singh در سال 2019 در مقاله Laplacian whale optimization algorithm در ژورنال International Journal of System Assurance Engineering and Management پایگاه علمی Springer ارائه شده است. در ادامه به معرفی نحوه کار کرد این الگوریتم بهینه سازی پرداخته می شود. برای دانلود مقاله اصلی روی این لینک (+) کلیک کنید.
برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
قبل از توضیح الگوریتم بهبود یافته نهنگ که با عنوان Laplacian whale optimization algorithm معرفی شده است ابتدا یک توضیح مختصری از الگوریتم وال اصلی را ارائه می دهیم سپس به سراغ الگوریتم بهبود یافته وال خواهیم رفت. الگوریتم وال یا نهنگ whale optimization algorithm یا به اختصار WOA در سال 2016 توسط سید علی میرجلیلی ارائه شده که با استفاده از رفتار نهنگ های گوژپشت در شکار به تولید و حل مسئله می پردازد.
الگوریتم بهینه سازی وال ها یا نهنگ ها (WOA اصلی)
یکی از بزرگترین پستانداران دنیا وال یا نهنک است از بین 7 نهنگ دنیا معروف ترین آنها، نهنگ گوژپشت یا نهنگ کوهان دار است. یک وال گوژپشت بالغ تقریباً به اندازه یک اتوبوس مدرسه است. شکار مورد علاقه وال ها، کریل و گروه های ماهی کوچک است. جالب ترین نکته در مورد وال های گوژپشت روش خاص شکار آنها می باشد. این رفتار کاوش گرانه به نام روش تغذیه حباب تور (Bubble-net) شناخته می شود.
وال های گوژپشت ترجیح می دهند تا دسته ای از کریل ها و یا ماهی های کوچک را در نزدیک سطح آب شکار کنند. این نکته مشاهده شده است که این کاوش و شکار، با ایجاد حباب های شاخصی در امتداد یک دایره یا مسیر هایی به انجام می رسد. الگوریتم WOA یکی از الگوریتم های بهینه سازی الهام گرفته شده از طبیعت و مبتنی بر جمعیت است که در زمینه های مختلف می توان از آن استفاده کرد.
مراحل الگوریتم
الگوریتم وال WOA در سه مرحله یا سه فاز انجام می شود که بصورت زیر است:
- شکار محاصره ای
- فاز بهره برداری : روش حمله به حباب تور
- مرحله اکتشاف: جستجوی شکار
فرصت استثنایی
فرصت استثنایی برای خرید پک آموزشی الگوریتم WOA را از دست ندهید اگر می خواهید الگوریتم وال را بصورت کامل یاد بگیرید و با قیمت مقرون به صرفه محصول را خریداری کنید حتماً پیشنهاد ما رو از دست ندهید. برای اطلاعات بیشتر روی لینک زیر کلیک کنید.
پکیج آموزش الگوریتم وال یا نهنگ WOA
الگوریتم بهبود یافته بهینه سازی وال ها LXWOA
در الگوریتم بهبود یافته وال همان مراحل الگوریتم وال اصلی استفاده شده است فقط در هر مرحله از تکرار شروع به یک CrossOver بر روی جواب ها می کند. بدین صورت که در هر مرحله از با انتخاب دو والد یکی بهترین جواب یعنی وال رهبر یا بهترین وال و والد دوم از بصورت تصادفی از بین بقیه وال ها یک کراس اور با تکنیک لاپلاسین انجام می دهد.
پس از تولید دو فرزند جدید این فرزندان را با دو وال دیگر که از لحاظ تابع تناسب یا همان Fitness پایین تر از بقیه هستند جایگزین می کند. یعنی فرزندان جدید یا وال های جوان با وال های پیر جایگزین می شوند.
به بیان دیگر با استفاده از تکنیک Laplace Crossover امکان یک جستجوی سراسری به الگوریتم وال اصلی داده می شود تا جواب های تصادفی دیگر، نه در حول بهترین جواب که در حول جواب های دیگر نیز تولید شود. با این عمل الگوریتم قادر خواهد بود به جواب های دیگری نیز که احتمالاً جواب های بهتری هستند دست یابد. فلوچارت مربوط به این الگوریتم را در زیر مشاهده می کنید قسمت مشخص شده بخشی است که بعنوان بهبود بر روی الگوریتم وال اصلی صورت گرفته است.
کد الگوریتم وال WOA بهبود یافته در متلب
سورس کد الگوریتم WOA بهبود یافته در متلب شامل توابعی است که اسکریپت main در واقع کد اصلی برنامه می باشد و بقیه فراخوانی ها از آنجا انجام می شود. همچنین این برنامه داری 6 تابع است. توابع تست برای این الگوریتم 23 تابع می باشد که از معروف ترین آنها در زیر تعدادی را مشاهده می کنید.
- تابع SPHERE
- تابع ACKLEY
- تابع SUM SQUARES
- تابع ROSENBROCK
- تابع SUM OF DIFFERENT POWERS
- تابع ZAKHAROV
- تابع Rastrigin
توابع تست برای ارزیابی الگوریتم های بهینه سازی بکار می روند که در این سایت برای توضیحات بیشتر در مورد توابع تست الگوریتم های بهینه سازی مقاله ای آماده کردیم. توابع زیادی برای تست عملکرد الگوریتم های بهینه سازی وجود دارد که در اینجا ما به این 7 تابع اکتفا کرده ایم ولی در سورس کد با 23 نوع تابع مختلف (همانند مقاله) ارزیابی شده است.
همچنین لازم به ذکر است که برای اجرای الگوریتم بهینه سازی روی مسئله مورد نظر تابع هزینه یا Cost Function آن تغییر خواهد کرد و بقیه الگوریتم دست نخورده باقی می ماند بنابراین برای اجرای الگوریتم WOAدر متلب برای بهینه سازی مسئله خودتان تابع هزینه خود را بر اساس پارامترهای مسئله خود تعریف کنید.
قسمتی از سورس کد
clc clear close all a={'F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','F11','F12','F13','F14','F15','F16','F17','F18','F19','F20','F21','F22','F23'}; SearchAgents_no=30; % Number of search agents Max_iteration=500; % Maximum numbef of iterations %for F_index = 1 - 23 F_index=1; WOAresult=[]; WOAresult=[]; WOApos=[]; WOAplotdata=[];LXWOAresult=[]; LXWOAresult=[]; LXWOApos=[]; LXWOAplotdata=[]; Function_name=F_index; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper) % Load details of the selected benchmark function [lb,ub,dim,fobj]=Get_Functions_details(Function_name); for run=1:30 % run Positions=initialization(SearchAgents_no,dim,ub,lb); tic [Best_score,Best_pos,WOA_cg_curve]=WOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions); t2=toc; WOAresult(run,1)=Best_score; WOAresult(run,2)=t2; WOApos(run,:)=Best_pos; WOAplotdata(:,run)=WOA_cg_curve; run tic [Best_score,Best_pos,WOA_cg_curve]=LXWOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions); t1=toc; LXWOAresult(run,1)=Best_score; LXWOAresult(run,2)=t1; LXWOApos(run,:)=Best_pos; LXWOAplotdata(:,run)=WOA_cg_curve; end a=sum(WOAplotdata,2)/30; b=sum(LXWOAplotdata,2)/30; semilogy(a,'LineWidth',2) hold on semilogy(b,'LineWidth',2) legend({'WOA','LXWOA'})
برای دانلود سورس کامل محصول را خریداری فرمایید.
تصویر خروجی محصول
درباره سورس کد الگوریتم WOA بهبود یافته
سورس کد الگوریتم WOA بهبود یافته در متلب در محیط Matlab 2014b نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت محصول توسط پی استور تضمین می شود و محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.
مباحث مرتبط در زمینه الگوریتم وال WOA
آموزش الگوریتم های فرا ابتکاری
تاریخ انتشار: | 8 مرداد 1398 |
---|---|
تاریخ بروزرسانی: | 30 مهر 1399 |
حجم فایل: | 6.4 کیلوبایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2014b |
تاکنون 327 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 39,000 تومان
تاریخ انتشار: | 8 مرداد 1398 |
---|---|
تاریخ بروزرسانی: | 30 مهر 1399 |
حجم فایل: | 6.4 کیلوبایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2014b |
2 بازخورد (مشاهده نظرات)
قیمت: 39,000 تومان
علی رضایی
خیلی خوب بود من فیلم آموزش این کد رو هم تهیه کردم.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.