الگوریتم گرگ خاکستری
الگوریتم گرگ خاکستری GWO یک الگوریتم متاهیورستیک است که از ساختار سلسله مراتبی hieratical و رفتار اجتماعی گرگهای خاکستری در هنگام شکار کردن الهام گرفته است. این الگوریتم مبتنی بر جمعیت بوده، فرآیند سادهای دارد و به سادگی قابلیت تعمیم به مسائل با ابعاد بزرگ را دارد. گرگهای خاکستری بهعنوان شکارچیان راس یا apex در نظر گرفته میشوند، که در بالای هرم زنجیره غذایی هستند.
گرگهای خاکستری ترجیح میدهند در یک گروه (دسته) زندگی کنند، هر گروه بهطور متوسط ۵ الی ۱۲ عضو دارد. همه اعضای این گروه دارای سلسله مراتب تسلط اجتماعی بسیار دقیق هستند و وظایف خاصی دارند. در هر گله از گرگها برای شکار کردن ۴ درجه وجود دارد که مانند شکل زیر به صورت یک ساختار هرمی مدل میشود.
- گرگهای رهبر گروه alpha نامیده میشوند که میتوانند مذکر یا مونث باشند. این گرگها بر گله تسلط دارند
- گرگهای beta: کمک به گرگهای alpha در فرآیند تصمیم گیری بوده و همچنین مستعد انتخاب شدن به جای آنها هستند.
- گرگهای delta: پایینتر از گرگهای beta و شامل گرگهای پیر، شکارچیها و گرگهای مراقبت کننده از نوزادان
- گرگهای omega: پایینترین مرتبه در هرم سلسله مراتب که کمترین حق را نسبت به بقیه اعضای گروه دارند. بعد از همه غذا میخورند و در فرآیند تصمیم گیری مشارکتی ندارند.
پکیج کاملی که درادامه مطلب ارائه کردهایم هر آنچه که لازم است در مورد الگوریتم گرگ خاکستری بدانید را در خود دارد. برای آموزش کامل الگوریتم و دانلود پکیج ویژه ما با نام پکیج آموزش الگوریتم گرگ خاکستری GWO همین حالا اقدام کنید.
روش شکار در گرگ های خاکستری
در توضیح و آموزش الگوریتم گرگ خاکستری میتوان گفت این الگوریتم شامل ۳ مرحله اصلی است:
- مشاهده شکار، ردیابی و تعقیب آن (tracking and approaching)
- نزدیک شدن، احاطه کردن (حلقه زدن) به دور شکار و گمراه کردن آن تا زمانی که از حرکت باز بماند (Pursing and encircling)
- حمله به شکار (attacking)
در این مقاله ساختار سلسله مراتبی و رفتار اجتماعی گرگها در حین فرایند شکار به صورت ریاضی مدل شده و برای طراحی الگوریتمی برای بهینه سازی مورد استفاده قرار گرفته است.
در ادامه فیلم آموزشی الگوریتم گرگ خاکستری GWO در متلب به توضیح کامل و واضح مفاهیم تئوری الگوریتم گرگ خاکستری و نحوه کدنویسی آن در متلب پرداخته میشود. این آموزش در مدت زمان ۱ ساعت و ۳۰ دقیقه توسط مهندس امین جلیل زاده تدریس شده است.
بهینه سازی با استفاده از گرگهای alpha, beta و delta انجام میشود. یک گرگ به عنوان alpha هدایت کننده اصلی الگوریتم فرض میشود و یک گرگ beta و delta نیز مشارکت دارند و بقیه گرگها به عنوان دنبال کننده آنها محسوب میشوند. گرگ های خاکستری توانایی تخمین موقعیت شکار را دارند. برای مدل سازی این فرآیند مراحل زیر را ببینید: در جستجوی اولیه هیچ ایدهای در مورد موقعیت شکار نداریم. فرض میشود گرگهای alpha, beta, delta دانش اول بهتری در خصوص موقعیت شکار (نقطه بهینه جواب) دارند.
تشریح بهینه ساز گرگ خاکستری GWO
در بهینه ساز گرگ خاکستری GWO، مناسبترین راه حل را به عنوان آلفا در نظر میگیریم و راه حلهای دوم و سوم مناسب به ترتیب بتا و دلتا نامگذاری میشوند. بقیه راه حلها امگا در نظر گرفته میشوند. در الگوریتم GWO ، شکار توسط گرگهای آلفا، بتا و دلتا هدایت میشود. راه حل امگا از این سه گرگ پیروی میکند.
وقتی شکار توسط گرگها احاطه شده و از حرکت بایستد حمله به رهبری گرگ alpha شروع میشود. مدل کردن این فرآیند با استفاده از کاهش بردار a انجام میشود. از آنجا که A برداری تصادفی در بازه [-2a,2a] است، با کاهش a، بردار ضرایب A هم کاهش مییابد. اگر |A|<1 باشد، گرگ alpha به شکار ( و بقیه گرگها) نزدیک میشود و اگر |A|>1 گرگ از شکار ( و بقیه گرگها) دور خواهد شد. الگوریتم گرگ خاکستری الزام دارد که تمام گرگها موقعت خود را برحسب موقعیت گرگهای alpha, beta, delta آپدیت کنند.
محاصره طعمه توسط گرگهای خاکستری
در طول شکار، گرگهای خاکستری طعمه را محاصره میکنند. مدل ریاضی رفتار محاصره در معادلات زیر ارائه شده است. که در روابط زیر t تکرار فعلی ، A و C بردارهای ضریب هستند ، Xp بردار موقعیت طعمه است و X بردار موقعیت گرگ خاکستری را نشان میدهد.
بردارهای A و C به شرح زیر محاسبه میشوند:
در روابط بالا متغیرa به طور خطی در طول تکرارها از ۲ به ۰ کاهش مییابند و r1 ، r2 بردارهای تصادفی در بازه [۰ ، ۱] هستند.
در این بخش فیلم آموزشی الگوریتم گرگ خاکستری GWO در پایتون به توضیح کامل مفاهیم تئوری و نحوه کدنویسی الگوریتم گرگ خاکستری در پایتون پرداخته میشود. این آموزش در مدت زمان ۱ ساعت و ۵۲ دقیقه توسط مهندس امین جلیل زاده تدریس شده است.
فیلم آموزش الگوریتم گرگ خاکستری در پایتون — کلیک کنید
عملیات شکار معمولاً توسط آلفا هدایت میشود. گرگ های بتا و دلتا ممکن است گه گاه در شکار شرکت کنند. در مدل ریاضی رفتار شکار گرگهای خاکستری، ما فرض کردیم که آلفا، بتا و دلتا دانش بهتری در مورد موقعیت بالقوه طعمه دارند. سه راه حل اول بهترین ذخیره میشوند و عامل دیگر موظف است موقعیتهای خود را مطابق با موقعیت بهترین عوامل جستجو مطابق با معادلات زیر به روز کند.
توضیح مرحله جستجو
مرحله جستجو پروسه ای دقیقا عکس فرآیند حمله دارد: در هنگام جستجو گرگها از یکدیگر دور میشوند تا شکار را ردیابی کنند (|A|>1) در حالی که پس از ردیابی شکار، گرگها در فاز حمله به یکدیگر نزدیک میشوند (|A|<1). به این پروسه واگرایی در جستجو – همگرایی در حمله میگویند.
Exploration: |A|>1
Exploitation: |A|<1
نقش بردار C: بردار C به عنوان موانع موجود در طبیعت که نزدیک شدن گرگها به شکار را کند میکنند در نظر گرفته میشود. بردار C به شکار وزن داده و آن را برای گرگها غیر قابل دستیابیتر میکند. این بردار برخلاف a به صورت خطی از ۲ تا صفر کاهش نمییابد.
ترتیب الگوریتم
- برازندگی کلیه جوابها محاسبه شده و سه جواب برتر به عنوان alpha, beta, deltaتا پایان الگوریتم انتخاب میشوند.
- در هر تکرار سه جواب برتر (گرگهای alpha, beta, delta) قابلیت تخمین موقعیت شکار را داشته و این کار را در هر iteration با استفاده از رابطه زیر انجام میدهند:
- در هر تکرار بعد از تعیین موقعیت گرگهای alpha, beta, delta، آپدیت موقعیت بقیه جوابها با تبعیت از آنها انجام میشود.
- در هر تکرار بردار a (و به تبع آن A) و C آپدیت میشوند.
- در پایان تکرارها موقعیت گرگ alpha به عنوان نقطه بهینه معرفی میشود.
پاورپوینت آماده الگوریتم گرگ خاکستری در ۱۹ صفحه بصورت فارسی به توضیح کامل الگوریتم گرگ خاکستری GWO و اصول کلی در آن میپردازد. برای تهیه این پاورپوینت از طریق لینک زیر اقدام کنید.
شبه کد الگوریتم گرگ خاکستری
فلوچارت الگوریتم گرگ خاکستری
با توجه به مطالب ذکر شده فلوچارت الگوریتم گرگ خاکستری را میتوان بصورت زیر در نظر گرفت. این فلوچارت فقط با تعیین مقادیر بردارهای A و C کار خواهد کرد. توضیح این فلوچارت براحتی با مطالعه مراحل گفته شده در بالا بسیار ساده است.
نتیجه گیری مقاله الگوریتم گرگ خاکستری GWO
در این پست سعی شد نحوه کار الگوریتم گرگ خاکستری توضیح، تشریح و آموزش داده شود. این الگوریتم از سال ۲۰۱۶ یکی از الگوریتمهای محبوب در زمینه بهینه سازی در بسیاری از تحقیقات بکار گرفته شده است. سایت پی استور با هدف آموزش این الگوریتم، فلوچارت الگوریتم را نیز ارائه کرده است. این الگوریتم توانایی خوبی در حل مسائل پیوسته دارد و مدام از این الگوریتم در مقالات بروز و معتبر دنیا نام برده میشود. امیدواریم از این آموزش استفاده لازم را برده باشید.
13 پاسخ
با سلام و احترام من دو الگوریتم در یک مقاله خوندم آیا از الگوریتم الگوریتم بهینه سازی سینوس کسینوس و یا گرگ خاکستری می توان برای مقاله مالی و برای شناسایی متغیرها استفاده کرد؟ و ارتباط آن با این مقاله ها چطوریه و چطور بیان میشه؟ اصلا ارتباط برقرار میشه؟ در الگوریتم گرگ خاکستری منظور از طعمه کیست محاصره چیست ؟
باسلام و عرض ادب خدمت استاد ارجمند.
بنده برنامه ای(که تابع هدف من محسوب میشه) در نرم متلب جهت “مدیریت تراکم در شبکه های توزیع” نوشتم و قصد دارم این برنامه رو با الگوریتم گرگ خاکستری(GWO) اجرا کنم.
سوال بنده این است:برنامه برای داشتن خروجی به یک مقدار اولیه نیاز دارد، حال این مقدار اولیه را در الگوریتم گرگ خاکستری چگونه باید تعریف کنم و یا اینکه الگوریتم، تابع هدف من را چگونه حل میکند و به من چه مقدار اوّلیه میدهد؟
ببینهایت سپاسگزارم از مطالب ارزشمندتون…
سلام و وقت بخیر
برنامه ای که به عنوان تابع هدف نوشتید حتماً دارای ورودی و خروجی است یعنی به ازای گرفتن ورودی های متفاوت بایستی خروجی متفاوتی ایجاد کنه مثلا در تابع y = x1 + x2 + 3 ورودی ها x1 و x2 هستند و خروجی y هست. حالا الگوریتم گرگ خاکستری با مقدار دهی همین ورودی ها در طی تکرار های مختلف کاری می کنه که اون خروجی y جواب بهتری بده.
در ابتدا مقدار اولیه ورودی ها به صورت کاملاً تصادفی در بین محدوده خاصی ایجاد میشه و رفته رفته با توجه به رفتار تابع هدف در ماگزیمم سازی یا مینیمم سازی این ورودی ها عدد های بهتری به خودشون می گیرن و خروجی بهتری رو تولید می کنند و در واقع در طی تکرار های مختلف به یک خروجی خوب همگرا می شوند.
در انتها اجرا یا حل کردن یک مسئله توسط الگوریتمی مانند گرگ خاکستری یعنی تعیین ورودی های اون برنامه یا مسئله بطوری که خروجی بهتر بشه.
سلام خسته نباشید امکان استفاده از الگوریتم گرگ خاکستری تو برنامه ریزی تولید هست یا نه؟
سلام و وقت بخیر
الگوریتم گرگ خاکستری یک الگوریتم بهینه سازی هست و اگر مسئله ای قابلیت بهینه سازی و شرایط مربوط به اون رو داشته باشه قطعاً می تونه با GWO بهینه سازی بشه. شما باید مسئله خودتون در برنامه ربزی تولید رو مد نظر داشته باشید و ببنید که آیا با روش های قطعی می تونید جواب رو به دست بیارید یانه؟ اگر نتوانستید باید ببینید بعد جواب مسئله اونقدر زیاد هست که نشه با روش های دستی اون رو به دست آور یا نه؟ اگر مسئله شما جزو چنین مسائلی باشه (مسائل NP-Hard) پس اون موقع می تونه با گرگ خاکستری جواب قابل قبولی براش بدست آورد.
واقعا ازتون ممنونم.بسیاااااار عالی بود
من اشتباها امتیاز کم دادم میخواستم عالی رو بزنم یعنی همه ستاره ها رو ولی دیدم نظرم ثبت شد.واقعا عالی هستید
با سلام به نظرتون برای ارائه کلاسی کدوم یک از این الگوریتم های فراابتکاری میتونه ارائه راحت تری داشته باشه؟! ممنون
سلام. الگوریتم مورچه و ژنتیک بسیار جذاب هستند و مخاطب رو جذب میکنند.
از لحاظ راحت بودن هم معمولاً الگوریتم گرگ خاکستری راحت تر میباشد.
از این الگوریتم برای حل مسئله فروشنده دوره گرد میشه استفاده کرد؟
بله مثلا میتونید با استفاده از الگوریتم گرگ خاکستری، مسئله فروشنده دوره گرد رو در متلب پیاده سازی کنید.
سلام وقت بخیر
شما به عنوان یک متخصص که تجربه کافی در حوزه آموزش و پیاده سازی الگوریتم های فراابتکاری دارید، از نظر شما کدام الگوریتم های فراابتکاری عملکرد بهتری در حل مساله فروشنده دوره گرد در تعداد شهر های بالا ۱۰۰ تا دارد به طوری که همه از یک نوع تابع شایستگی (fitness) استفاده کنند و در عملکرد اصلی الگوریتم تغییری داده نشود. ممنون میشم تجربه خودتان را بگید
با تشکر
سلام و عرض ادب
برای حل مسئله فروشنده دوره گرد یا همون TSP الگوریتم TS یا جستجوی ممنوعه Tabu Search بهترین کارکرد رو داره و چون روال کارش برای مسائل جایگشتی هست بهترین جواب رو برای tsp می تونه داشته باشه بعد اون الگوریتم کلونی مورچگان، ژنتیک و شبیه ساز حرارتی می تونه وجود داشته باشه ولی کارایی ts رو ندارن. بقیه الگوریتم هایی که ما با اونا سرو کار داریم ماهیت پیوسته دارند و برای حل مسائل پیوسته خوب هستند و خودتون می دونید که مسئله فروشنده دوره گرد جزو مسائل گسسته جایگشتی محسوب می شه.