در این پست به فروشنده دوره گرد با الگوریتم گرگ خاکستری در متلب پرداخته می شود. الگوریتم گرگ خاکستری Grey Wolf Optimizer یا به اختصار GWO یک الگوریتم بهینه سازی یا فرابتکاری است که از ساختار سلسله مراتبی hieratical و رفتار اجتماعی گرگ های خاکستری در هنگام شکار کردن الهام گرفته است. در ادامه به تشریح حل مسئله فروشنده دوره گرد TSP با الگوریتم گرگ خاکستری GWO در متلب پرداخته خواهد شد.

برنامهنویس: تیم برنامه نویسی پی استور
متشکل از اساتید و فارغ التحصیلان رشته های فنی - مهندسی
تیم برنامه نویسی پی استور یکی از اولین گروه های تشکیل شده در مجموعه آموزشی پی استور می باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته های فنی و مهندسی تشکیل شده که در زمینه های مختلف برنامه نویسی و تهیه سورس کد فعال هستند.
الگوریتم گرگ خاکستری
الگوریتم گرگ خاکستری GWO یک الگوریتم متاهیورستیک است که از ساختار سلسله مراتبی hieratical و رفتار اجتماعی گرگ های خاکستری در هنگام شکار کردن الهام گرفته است. این الگوریتم مبتنی بر جمعیت بوده، فرایند ساده ای دارد و به سادگی قابلیت تعمیم به مسائل با ابعاد بزرگ را دارد.
در هر گله از گرگ ها برای شکار کردن ۴ درجه وجود دارد که مانند شکل زیر به صورت یک ساختار هرمی مدل می شود.
- گرگ های رهبر گروه alpha نامیده می شوند که می توانند مذکر یا مونث باشند. این گرگ ها بر گله تسلط دارند
- گرگ های beta: کمک به گرگ های alpha در فرایند تصمیم گیری بوده و همچنین مستعد انتخاب شدن به جای آن ها هستند.
- گرگ های delta: پایین تر از گرگ های beta و شامل گرگ های پیر، شکارچی ها و گرگ های مراقبت کننده از نوزادان
- گرگ های omega: پایین ترین مرتبه در هرم سلسله مراتب که کمترین حق را نسبت به بقیه اعضای گروه دارند. بعد از همه غذا می خورند و در فرایند تصمیم گیری مشارکتی ندارند.
ترتیب الگوریتم
- برازندگی کلیه جواب ها محاسبه شده و سه جواب برتر به عنوان alpha, beta, deltaتا پایان الگوریتم انتخاب می شوند.
- در هر تکرار سه جواب برتر (گرگ های alpha, beta, delta) قابلیت تخمین موقعیت شکار را داشته و این کار را در هر iteration با استفاده از رابطه زیر انجام می دهند:
- در هر تکرار بعد از تعیین موقعیت گرگ های alpha, beta, delta، آپدیت موقعیت بقیه جواب ها با تبعیت از آن ها انجام می شود.
- در هر تکرار بردار a (و به تبع آن A) و C آپدیت می شوند.
- در پایان تکرارها موقعیت گرگ alpha به عنوان نقطه بهینه معرفی می شود.
مسئله فروشنده دورگرد TSP
مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مساله اي است که شرح آن خيلي آسان مي باشد. تعريف آن بدين صورت است که تعداد متناهي شهر با هزينه پيمايش بين هر جفت از آنها داده مي شود و هدف مساله اين است که يک فروشنده دوره گرد تمامي اين شهرها را به گونه اي ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.
به طور کلي هدف پيدا کردن کم هزينه ترين تور براي ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته مي شود. شکل 3- 1 يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان مي دهد که با روش شاخه وحد حل شد.
سورس حل مسئله فروشنده دوره گرد با گرگ خاکستری
در این قسمت سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم گرگ خاکستری GWO در متلب آماده شده است این سورس کد شامل 5 فایل می باشد که عبارتند از:
- TSPGWO.m: فایل اصلی برنامه است و فراخوانی دیگر توابع و مقادیر پارامتر ها و الگوریتم GWO در داخل این فایل قرار دارد.
- CreateModel.m: برای ایجاد شهرهای فاصله و مختصات هر یک از شهرها از این تابع استفاده می شود.
function model=CreateModel() x=[82 91 12 92 63 9 28 55 96 97 15 98 96 49 12 92 63 9 28 55 96 97 15 98 80 14 42 92 80 96]; y=[12 92 63 9 28 55 96 97 15 98 66 3 85 94 68 76 75 39 66 17 71 3 27 4 9 83 70 32 95 3]; n=numel(x); D=zeros(n,n); for i=1:n-1 for j=i+1:n D(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2); D(j,i)=D(i,j); end end model.n=n; model.x=x; model.y=y; model.D=D; end
- PlotSolution.m: برای رسم مسیر های بین شهرها از این تابع استفاده می شود.
function PlotSolution(tour,model) tour=[tour tour(1)]; plot(model.x(tour),model.y(tour),'k-s',... 'MarkerSize',12,... 'MarkerFaceColor','y',... 'LineWidth',2); end
- TourLength.m: این تابع برای محاسبه طول مسیرهای یک تور یا یک پیمایش کامل شهرها بکار می رود.
function [z sol]=MyCost(s,model) d=model.d; [~, tour]=sort(s); sol.tour=tour; n=numel(tour); tour=[tour tour(1)]; L=0; for i=1:n L=L+d(tour(i),tour(i+1)); end sol.L=L; z=L; end
- initialization.m: این تابع برای محاسبه مقدار اولیه جواب های ممکن برای الگوریتم بکار می رود.
function Positions=initialization(SearchAgents_no,dim,ub,lb) Boundary_no= size(ub,2); % numnber of boundaries % If the boundaries of all variables are equal and user enter a signle % number for both ub and lb if Boundary_no==1 Positions=rand(SearchAgents_no,dim).*(ub-lb)+lb; end % If each variable has a different lb and ub if Boundary_no>1 for i=1:dim ub_i=ub(i); lb_i=lb(i); Positions(:,i)=rand(SearchAgents_no,1).*(ub_i-lb_i)+lb_i; end end
برای دریافت سورس کامل محصول لطفا آن را خریداری کنید.
تصاویر خروجی فروشنده دوره گرد با الگوریتم گرگ خاکستری
پکیج کامل آموزش الگوریتم گرگ خاکستری GWO
فرصت استثنایی برای خرید پک کلی آموزشی الگوریتم گرگ خاکستری GWO را از دست ندهید اگر می خواهید الگوریتم GWO را بصورت کامل یاد بگیرید و با قیمت مقرون به صرفه محصول را خریداری کنید حتماً پیشنهاد ما رو از دست ندهید. برای اطلاعات بیشتر روی لینک زیر کلیک کنید.
ویدئوی نحوه اجرا
درباره فروشنده دوره گرد با الگوریتم گرگ خاکستری
سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم گرگ خاکستری GWO در متلب عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در نرم افزار متلب نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.
مباحث مرتبط در زمینه الگوریتم گرگ خاکستری
مباحث مرتبط درباره حل مسئله فروشنده دوره گرد TSP
تاریخ انتشار: | 1 مرداد 1398 |
---|---|
تاریخ بروزرسانی: | 25 دی 1398 |
حجم فایل: | 1.5 مگابایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2009 و بالاتر |
تاکنون 445 نفر این محصول را تهیه کرده اند و 1 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
قیمت 49,000 تومان
تاریخ انتشار: | 1 مرداد 1398 |
---|---|
تاریخ بروزرسانی: | 25 دی 1398 |
حجم فایل: | 1.5 مگابایت |
فرمت فایل | m. در قالب متلب |
نسخه: | 1.0 |
شناسه اثر: | ندارد |
هماهنگی با: | Matlab 2009 و بالاتر |
1 بازخورد (مشاهده نظرات)
قیمت: 49,000 تومان
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.