【正文】
p=1。clf。figure(1)。while (pStopL+1) if l1CityNum*(CityNum)/2 disp(39。候選解個(gè)數(shù),不大于n*(n1)/2(全部領(lǐng)域解個(gè)數(shù))! 系統(tǒng)自動(dòng)退出!39。)。 l1=(CityNum*(CityNum)/2)^.5。 break。 end ArrS(p)=CalDist(dislist,S)。 i=1。 A=zeros(l1,2)。 while i=l1 M=CityNum*rand(1,2)。 M=ceil(M)。 if M(1)~=M(2) m1=max(M(1),M(2))。m2=min(M(1),M(2))。 A(i,1)=m1。A(i,2)=m2。 if i==1 isdel=0。 else for j=1:i1 if A(i,1)==A(j,1)amp。amp。A(i,2)==A(j,2) isdel=1。 break。 else isdel=0。 end end end if ~isdel i=i+1。 else i=i。 end else i=i。 end end for i=1:l1 Si(i,:)=S。 Si(i,[A(i,1),A(i,2)])=S([A(i,2),A(i,1)])。 CCL(i,1)=i。 CCL(i,2)=CalDist(dislist,Si(i,:))。 CCL(i,3)=S(A(i,1))。 CCL(i,4)=S(A(i,2))。 end [fs fin]=sort(CCL(:,2))。 for i=1:cl CL(i,:)=CCL(fin(i),:)。 end if CL(1,2)bsf %藐視準(zhǔn)則(aspiration criterion) bsf=CL(1,2)。 S=Si(CL(1,1),:)。 BSF=S。 for m=1:CityNum for n=1:CityNum if Tlist(m,n)~=0 Tlist(m,n)=Tlist(m,n)1。 end end end Tlist(CL(1,3),CL(1,4))=tl。 else for i=1:cl if Tlist(CL(i,3),CL(i,4))==0 S=Si(CL(i,1),:)。 for m=1:CityNum for n=1:CityNum if Tlist(m,n)~=0 Tlist(m,n)=Tlist(m,n)1。 end end end Tlist(CL(i,3),CL(i,4))=tl。 break。 end end end Arrbsf(p)=bsf。 drawTSP(Clist,BSF,bsf,p,0)。 p=p+1。endBestShortcut=BSFtheMinDistance=bsffigure(2)。plot(Arrbsf,39。r39。)。 hold on。plot(ArrS,39。b39。)。grid。title(39。搜索過程39。)。legend(39。最優(yōu)解39。,39。當(dāng)前解39。)。tsp程序:function [DLn,cityn]=tsp(n)city31=[1304 2312。3639 1315。4177 2244。3712 1399。3488 1535。3326 1556。3238 1229。4196 1004。4312 790。4386 570。3007 1970。2562 1756。2788 1491。 2381 1676。1332 695。3715 1678。3918 2179。4061 2370。3780 2212。3676 2578。4029 2838。4263 2931。3429 1908。3507 2367。3394 2643。3439 3201。 2935 3240。3140 3550。2545 2357。2778 2826。2370 2975]。 for i=1:31 for j=1:31 DL31(i,j)=((city31(i,1)city31(j,1))^2+(city31(i,2)city31(j,2))^2)^。 end end DLn=DL31。 cityn=city31。