资源描述:
《matlab多旅行商问题源代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.MATLAB多旅行商问题源代码functionvarargout=mtspf_ga(xy,dmat,salesmen,min_tour,pop_size,num_iter,show_prog,show_res)%MTSPF_GAFixedMultipleTravelingSalesmenProblem(M-TSP)GeneticAlgorithm(GA)%Findsa(near)optimalsolutiontoavariationoftheM-TSPbysetting%upaGAtosearchfortheshortestroute(leastdistancenee
2、dedfor%eachsalesmantotravelfromthestartlocationtoindividualcities%andbacktotheoriginalstartingplace)%%Summary:%1.Eachsalesmanstartsatthefirstpoint,andendsatthefirst%point,buttravelstoauniquesetofcitiesinbetween%2.Exceptforthefirst,eachcityisvisitedbyexactlyonesalesman%%Note:TheFixedStart
3、/EndlocationistakentobethefirstXYpoint%%Input:%XY(float)isanNx2matrixofcitylocations,whereNisthenumberofcities%DMAT(float)isanNxNmatrixofcity-to-citydistancesorcosts%SALESMEN(scalarinteger)isthenumberofsalesmentovisitthecities%MIN_TOUR(scalarinteger)istheminimumtourlengthforanyofthe%sale
4、smen,NOTincludingthestart/endpoint%POP_SIZE(scalarinteger)isthesizeofthepopulation(shouldbedivisibleby8)%NUM_ITER(scalarinteger)isthenumberofdesirediterationsforthealgorithmtorun%SHOW_PROG(scalarlogical)showstheGAprogressiftrue%SHOW_RES(scalarlogical)showstheGAresultsiftrue%%Output:%OPT_
5、RTE(integerarray)isthebestroutefoundbythealgorithm%OPT_BRK(integerarray)isthelistofroutebreakpoints(thesespecifytheindices%intotherouteusedtoobtaintheindividualsalesmanroutes)%MIN_DIST(scalarfloat)isthetotaldistancetraveledbythesalesmen%%Route/BreakpointDetails:%Ifthereare10citiesand3sal
6、esmen,apossibleroute/break%combinationmightbe:rte=[5694281037],brks=[37]%Takentogether,theserepresentthesolution[15691][14281][110371],%whichdesignatestheroutesforthe3salesmenasfollows:...%.Salesman1travelsfromcity1to5to6to9andbackto1%.Salesman2travelsfromcity1to4to2to8andbackto1%.Salesm
7、an3travelsfromcity1to10to3to7andbackto1%%2DExample:%n=35;%xy=10*rand(n,2);%salesmen=5;%min_tour=3;%pop_size=80;%num_iter=5e3;%a=meshgrid(1:n);%dmat=reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),n,n);%[opt_rte,opt_brk,min_dist]=mtspf_ga(xy,dmat,salesmen,min_tour,...%pop_size,