الگوریتم بهینه سازی وال

الگوریتم بهینه سازی نهنگ یا Whale Optimization Algorithm به اختصار (WOA) یکی از جدیدترین الگوریتم های فراابتکاری به شمار می رود که در سال ۲۰۱۶ ارائه شده است و در حوزه هوش ازدحامی (Swarm Intelligence) جای می گیرد. در این الگوریتم از روش شکار تور حبابی که توسط نهنگ های گوژپشت انجام می شود، الهام گرفته شده است. پس از مرور مفاهیم اولیه بهینه سازی و انواع روش های آن، مبانی تئوری الگوریتم بهینه سازی نهنگ مورد بررسی قرار می گیرد و سپس پیاده سازی آن در محیط نرم افزار متلب برای یک مساله بهینه سازی تک هدفه و پیوسته ارائه می شود.

آموزش الگوریتم بهینه سازی نهنگ (WOA) و پیاده سازی در متلب | فرادرس

مراحل الگوریتم

الگوریتم وال WOA در سه مرحله یا سه فاز انجام می شود که بصورت زیر است:

1- شکار محاصره ای
2- فاز بهره برداری : روش حمله به حباب تور
3- مرحله اکتشاف: جستجوی شکار

شکار محاصره ای

وال ها می توانند مکان شکار را شناسایی کرده و آنها را محاصره کنند. از آنجایی که مکان طراحی بهینه در فضای جستجو از راه مقایسه شناخته نمی شود، الگوریتم فرض می کند که بهترین راه حل کاندید حال حاضر، شکار هدف بوده و یا نزدیک به حالت مطلوب است. بعد از اینکه بهترین عامل جستجو شناسایی شد، عوامل دیگر جستجو سعی می کنند تا مکان خود را نسبت به بهترین عامل جستجو، به روزرسانی کنند. این رفتار از طریق روابط (2.1) و (2.2) مقاله بیان شده است:

الگوریتم بهینه سازی وال ها یا نهنگ WOA

که در آن t تکرار جاری را نشان می دهد، A و C بردارهای ضرائب ، *X بردار مکان بهترین راه حل بدست آمده در حال حاضر و X بردار مکان است. لازم به ذکر است که در صورت وجود راه حل بهتر، *X در هر تکرار باید بروز شود. بردار A و C به صورت زیر محاسبه می گردد:

الگوریتم وال

که a به صورت خطی از مقدار ۲ تا ۰ و در طی تکرار ها کاهش می یابد (در هر دو فاز اکتشاف و استخراج) و r بردار تصادفی در فاصله ۰ تا ۱ است.

فاز بهره برداری : روش حمله به حباب تور

جهت مدلسازی ریاضی رفتار حباب تور وال ها، ۲ روش طراحی شده است:

مکانیزم محاصرهی انقباضی: این رفتار به از طریق افزایش مقدار a در رابطه (2.3) حاصل می شود. محدوده نوسان A بوسیله a کاهش می یابد. به عبارت دیگر، A مقداری تصادفی در فاصله a تا a- است و a در طی تکرارها، از مقدار ۲ تا ۰ کاهش می یابد. با انتخاب مقادیر تصادفی A در فاصله ی ۱ تا ۱-، می توان مکان جدید عامل جستجو را در هر کجای بین مکان اصلی عامل و مکان بهترین عامل کنونی، تعریف کرد.
مکان در حال بروزرسانی مارپیچی: این روش در ابتدا فاصله بین وال قرار گرفته در مختصات *X و Y طعمه موجود در *X و *Y را محاسبه می کند. معادله ای مارپیچی بین موقعیت نهنگ و طعمه ایجاد می شود تا حرکت حلزونی شکل نهنگ گوژپشت را تقلید کند:

الگوریتم WOA

که در این رابطه ‘D به فاصله ۱ امین نهنگ تا طعمه اشاره دارد (بهترین راه حل بدست آمده تا اینجا)، b ثابتی برای تعریف شکل مارپیچ لگاریتمی است و اعددی تصادفی بین ۱ تا ۱- می باشد. لازم به ذکر است که نهنگ گوژپشت، حول طعمه در امتداد یک دایرهی انقباضی و همزمان در مسیر مارپیچی شکلی به شنا در می آید. جهت مدلسازی این رفتار همزمان، فرض شده است که نهنگ با احتمال ۵۰ درصد از بین مکانیزم محاصرهی انقباضی و یا مدل مارپیچی یکی را انتخاب می کند تا موقعیت نهنگ ها در طول بهینه سازی به روز رسانی شود. مدل ریاضی بدین صورت است:

الگوریتم بهینه سازی وال ها یا نهنگ WOA

که در آن P عددی تصادفی بین ۰ تا ۱ است. علاوه بر روش حباب تور، نهنگ های گوژپشت به صورت تصادفی به دنبال طعمه می گردند. مدل ریاضی جستجو بدین صورت است.

مرحله اکتشاف: جستجوی شکار

روشی مشابه بر مبنای واریاسیون بردار A را می توان جهت جستجوی شکار (اکتشاف) به کار گرفت. در حقیقت، نهنگ های گوژپشت، بر طبق مکان یکدیگر، به صورت تصادفی به جستجو می پردازند. بنابراین، بردار A را با مقادیر تصادفی بزرگتر از او یا کمتر از ۱- به کار گرفته شده تا عامل جستجو را مجبور به دور شدن از نهنگ مرجع کند. بر خلاف فاز استخراج، جهت بروزرسانی موقعیت عامل جستجو در فاز اکتشاف به جای استفاده از داده های بهترین عامل جستجو، از انتخاب تصادفی عامل بهره برده شده است. این مکانیزم به همراه ۱<A بر اکتشاف تاکید دارند و به الگوریتم WOA اجازه می دهند تا جستجویی سراسری را به انجام رساند. مدل ریاضی به صورت زیر است:

الگوریتم WOA

در این معادله، Xrand بردار موقعیت تصادفی انتخاب شده (نهنگ تصادفی) از جمعیت جاری است. الگوریتم WOA با مجموعه ای از راه حل های تصادفی شروع به کار می کند. در هر تکرار، عوامل جستجو موقعیت خود را با توجه به عامل جستجویی که تصادفی انتخاب شده و با بهترین راه حل بدست آمدهی جاری ، به روزرسانی می کنند. پارامتر a جهت فراهم آوردن اکتشاف و استخراج، به ترتیب از مقدار ۲ تا ۰ کاهش می یابد. یک عامل جستجوی تصادفی در حالت |A|>1 انتخاب می شود، این در حالی است که بهترین راه حل زمانی انتخاب می شود که جهت بروزرسانی موقعیت عوامل جستجو، |A|<1 باشد. بسته به مقدار p، الگوریتم WOA این قابلیت را دارد تا بین حرکت دایروی و یا مارپیچی یکی را انتخاب کند. در نهایت، الگوریتم WOA با ارضای شرایط خاتمه، پایان می پذیرد. در شکل زیر شبه کد مربوط به الگوریتم فوق نشان داده شده است.

شبه کد الگوریتم وال ها WOA الگوریتم وال
1510 بازدید