




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上% 模擬退火算法源程序% 此題以中國31省會(huì)城市的最短旅行路徑為例:% clear;clc;function MinD,BestPath=MainAneal(pn)% CityPosition存儲(chǔ)的為每個(gè)城市的二維坐標(biāo)x和y;CityPosition=1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;. 4196 1044;4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;. 1332 695;3715 1678;
2、3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;. 4263 2931;3429 1908;3507 2376;3394 2643;3439 3201;2935 3240;3140 3550;. 2545 2357;2778 2826;2370 2975;figure(1);plot(CityPosition(:,1),CityPosition(:,2),'o')m=size(CityPosition,1);%城市的數(shù)目%D = sqrt(CityPosition(:,ones(1,m) - CityPosition(:,on
3、es(1,m)').2 + . (CityPosition(:,2*ones(1,m) - CityPosition(:,2*ones(1,m)').2);path=zeros(pn,m);for i=1:pn path(i,:)=randperm(m); enditer_max=100;%im_max=5;% Len1=zeros(1,pn);Len2=zeros(1,pn);path2=zeros(pn,m);t=zeros(1,pn);T=1e5; tau=1e-5;N=1;while T>=tau iter_num=1; m_num=1; while m_num&
4、lt;m_max && iter_num<iter_max for i=1:pn Len1(i)=sum(D(path(i,1:m-1)+m*(path(i,2:m)-1) D(path(i,m)+m*(path(i,1)-1); path2(i,:)=ChangePath2(path(i,:),m); Len2(i)=sum(D(path2(i,1:m-1)+m*(path2(i,2:m)-1) D(path2(i,m)+m*(path2(i,1)-1); end R=rand(1,pn); if find(Len2-Len1<t&exp(Len1-Len
5、2)/T)>R)=0) path(find(Len2-Len1<t&exp(Len1-Len2)/T)>R)=0),:)=path2(find(Len2-Len1<t&exp(Len1-Len2)/T)>R)=0),:); %#ok<FNDSB> Len1(find(Len2-Len1<t&exp(Len1-Len2)/T)>R)=0)=Len2(find(Len2-Len1<t&exp(Len1-Len2)/T)>R)=0); TempMinD,TempIndex=min(Len1); Trac
6、ePath(N,:)=path(TempIndex,:); %#ok<AGROW> Distance(N)=TempMinD; %#ok<AGROW> N=N+1; else m_num=m_num+1; endend iter_num=iter_num+1; T=T*0.9;endMinD,Index=min(Distance);BestPath=TracePath(Index,:);%disp(MinD)%畫出路線圖figure(2);plot(CityPosition(BestPath(1:end-1),1),CityPosition(BestPath(1:end
7、-1),2),'r*-');function p2=ChangePath2(p1,CityNum)while(1) R=unidrnd(CityNum,1,2); if abs(R(1)-R(2) > 0 break; endendI=R(1);J=R(2);if I<J p2(1:I)=p1(1:I); p2(I+1:J)=p1(J:-1:I+1); p2(J+1:CityNum)=p1(J+1:CityNum);else p2(1:J-1)=p1(1:J-1); p2(J:I+1)=p1(I+1:-1:J); p2(I:CityNum)=p1(I:CityNum
8、);end% 禁忌搜索算法解決TSP問題 %此題以中國31省會(huì)城市的最短旅行路徑為例:%禁忌搜索是對(duì)局部領(lǐng)域搜索的一種擴(kuò)展,是一種全局逐步尋優(yōu)算法,搜索過程可以接受劣解,有較強(qiáng)的爬山能力.領(lǐng)域結(jié)構(gòu)對(duì)收斂性有很大影響。function BestShortcut,theMinDistance=TabuSearchclear;clc;Clist=1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229;. 4196 1044;4312 790;4386 570;3007 1970;2562 1756;2788 1491
9、;2381 1676;. 1332 695;3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;. 4263 2931;3429 1908;3507 2376;3394 2643;3439 3201;2935 3240;3140 3550;. 2545 2357;2778 2826;2370 2975;CityNum=size(Clist,1);%TSP問題的規(guī)模,即城市數(shù)目dislist=zeros(CityNum); for i=1:CityNum for j=1:CityNum dislist(i,j)=(Clist(i
10、,1)-Clist(j,1)2+(Clist(i,2)-Clist(j,2)2)0.5; endendTabuList=zeros(CityNum);% (tabu list)TabuLength=round(CityNum*(CityNum-1)/2)0.5);%禁忌長度(tabu length)Candidates=200;%候選集的個(gè)數(shù) (全部領(lǐng)域解個(gè)數(shù))CandidateNum=zeros(Candidates,CityNum);%候選解集合S0=randperm(CityNum);%隨機(jī)產(chǎn)生初始解BSF=S0;BestL=Inf;clf; figure(1);stop = uicon
11、trol('style','toggle','string','stop','background','white');tic;p=1;StopL=80*CityNum;while p<StopL if Candidates>CityNum*(CityNum-1)/2 disp('候選解個(gè)數(shù)不大于n*(n-1)/2!'); break; end ALong(p)=Fun(dislist,S0); i=1; A=zeros(Candidates,2); while i<
12、;=Candidates M=CityNum*rand(1,2); M=ceil(M); if M(1)=M(2) A(i,1)=max(M(1),M(2); A(i,2)=min(M(1),M(2); if i=1 isa=0; else for j=1:i-1 if A(i,1)=A(j,1) && A(i,2)=A(j,2) isa=1; break; else isa=0; end end end if isa i=i+1; else end else end end BestCandidateNum=100;%保留前BestCandidateNum個(gè)最好候選解 Bes
13、tCandidate=Inf*ones(BestCandidateNum,4); F=zeros(1,Candidates); for i=1:Candidates CandidateNum(i,:)=S0; CandidateNum(i,A(i,2),A(i,1)=S0(A(i,1),A(i,2); F(i)=Fun(dislist,CandidateNum(i,:); if i<=BestCandidateNum BestCandidate(i,2)=F(i); BestCandidate(i,1)=i; BestCandidate(i,3)=S0(A(i,1); BestCandi
14、date(i,4)=S0(A(i,2); else for j=1:BestCandidateNum if F(i)<BestCandidate(j,2) BestCandidate(j,2)=F(i); BestCandidate(j,1)=i; BestCandidate(j,3)=S0(A(i,1); BestCandidate(j,4)=S0(A(i,2); break; end end end end %對(duì)BestCandidate JL,Index=sort(BestCandidate(:,2); SBest=BestCandidate(Index,:); BestCandi
15、date=SBest; if BestCandidate(1,2)<BestL BestL=BestCandidate(1,2); S0=CandidateNum(BestCandidate(1,1),:); BSF=S0; for m=1:CityNum for n=1:CityNum if TabuList(m,n)=0 TabuList(m,n)=TabuList(m,n)-1; end end end TabuList(BestCandidate(1,3),BestCandidate(1,4)=TabuLength; else for i=1:BestCandidateNum i
16、f TabuList(BestCandidate(i,3),BestCandidate(i,4)=0 S0=CandidateNum(BestCandidate(i,1),:); for m=1:CityNum for n=1:CityNum if TabuList(m,n)=0 TabuList(m,n)=TabuList(m,n)-1; end end end TabuList(BestCandidate(i,3),BestCandidate(i,4)=TabuLength; break; end end end p=p+1; ArrBestL(p)=BestL; %#ok<AGRO
17、W> for i=1:CityNum-1 plot(Clist(BSF(i),1),Clist(BSF(i+1),1),Clist(BSF(i),2),Clist(BSF(i+1),2),'bo-'); hold on; end plot(Clist(BSF(CityNum),1),Clist(BSF(1),1),Clist(BSF(CityNum),2),Clist(BSF(1),2),'ro-'); title('Counter:',int2str(p*Candidates),' The Min Distance:',num2str(BestL); hold off; pause(0.005); if get(stop,'value')=1 break; endendtoc;BestShortcut=BSF;theMinDistance=BestL;set(stop,'style','pushbutton','string','close', 'callback','close(gcf)');figure(2);plot(ArrBestL,'r');
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 游泳救生員初級(jí)測試題與答案
- 推拿治療學(xué)測試題+答案
- 業(yè)務(wù)學(xué)習(xí)心得體會(huì)范文
- 醫(yī)美服裝采購合同范本
- 下半年人力資源部工作計(jì)劃
- 三年級(jí)數(shù)學(xué)綜合實(shí)踐課教案
- 中藥炮制工中級(jí)練習(xí)題(含答案)
- 辦公別墅 出租合同范本
- 建筑信息模型職業(yè)技能理論知識(shí)試題庫及參考答案
- 工程地質(zhì)與土力學(xué)練習(xí)題(含答案)
- 2025年黑龍江農(nóng)業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案1套
- 華潤電力六合馬鞍120兆瓦漁(農(nóng))光互補(bǔ)光伏發(fā)電項(xiàng)目110千伏送出工程報(bào)告表
- 2025年電工特種作業(yè)人員上崗操作證考試全真模擬試題庫及答案(共七套)
- 有創(chuàng)動(dòng)脈血壓監(jiān)測
- 全國導(dǎo)游基礎(chǔ)知識(shí)-全國導(dǎo)游基礎(chǔ)知識(shí)章節(jié)練習(xí)
- 【安排表】2024-2025學(xué)年下學(xué)期學(xué)校升旗儀式安排表 主題班會(huì)安排表
- 2025年度老舊小區(qū)改造施工委托合同范本
- 2025年安徽中醫(yī)藥高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 第七章 力 達(dá)標(biāo)測試卷(含答案)2024-2025學(xué)年度人教版物理八年級(jí)下冊
- 22G614-1 砌體填充墻結(jié)構(gòu)構(gòu)造
- 合肥長鑫存儲(chǔ)在線測評(píng)題2024
評(píng)論
0/150
提交評(píng)論