برنامهنویس:
هزینه سفارش:
۲۵۶,۰۰۰ تومان قیمت اصلی: ۲۵۶,۰۰۰ تومان بود.۱۰۴,۰۰۰ تومانقیمت فعلی: ۱۰۴,۰۰۰ تومان.
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
در این پست سورس کد مقایسه الگوریتم های حل مسئله TSP قرار داده شده است. برای حل مسئله TSP یا همان فروشنده دوره گرد Traveling Salesman Problem میتوان از الگوریتم های بهینه سازی یا فراابتکاری (Metaheuristic) استفاده کرد. هدف از الگوریتمهای بهینه سازی يافتن یک جواب قابل قبول، با توجه به محدوديت و نياز مسئله است. در ادامه توضیحات کاملتری ارائه میشود.
در سورس کدی که در متلب برای شما آماده شده است به مقایسه 12 الگوریتم بهینه سازی برای حل مسئله TSP و نتایج حاصل از آنها پرداخته شده است. این الگوریتمها مبتنی بر جمعیت یا population based بوده که با الهام گیری از طبیعت و محیط پیرامون ما اقدام به حل مسئله میکنند. این الگوریتمها عبارتند از:
برای مقایسه عملکرد الگوریتمهای فوق بر روی مسئله TSP از یک مدل سازی پیوسته برای جایگشتهای شهرها استفاده شده است. با اجرای سورس کد 2 خروجی خواهیم داشت یکی موقعیت شهرها و نحوه حرکت فروشنده دوره گرد و دیگری نمودار همگرایی.
مساله فروشنده دوره گرد Travelling salesman problem یا به اختصار TSP مسالهای است که شرح آن خیلی آسان میباشد. تعریف آن بدین صورت است که تعداد متناهی شهر با هزینه پیمایش بین هر جفت از آنها داده میشود و هدف مساله این است که یک فروشنده دوره گرد تمامی این شهرها را به گونهای ملاقات کند که هر یک از این شهرها را فقط یک بارملاقات کرده و دوباره به شهر آغازین برگردد با این شرط که با کمترین هزینه پیمایش این کار را انجام دهد.
به طور کلی هدف پیدا کردن کم هزینهترین تور برای پیمایش همه شهرها و بازگشت به شهر آغازین حرکت است. مساله فروشنده دوره گرد در شکل ساده و اختصاری با نام TSP شناخته میشود. شکل زیر یک نمونه جواب از مساله فروشنده دوره گرد که در سال 1591 برای 15 شهر از کشور آمریکا مطرح شد را نشان میدهد که با روش شاخه و حد حل شد.

clc
close all
clear
addpath('GA');
addpath('PSO');
addpath('ACO');
addpath('BEE');
addpath('CMA-ES');
addpath('DE');
addpath('FA');
addpath('GWO');
addpath('ICA');
addpath('SFLA');
addpath('WOA');
addpath('MFO');
model=CreateModel();
dim=model.n;
lb=0;
ub=1;
fobj=@(tour) TourLength(tour,model);
SearchAgents_no=50; % Number of search agents
Max_iteration=1000; % Maximum numbef of iterations
Positions=initialization(SearchAgents_no,dim,ub,lb);
[Best_SolGA,GA_cg_curve]=GA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolPSO,PSO_cg_curve]=PSO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolACO,ACO_cg_curve]=ACO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolBEE,BEE_cg_curve]=BEE(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_Solcmaes,cmaes_cg_curve]=cmaes(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolDE,DE_cg_curve]=DE(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolFA,FA_cg_curve]=FA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolICA,ICA_cg_curve]=ICA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_SolSFLA,SFLA_cg_curve]=SFLA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_scoreGWO,Best_posGWO,GWO_cg_curve]=GWO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_scoreWOA,Best_posWOA,WOA_cg_curve]=WOA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
[Best_scoreMFO,Best_posMFO,MFO_cg_curve]=MFO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj,Positions);
figure(1);
%Draw objective space
semilogy(GA_cg_curve,'Color','[0 0 0]','LineWidth',2)
hold on;
semilogy(PSO_cg_curve,'Color','[0 0 1]','LineWidth',2)
semilogy(ACO_cg_curve,'Color','[0 1 0]','LineWidth',2)
semilogy(BEE_cg_curve,'Color','[0 1 1]','LineWidth',2)
semilogy(cmaes_cg_curve,'Color','[1 0 0]','LineWidth',2)
semilogy(DE_cg_curve,'Color','[1 0 1]','LineWidth',2)
semilogy(FA_cg_curve,'Color','[1 1 0]','LineWidth',2)
semilogy(ICA_cg_curve,'--','Color','[0 0 1]','LineWidth',2)
semilogy(SFLA_cg_curve,'--','Color','[0 1 0]','LineWidth',2)
semilogy(GWO_cg_curve,'--','Color','[0 1 1]','LineWidth',2)
semilogy(WOA_cg_curve,'--','Color','[1 0 0]','LineWidth',2)
semilogy(MFO_cg_curve,'--','Color','[1 0 1]','LineWidth',2)
xlabel('Iteration');
ylabel('Best score obtained so far');
grid on
legend('GA','PSO','ACO','BEE','CMA-ES','DE','FA','ICA','SFLA','GWO','WOA','MFO','Location','bestoutside')
test;


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

تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
هزینه سفارش:
۲۵۶,۰۰۰ تومان قیمت اصلی: ۲۵۶,۰۰۰ تومان بود.۱۰۴,۰۰۰ تومانقیمت فعلی: ۱۰۴,۰۰۰ تومان.
نظرات
نجار
با سلام
ببخشید من در ارن کردن کدها در متلب مشکل دارم و وقتی ران را میزنم ارور میدهد. ممنون میشم راهنمایی بفرمایید
مدیریت و پشتیبانی
سلام از طریق تیکت پشتیبانی در حساب کاربری تان مشکل رو مطرح کنید و تصویر خطا رو پیوست کنید تا رسیدگی بشه.
عباس شعبانی
عرض سلام وادب-می خواستم بدونم این سورس کد در پایتون قابل اجرا هست؟میشه سورس الگوریتم های دیگه ای همچون TA ویا عملگرهای 2-OPT و3-OPTرو هم به این اضافه نمود؟
مدیریت و پشتیبانی
سلام و عرض ادب
این کد فقط در متلب قابل اجرا هست و بله میشه هر الگوریتم دیگه ای رو بهش اضافه کرد
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.