در این پست سورس کد الگوریتم گرگ خاکستری در پایتون Python قرار گرفته شده است. این سورس کد به زبان پایتون Python برای الگوریتم گرگ خاکستری نوشته شده است. این سورس کد بر اساس 12 توابع تست الگوریتم گرگ خاکستری را اجرا می کند. در ادامه مختصری از الگوریتم برای درک کد الگوریتم GWO در پایتون بیان می شود.
تهیه و تنظیم: تیم طراحی و تولید پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم طراحی و تولید پی استور از اولین تیم های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف تولید محتوای تخصصی فعال هستند.
الگوریتم گرگ خاکستری چیست؟
الگوریتم گرگ خاکستری GWO یک الگوریتم متاهیورستیک یا فرا ابتکاری است است و برای مسائل بهینه سازی از آن استفاده می شود. که از ساختار سلسله مراتبی hieratical و رفتار اجتماعی گرگ های خاکستری در هنگام شکار کردن و حمله به طعمه الهام گرفته است. این الگوریتم مبتنی بر جمعیت Population-Based بوده، روال ساده ای دارد. در هر گله از گرگ ها برای شکار کردن ۴ درجه وجود دارد که مانند شکل زیر به صورت یک ساختار هرمی مدل می شود.
- گرگ های رهبر گروه alpha نامیده می شوند که می توانند مذکر یا مونث باشند. این گرگ ها بر گله تسلط دارند
- گرگ های beta: کمک به گرگ های alpha در فرایند تصمیم گیری بوده و همچنین مستعد انتخاب شدن به جای آن ها هستند.
- گرگ های delta: پایین تر از گرگ های beta و شامل گرگ های پیر، شکارچی ها و گرگ های مراقبت کننده از نوزادان
- گرگ های omega: پایین ترین مرتبه در هرم سلسله مراتب که کمترین حق را نسبت به بقیه اعضای گروه دارند. بعد از همه غذا می خورند و در فرایند تصمیم گیری مشارکتی ندارند.
روش شکار در گرگ های خاکستری
شکار در گرگ های خاکستری شامل ۳ مرحله اصلی است:
- مشاهده شکار، ردیابی و تعقیب آن (tracking and approaching)
- نزدیک شدن، احاطه کردن (حلقه زدن) به دور شکار و گمراه کردن آن تا زمانی که از حرکت باز بماند (Pursing and encircling)
- حمله به شکار (attacking)
در سورس کد الگوریتم گرگ خاکستری در پایتون Python ساختار سلسله مراتبی و رفتار اجتماعی گرگ ها در حین فرآیند شکار به صورت ریاضی مدل شده و برای طراحی الگوریتمی برای بهینه سازی مورد استفاده قرار گرفته است.
بهینه سازی با استفاده از گرگ های alpha, beta و delta انجام می شود. یک گرگ به عنوان alpha هدایت کننده اصلی الگوریتم فرض می شود و یک گرگ beta و delta نیز مشارکت دارند و بقیه گرگ ها به عنوان دنبال کننده آن ها محسوب می شوند. گرگ های خاکستری توانایی تخمین موقعیت شکار را دارند. برای مدل سازی این فرایند مراحل زیر را ببینید:
در جستجوی اولیه هیچ ایده ای در مورد موقعیت شکار نداریم. فرض می شود گرگ های alpha, beta, delta دانش اول بهتری در خصوص موقعیت شکار (نقه بهینه جواب) دارند.
وقتی شکار توسط گرگ ها احاطه شده و از حرکت بایستد حمله به رهبری گرگ alpha شروع می شود. مدل کدن این فرایند با استفاده از کاهش بردار a انجام می شود. از آنجا که A برداری تصادفی در بازه [-۲a,2a] است، با کاهش a، بردار ضرایب A هم کاهش می یابد. اگر |A|<1 باشد، گرگ alpha به شکار ( و بقیه گرگ ها) نزدیک می شود و اگر |A|>1 گرگ از شکار ( و بقیه گرگ ها) دور خواهد شد. الگوریتم گرگ خاکستری الزام دارد که تمام گرگ ها موقعت خود را برحسب موقعیت گرگ های alpha, beta, delta آپدیت کنند.
مرحله جستجو
مرحله جستجو پروسه ای دقیقا عکس فرایند حمله دارد: در هنگام جستجو گرگ ها از یکدیگر دور می شوند تا شکار را ردیابی کنند (|A|>1) در حالی ک.ه پس از ردیابی شکار، گرگ ها در فاز حمله به یکدیگر نزدیک می شوند (|A|<1). به این پروسه واگرایی در جستجو – همگرایی در حمله می گویند.
Exploration: |A|>1
Exploitation: |A|<1
نقش بردار C: بردار C به عنوان موانع موجود در طبیعت که نزدیک شدن گرگ ها به شکار را کند می کنند در نظر گرفته می شود. بردار C به شکار وزن داده و ان را برای گرگ ها غیر قابل دستیابی تر می کند. این بردار برخلاف a به صورت خطی از ۲ تا صفر کاهش نمی یابد.
ترتیب الگوریتم GWO
برازندگی کلیه جواب ها محاسبه شده و سه جواب برتر به عنوان alpha, beta, deltaتا پایان الگوریتم انتخاب می شوند. در هر تکرار سه جواب برتر (گرگ های alpha, beta, delta) قابلیت تخمین موقعیت شکار را داشته و این کار را در هر iteration با استفاده از رابطه زیر انجام می دهند:
- در هر تکرار بعد از تعیین موقعیت گرگ های alpha, beta, delta، آپدیت موقعیت بقیه جواب ها با تبعیت از آن ها انجام می شود.
- در هر تکرار بردار a (و به تبع آن A) و C آپدیت می شوند.
- در پایان تکرارها موقعیت گرگ alpha به عنوان نقطه بهینه معرفی می شود.
قسمت هایی از سورس کد
import CostFun as fit import random import numpy import matplotlib.pyplot as plt Max_iter=100 lb=-10 ub=10 dim=30 SearchAgents_no=5 # initialize alpha, beta, and delta_pos Alpha_pos=numpy.zeros(dim) Alpha_score=float("inf") Beta_pos=numpy.zeros(dim) Beta_score=float("inf") Delta_pos=numpy.zeros(dim) Delta_score=float("inf") if not isinstance(lb, list): lb = [lb] * dim if not isinstance(ub, list): ub = [ub] * dim #Initialize the positions of search agents Positions = numpy.zeros((SearchAgents_no, dim)) for i in range(dim): Positions[:, i] = numpy.random.uniform(0,1, SearchAgents_no) * (ub[i] - lb[i]) + lb[i] Convergence_curve=numpy.zeros(Max_iter)
ویدیو معرفی محصول
*** توجه ***
قبل از اجرای سورس کد الگوریتم در محیط پایتون حتماً از نصب پکیج های مورد استفاده در این سورس کد در Python خود مطمئن شوید پکیج های استفاده شده در این سورس کد numpy و matplotlib می باشد که اولی پکیج مربوط به استفاده از آرایه ها و ماتریس ها در پایتون و دومی مربوط به عملیات های نموداری و Plot گرفتن می باشد. پیشنهاد ما نصب اسپایدر (Spyder (Python 3.7 می باشد که هم پایتون و پکیج های مختلف و هم IDE های مختلفی را همراه با امکان آپدیتشان نصب می کند.
درباره سورس کد الگوریتم GWO در پایتون
سورس کد الگوریتم گرگ خاکستری GWO در پایتون Python عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در پایتون و با IDE اسپایدر (Spyder (Python 3.7 نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
آموزش های مربوط به الگوریتم گرگ خاکستری
سورس کدهای آماده الگوریتم های مشابه در پایتون
تاریخ انتشار: | 21 آبان 1398 |
---|---|
تاریخ بروزرسانی: | 27 تیر 1399 |
حجم فایل: | 5.3 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
نسخه: | 1.0 |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
تاکنون 418 نفر این محصول را تهیه کرده اند و 2 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 21 آبان 1398 |
---|---|
تاریخ بروزرسانی: | 27 تیر 1399 |
حجم فایل: | 5.3 کیلوبایت |
فرمت فایل | py. در قالب پایتون |
نسخه: | 1.0 |
هماهنگی با: | (Spyder (Python 3.8 و بالاتر |
2 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
حسن نصیر زاده
سلام
این سورس کدش مثل فیلم کار میکنه؟
فاطمه اسماعیلی
سلام دوست عزیز
بله کاملا
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.