مقدمه مقاله الگوریتم بهینه سازی وال ها یا نهنگ WOA
الگوریتمهای بهینهسازی فراابتکاری روز به روز در کاربردهای مهندسی محبوبتر میشوند. زیرا اولاً بر روی مفاهیم نسبتاً ساده تکیه دارند و پیادهسازی آنها آسان است. ثانیاً به اطلاعات گرادیان نیاز ندارند. ثالثاً میتواند خطر گیر افتادن در بهینهگی محلی را دور بزنند و در نهایت در طیف گستردهای از مسائل که رشتههای مختلف را پوشش میدهد استفاده میشوند. در ادامه به معرفی نحوه کار کرد الگوریتم بهینه سازی WOA پرداخته میشود. مقاله اصلی این الگوریتم را میتوانید از این لینک (+) دانلود کنید.
الگوریتم بهینه سازی وال ها یا نهنگ ها
یکی از بزرگترین پستانداران دنیا وال یا نهنگ است از بین ۷ نهنگ دنیا معروفترین آنها، نهنگ گوژپشت یا نهنگ کوهان دار است. یک وال گوژپشت بالغ تقریباً به اندازه یک اتوبوس مدرسه است. شکار مورد علاقه والها، کریل و گروههای ماهی کوچک است. جالبترین نکته در مورد والهای گوژپشت روش خاص شکار آنها میباشد. این رفتار کاوش گرانه به نام روش تغذیه حباب تور (Bubble-net) شناخته میشود.
والهای گوژپشت ترجیح میدهند تا دستهای از کریلها و یا ماهیهای کوچک را در نزدیک سطح آب شکار کنند. این نکته مشاهده شده است که این کاوش و شکار، با ایجاد حبابهای شاخصی در امتداد یک دایره یا مسیرهایی به انجام میرسد. الگوریتم WOA یکی از الگوریتم های بهینه سازی الهام گرفته شده از طبیعت و مبتنی بر جمعیت است که در زمینههای مختلف میتوان از آن استفاده کرد.
مراحل الگوریتم
الگوریتم وال WOA در سه مرحله یا سه فاز انجام میشود که بصورت زیر است:
- شکار محاصرهای
- فاز بهره برداری: روش حمله به حباب تور
- مرحله اکتشاف: جستجوی شکار
شکار محاصرهای در الگوریتم وال
والها میتوانند مکان شکار را شناسایی کرده و آنها را محاصره کنند. از آنجایی که مکان طراحی بهینه در فضای جستجو از راه مقایسه شناخته نمیشود، الگوریتم فرض میکند که بهترین راه حل کاندید حال حاضر، شکار هدف بوده و یا نزدیک به حالت مطلوب است. بعد از اینکه بهترین عامل جستجو شناسایی شد، عوامل دیگر جستجو سعی میکنند تا مکان خود را نسبت به بهترین عامل جستجو، به روزرسانی کنند. این رفتار از طریق روابط (۲.۱) و (۲.۲) مقاله بیان شده است:
که در آن t تکرار جاری را نشان میدهد، A و C بردارهای ضرائب ، *X بردار مکان بهترین راه حل بدست آمده در حال حاضر و X بردار مکان است. لازم به ذکر است که در صورت وجود راه حل بهتر، *X در هر تکرار باید بروز شود. بردار A و C به صورت زیر محاسبه میگردد:
که a به صورت خطی از مقدار ۲ تا ۰ و در طی تکرارها کاهش مییابد (در هر دو فاز اکتشاف و استخراج) و r بردار تصادفی در فاصله ۰ تا ۱ است.
فاز بهره برداری در الگوریتم وال – روش حمله به حباب تور
جهت مدلسازی ریاضی رفتار حباب تور والها، ۲ روش طراحی شده است:
- مکانیزم محاصرهی انقباضی: این رفتار به از طریق افزایش مقدار a در رابطه (۲.۳) حاصل میشود. محدوده نوسان A بوسیله a کاهش مییابد. به عبارت دیگر، A مقداری تصادفی در فاصله a تا a- است و a در طی تکرارها، از مقدار ۲ تا ۰ کاهش مییابد. با انتخاب مقادیر تصادفی A در فاصلهی ۱ تا ۱-، میتوان مکان جدید عامل جستجو را در هر کجای بین مکان اصلی عامل و مکان بهترین عامل کنونی، تعریف کرد.
- مکان در حال بروزرسانی مارپیچی: این روش در ابتدا فاصله بین وال قرار گرفته در مختصات *X و Y طعمه موجود در *X و *Y را محاسبه میکند. معادلهای مارپیچی بین موقعیت نهنگ و طعمه ایجاد میشود تا حرکت حلزونی شکل نهنگ گوژپشت را تقلید کند:
که در این رابطه ‘D به فاصله ۱ امین نهنگ تا طعمه اشاره دارد (بهترین راه حل بدست آمده تا اینجا)، b ثابتی برای تعریف شکل مارپیچ لگاریتمی است و اعددی تصادفی بین ۱ تا ۱- میباشد. لازم به ذکر است که نهنگ گوژپشت، حول طعمه در امتداد یک دایرهی انقباضی و همزمان در مسیر مارپیچی شکلی به شنا در میآید. جهت مدلسازی این رفتار همزمان، فرض شده است که نهنگ با احتمال ۵۰ درصد از بین مکانیزم محاصرهی انقباضی و یا مدل مارپیچی یکی را انتخاب میکند تا موقعیت نهنگها در طول بهینه سازی به روزرسانی شود. مدل ریاضی بدین صورت است:
که در آن P عددی تصادفی بین ۰ تا ۱ است. علاوه بر روش حباب تور، نهنگهای گوژپشت به صورت تصادفی به دنبال طعمه میگردند. مدل ریاضی جستجو بدین صورت است.
مرحله اکتشاف در الگوریتم وال – جستجوی شکار
روشی مشابه بر مبنای واریاسیون بردار A را میتوان جهت جستجوی شکار (اکتشاف) به کار گرفت. در حقیقت، نهنگهای گوژپشت، بر طبق مکان یکدیگر، به صورت تصادفی به جستجو میپردازند. بنابراین، بردار A را با مقادیر تصادفی بزرگتر از او یا کمتر از ۱- به کار گرفته شده تا عامل جستجو را مجبور به دور شدن از نهنگ مرجع کند. بر خلاف فاز استخراج، جهت بروزرسانی موقعیت عامل جستجو در فاز اکتشاف به جای استفاده از دادههای بهترین عامل جستجو، از انتخاب تصادفی عامل بهره برده شده است. این مکانیزم به همراه ۱<A بر اکتشاف تاکید دارند و به الگوریتم WOA اجازه میدهند تا جستجویی سراسری را به انجام رساند. مدل ریاضی به صورت زیر است:
در این معادله، Xrand بردار موقعیت تصادفی انتخاب شده (نهنگ تصادفی) از جمعیت جاری است. الگوریتم WOA با مجموعهای از راه حلهای تصادفی شروع به کار میکند. در هر تکرار، عوامل جستجو موقعیت خود را با توجه به عامل جستجویی که تصادفی انتخاب شده و با بهترین راه حل بدست آمدهی جاری، به روزرسانی میکنند. پارامتر a جهت فراهم آوردن اکتشاف و استخراج، به ترتیب از مقدار ۲ تا ۰ کاهش مییابد.
یک عامل جستجوی تصادفی در حالت |A|>1 انتخاب میشود، این در حالی است که بهترین راه حل زمانی انتخاب میشود که جهت بروزرسانی موقعیت عوامل جستجو، |A|<1 باشد. بسته به مقدار p، الگوریتم WOA این قابلیت را دارد تا بین حرکت دایروی و یا مارپیچی یکی را انتخاب کند. در نهایت، الگوریتم WOA با ارضای شرایط خاتمه، پایان میپذیرد.
شبه کد الگوریتم وال
در شکل زیر شبه کد مربوط به الگوریتم فوق نشان داده شده است.
فلوچارت الگوریتم وال
کاربردهای الگوریتم وال
الگوریتم WOA کاربردهای زیادی در حوزه مسائل بهینه سازی پیوسته دارد اما با کمی تغییرات در کدکینگ مسئله میتوان این الگوریتم را برای مسائل گسسته نیز استفاده کرد. در ادامه چند نمونه از کاربردهای این الگوریتم را میتوانیم مشاهده کنیم.
آموزش شبکه عصبی مصنوعی با الگوریتم WOA
شبکههای عصبی مصنوعی، سیستمهای محاسباتی هستند که توسط شبکههای عصبی زیستی الهام گرفته شدهاند که مغز حیوانات را تشکیل میدهند. منظور از یادگیری در شبکههای عصبی، تنظیم وزنها و بایاسهای شبکه میباشد. بر این اساس الگوریتمهای متفاوتی بیان شده، که معمولترین آنها یادگیری هب، دلتا، یادگیری رقابتی و … میباشد.
برای تعیین وزن یالها و بایاسها در شبکههای عصبی میتوان از الگوریتمهای فرا ابتکاری استفاده کرد. از این رو میتوان وزن بایاسها و یالها شبکه عصبی را با استفاده از الگوریتم وال انجام داد. برای تعیین میزان عملکرد این ترکیب از یک دیتاست استفاده میشود تا میزان دقت یادگیری در شبکه عصبی را بالا برد.
انتخاب ویژگی با الگوریتم WOA
در مسائلی که دیتاستها دارای ابعاد بزرگی هستند میتوان با استفاده از الگوریتم وال زیر مجموعهای از دیتاست را انتخاب کرد که دارای بیشترین تاثیر در بخش آموزش هستند. بدین ترتیب که از بین مقادیر فرضاً ۰ و ۱ که در جواب داریم میتوانیم بگوییم اگر عدد مورد نظر از ۰.۵ بزرگتر باشد به عنوان ویژگی انتخاب شود و اگر کوچکتر باشد انتخاب نشود.
مقایسه الگوریتم وال با الگوریتمهای دیگر
شاید مهمترین سوال شما در استفاده از الگوریتمهای بهینه سازی و مخصوصاً الگوریتم های فرا ابتکاری یا Metaheuristic، انتخاب یک الگوریتم مناسب برای حل مسئله است. به طور قاطع نمیتوان گفت برای حل یک مسئله کدام الگوریتم بهینه سازی یا متاهیورستیک مناسب است و فقط با مقایسه نتایج میتوان ادعا کرد کدام الگوریتم روش بهتری را ارائه میکند.
هدف از الگوریتم های بهینه سازی یافتن یک جواب قابل قبول، با توجه به محدودیت و نیاز مسئله است. در تعیین جواب یک مسئله، ممکن است جوابهای مختلفی برای آن وجود داشته باشد. برای مقایسه جوابهای یک مسئله و انتخاب جواب بهینه، تابعی به نام تابع هدف یا تابع هزینه که Cost Function نیز نامیده میشود، تعریف میشود. انتخاب این تابع به ماهیت مسئله وابسته است. الگوریتم وال عملکرد قابل قبولی را در مقایسه با برخی الگوریتمهای فرا ابتکاری از خود نشان میدهد. در ادامه میتوانید این مقایسه را مشاهده کنید.
سخن آخر مقاله الگوریتم بهینه سازی وال ها یا نهنگ WOA
در این مقاله آموزشی به توضیح و تشریح یک الگوریتم مهم در حوزه الگوریتم های فرا ابتکاری پرداخته شد. الگوریتم وال به دلیل استفاده از مکانیزمهای محاصره طعمه و چرخش اطراف طعمه، توانایی خیلی خوبی برای یافتن جواب از فضای جستجوی مسئله را دارد. در سالهای اخیر استفاده از این الگوریتم به دلیل انعطاف زیاد، متداول شده و هنوز هم از این الگوریتم در مسائل مختلف بهینه سازی استفاده میشود. امیدواریم مطالب ذکر شده برای شما عزیزان مفید بوده باشد. مشتاقانه منتظر نظرات و پیشنهادات شما عزیزان هستیم. موفق، پیروز و سربلند باشید.
منابع مقاله مربوط به الگوریتم بهینه سازی وال
[۱] Mirjalili, S., & Lewis, A. (2016). The Whale Optimization Algorithm. Advances in Engineering Software, ۹۵, ۵۱–۶۷. https://doi.org/10.1016/j.advengsoft.2016.01.008
5 پاسخ
سلام و خسته نباشید. بسیار خوب و عالی توضیح داده شده است. در بستر اینترنت کمتر وب سایتی هست که مطالب و ترجمه مقاله WOA رو به این صورت رایگان در اختیار عموم قرار میدهد. تشکر و قدردانی از نویسنده محترم.
ممنون از شما دوست عزیز
سلام
ممنون بابت توضیحات کامل
خیلی عالی بود ممنون از شما