الگوریتم مورچه فروشنده دوره گرد – سورس کد الگوریتم مورچه ACO برای حل مسئله فروشنده دوره گرد TSP در متلب

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

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

هزینه سفارش:

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

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

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

 

الگوریتم مورچه فروشنده دوره گرد الگوریتم مورچه یکی از الگوریتم های فرا اکتشافی برای حل مسائل سخت در علوم کامپیوتر مختلف می‌باشد که در این پست به تشریح و چگونگی عملکرد این الگوریتم برای حل مسئله فروشنده دوره گرد پرداخته می‌شود. الگوریتم مورچه یا الگوریتم کلونی مورچه الهام گرفته شده از مطالعات و مشاهدات روی کلونی مورچه‌هاست.

این مطالعات نشان داده که مورچه‌ها حشراتی اجتماعی هستند که در کلونی‌ها زندگی می‌کنند و رفتار آنها بیشتر در جهت بقاء کلونی است تا درجهت بقاء یک جزء از آن. یکی از مهمترین و جالبترین رفتار مورچه‌ها، رفتار آنها برای یافتن غذا است و بویژه چگونگی پیدا کردن کوتاهترین مسیر میان منابع غذایی و آشیانه.

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

الگوریتم بهینه سازی کلونی مورچه  Ant Colony Optimization یا به اختصار ACO مورچگان تحت عنوان الگوریتم‌های هوش ازدحامی (هوش گروهی) شناخته شده و به مدل سازی رفتار مورچه‌های واقعی می‌پردازد. مورچه‌ها حشراتی هستند که می‌توانند گروه‌ها (کلونی‌ها) را شکل دهند. چنین رویکرد جمعیت محوری این امکان را برای الگوریتم ACO ایجاد می‌کند تا به حل مسائل بهینه سازی پویا به طور کاملا کارآمد بپردازد. مورچه‌ها به عنوان مخلوقات خودسازمانده می‌باشند.

از آنجایی که مورچه‌ها اصلا چشم ندارند، تعاملات آن‌ها از طریق ماده شیمیایی فرومون که از آن برای نشان گذاری مسیر استفاده می‌شود، انجام می‌گیرد. هرچه فرومن‌های بیشتری در مسیر قرار گیرد مابقی مورچه‌ها از این مسیر بیشتر استفاده می‌کنند؛ بنابراین، چنین کمیتی نشان می‌دهد که این مسیر به عنوان یکی از بهینه‌ترین و کوتاه‌ترین راه می‌باشد. اکنون نگاهی به یک نمونه عینی می‌اندازیم. هدف پیدا کردن بهترین راه از نقطه آغازی N (آشیانه) به نقطه مقصد F (منبع غذا) می‌باشد.الگوریتم مورچه ACO

ممکن است این حدس زده شودکه احتمال برای مورچه‌ای که مسیر درست را می‌پیماید برابر با همان احتمالی می‌باشد که مسیر اشتباه را انتخاب کند. نکته در اینجا اینست که مورچه‌ای که کوتاه‌ترین مسیر را می‌پیماید، اولین مورچه‌ای است که به نقطه مقصد رسیده و سپس به اشیانه ( نقطه مبدا حرکت) بر می‌گردد، بنابراین در این کوتاه ترین مسیر فرمون‌های بیشتری وجود دارد. از این رو فرمون دقیقا همان چیزی است که نشان می‌دهد که مورچه باید از چه مسیری برود و در پایان کوتاه‌ترین راه، بهترین مسیر می‌باشد.

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

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

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

فروشنده دوره گرد TSP

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

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

  • aco.m: فایل اصلی برنامه است و فراخوانی دیگر توابع و مقادیر پارامترها و الگوریتم مورچه در داخل این فایل قرار دارد.
  • 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
  • RouletteWheelSelection.m: انتخاب چرخه رولت که در بحث انتخاب تصادفی برای حرکت مورچه است از این تابع استفاده می‌شود.
  • TourLength.m: این تابع برای محاسبه طول مسیرهای یک تور یا یک پیمایش کامل شهرها بکار می‌رود.
function L=TourLength(tour,model)

    n=numel(tour);

    tour=[tour tour(1)];
    
    L=0;
    for i=1:n
        L=L+model.D(tour(i),tour(i+1));
    end

end

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


درباره سورس کد الگوریتم مورچه فروشنده دوره گرد

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

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

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

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

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

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

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

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

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

نظرات

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

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

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

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

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

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

هزینه سفارش:

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

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