الگوریتم رقابت استعماری فروشنده دوره گرد – الگوریتم رقابت استعماری برای حل مسئله فروشنده دوره گرد TSP در متلب

(دیدگاه کاربر 1)
امتیاز 5.00 از 5

برنامه‌نویس: 

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۴۰,۰۰۰ تومان بود.قیمت فعلی: ۹۶,۰۰۰ تومان.

تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.

سورس کد الگوریتم رقابت استعماری برای حل مسئله فروشنده دوره گرد TSP در متلب عنوان موضوعی است که در این پست به آن پرداخته می‌شود. الگوریتم رقابت استعماری با نام Imperialist Competitive Algorithm یا الگوریتم ICA نیز نامیده می‌شود. در این مجموعه سعی می‌کنیم تا جزئیات بهتری از سورس کد الگوریتم رقابت استعماری فروشنده دوره گرد در متلب ICA ارائه دهیم.

الگوریتم رقابت استعماری (ICA)

همانند همه الگوریتم‌های قرار گرفته در دسته الگوریتم‌های بهینه سازی، الگوریتم رقابت استعماری نیز مجموعه اولیه‌ای از جواب‌های احتمالی را تشکیل می‌دهد. این جواب‌های اولیه در الگوریتم ژنتیک با عنوان «کروموزوم»، در الگوریتم ازدحام ذرات با عنوان «ذره» و در الگوریتم رقابت استعماری نیز با عنوان «کشور» شناخته می‌شوند. الگوریتم رقابت استعماری با روند خاصی که در ادامه می‌آید، این جوابهای اولیه (کشورها) را به تدریج بهبود داده و در نهایت جواب مناسب مسئله بهینه‌سازی (کشور مطلوب) را در اختیار می‌گذارد.

الگوریتم رقابت استعماری (ICA)

پایه‌های اصلی این الگوریتم را سیاست همسان سازی (Assimilation)، رقابت استعماری (Imperialistic Competition) و انقلاب (Revolution) تشکیل می‌دهند. این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدل‌سازی ریاضی بخش‌هایی از این فرایند، عملگرهایی را در قالب منظم به صورت الگوریتم ارائه می‌دهد که می‌توانند به حل مسائل پیچیده بهینه‌سازی کمک کنند.

در واقع این الگوریتم جواب‌های مسئله بهینه‌سازی را در قالب کشورها نگریسته و سعی می‌کند در طی فرایندی تکرار شونده این جواب‌ها را رفته رفته بهبود داده و در نهایت به جواب بهینه مسئله برساند.

مراحل الگوریتم رقابت استعماری

مراحل کلی روند الگوریتم به‌صورت زیر است.

  1. چند نقطه تصادفی روی تابع انتخاب کرده و امپراتوری‌های اولیه را تشکیل بده.
  2. مستعمرات را به سمت کشور امپریالیست حرکت بده (سیاست همسان‌سازی یا جذب).
  3. عملگر انقلاب را اعمال کن.
  4. اگر مستعمره‌ای در یک امپراتوری وجود داشته باشد که هزینه‌ای کمتر از امپریالیست داشته باشد جای مستعمره و امپریالیست را عوض کن.
  5. هزینه کل یک امپراتوری را حساب کن (با در نظر گرفتن هزینه امپریالیست و مستعمراتشان).
  6. یک (چند) مستعمره از ضعیف‌ترین امپراتوری را انتخاب کرده و آن را به امپراتوری که بیشترین احتمال تصاحب را دارد، بده.
  7. امپراتوری‌های ضعیف را حذف کن.
  8. اگر تنها یک امپراتوری باقیمانده باشد توقف کن و در غیر این صورت به 2 برو.

برای درک کامل الگوریتم الگوریتم رقابت استعماری مقاله‌ای تحت عنوان الگوریتم رقابت استعماری IMPERIALIST COMPETITIVE ALGORITHM  آماده کرده‌ایم که می‌توانید مطالعه کنید.

مسئله فروشنده دورگرد TSP

مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مساله‌اي است که شرح آن خيلي آسان می‌باشد. تعريف آن بدين صورت است که تعداد متناهی شهر با هزينه پيمايش بين هر جفت از آنها داده می‌شود و هدف مساله اين است که يک فروشنده دوره گرد تمامی اين شهرها را به گونه‌ای ملاقات کند که هر يک از اين شهرها را فقط يک بارملاقات کرده و دوباره به شهر آغازين برگردد با اين شرط که با کمترين هزينه پيمايش اين کار را انجام دهد.

به طور کلی هدف پيدا کردن کم هزينه‌ترين تور برای ملاقات همه شهرها و بازگشت به شهر آغازين حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاري با نام TSP شناخته می‌شود. شکل 3- 1 يک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 براي 15 شهر از کشور آمريکا مطرح شد را نشان مي دهد که با روش شاخه وحد حل شد.

الگوریتم رقابت استعماری فروشنده دوره گرد

سورس حل مسئله فروشنده دوره گرد TSP با الگوریتم ICA در متلب

در این قسمت سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم ICA در متلب آماده شده است این سورس کد شامل 13 فایل می‌باشد که عبارتند از:

حل TSP با الگوریتم ICA در متلب

  • TSPICA.m: فایل اصلی برنامه است و فراخوانی دیگر توابع و مقادیر پارامترها و الگوریتم ICA در داخل این فایل قرار دارد.
  • 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
  • MyCost.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

برای دریافت سورس کامل محصول لطفا آن را خریداری کنید.

تصاویر خروجی محصول

الگوریتم رقابت استعماری فروشنده دوره گرد

حل TSP با الگوریتم ICA در متلب

ویدئوی معرفی محصول


درباره الگوریتم رقابت استعماری فروشنده دوره گرد

سورس برنامه حل مسئله فروشنده دوره گرد TSP با الگوریتم رقابت استعماری ICA در متلب عنوان اثری است که در این پست به آن پرداخته شده است. اثر در نرم افزار متلب نوشته شده و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است و دارای نشان تضمین کیفیت پی استور می‌باشد. برای دانلود اثر مذکور آن را خریداری کنید.

معرفی و نحوه اجرا

ویدئوی نحوه اجرا

مشخصات تکمیلی سورس کد

نام اثر: الگوریتم رقابت استعماری فروشنده دوره گرد – الگوریتم رقابت استعماری برای حل مسئله فروشنده دوره گرد TSP در متلب
نوع اثر: سورس کد
برنامه‌نویس: تیم برنامه‌نویسی پی‌استور
زبان برنامه نویسی: MATLAB
ویژگی: قابل دانلود و ویرایش

راهنمای خرید و ثبت سفارش

تصویر مراحل خرید از پی استور

اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین 44225175 (پیش شماره 041) تماس بگیرید. – تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات

برنامه‌نویس:  تیم برنامه‌نویسی پی‌استور

متشکل از اساتید و فارغ التحصیلان رشته‌های فنی - مهندسی

تیم برنامه نویسی پی استور یکی از اولین گروه‌های تشکیل شده در مجموعه آموزشی پی استور می‌باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته‌های فنی و مهندسی تشکیل شده که در زمینه‌های مختلف برنامه‌نویسی و تهیه سورس کد فعال هستند.

نظرات

1 نظر|5.00 (میانگین امتیاز کاربران)

  1. مدیریت و پشتیبانی

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شناسه اثر: 5800 دسته‌بندی موضوعی: برچسب , ,

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۴۰,۰۰۰ تومان بود.قیمت فعلی: ۹۶,۰۰۰ تومان.