




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
人工智能原理實(shí)驗(yàn)報(bào)告模擬退火算法解決TSP問題
目錄TOC\o"1-3"\h1旅行商問題和模擬退火算法 1旅行商問題 1旅行商問題的描述 1模擬退火算法 1基本思想 12TSP模擬退火算法的實(shí)現(xiàn) 1TSP算法實(shí)現(xiàn) 1TSP算法描述 1TSP算法流程 1TSP的C實(shí)現(xiàn) 1加載數(shù)據(jù)文件 1計(jì)算總距離的函數(shù) 1交換城市的函數(shù) 1執(zhí)行模擬退火的函數(shù) 1實(shí)驗(yàn)結(jié)果 1小結(jié) 13源代碼 11旅行商問題和模擬退火算法旅行商問題旅行商問題的描述旅行商問題(TravelingSalesmanProblem,簡稱TSP)又名貨郎擔(dān)問題,是威廉·哈密爾頓爵士和英國數(shù)學(xué)家克克曼于19世紀(jì)初提出的一個(gè)數(shù)學(xué)問題,也是著名的組合優(yōu)化問題。問題是這樣描述的:一名商人要到若干城市去推銷商品,已知城市個(gè)數(shù)和各城市間的路程(或旅費(fèi)),要求找到一條從城市1出發(fā),經(jīng)過所有城市且每個(gè)城市只能訪問一次,最后回到城市1的路線,使總的路程(或旅費(fèi))最小。TSP剛提出時(shí),不少人認(rèn)為這個(gè)問題很簡單。后來人們才逐步意識到這個(gè)問題只是表述簡單,易于為人們所理解,而其計(jì)算復(fù)雜性卻是問題的輸入規(guī)模的指數(shù)函數(shù),屬于相當(dāng)難解的問題。這個(gè)問題數(shù)學(xué)描述為:假設(shè)有n個(gè)城市,并分別編號,給定一個(gè)完全無向圖G=(V,E),V={1,2,…,n},n>1。其每一邊(i,j)E有一非負(fù)整數(shù)耗費(fèi)Ci,j(即上的權(quán)記為Ci,j,i,jV)。并設(shè)G的一條巡回路線是經(jīng)過V中的每個(gè)頂點(diǎn)恰好一次的回路。一條巡回路線的耗費(fèi)是這條路線上所有邊的權(quán)值之和。TSP問題就是要找出G的最小耗費(fèi)回路。模擬退火算法模擬退火算法由KirkPatrick于1982提出[7],他將退火思想引入到組合優(yōu)化領(lǐng)域,提出一種求解大規(guī)模組合優(yōu)化問題的方法,對于NP-完全組合優(yōu)化問題尤其有效。模擬退火算法來源于固體退火原理,將固體加溫至充分高,再讓其緩慢降溫(即退火),使之達(dá)到能量最低點(diǎn)。反之,如果急速降溫(即淬火)則不能達(dá)到最低點(diǎn)。加溫時(shí),固體內(nèi)部粒子隨溫升變?yōu)闊o序狀,內(nèi)能增大,而緩慢降溫時(shí)粒子漸趨有序,在每個(gè)溫度上都達(dá)到平衡態(tài),最后在常溫時(shí)達(dá)到基態(tài),內(nèi)能減為最小。根據(jù)Metropolis準(zhǔn)則,粒子在溫度T時(shí)趨于平衡的概率為exp(-E/(kT)),其中E為溫度T時(shí)的內(nèi)能,E為其改變量,k為Boltzmann常數(shù)。用固體退火模擬組合優(yōu)化問題,將內(nèi)能E模擬為目標(biāo)函數(shù)值f,溫度T演化成控制參數(shù)t,即得到解組合優(yōu)化問題的模擬退火算法:由初始解i和控制參數(shù)初值t開始,對當(dāng)前解重復(fù)產(chǎn)生“新解→計(jì)算目標(biāo)函數(shù)差→接受或舍棄”的迭代,并逐步衰減t值,算法終止時(shí)的當(dāng)前解即為所得近似最優(yōu)解,這是基于蒙特卡羅迭代求解法的一種啟發(fā)式隨機(jī)搜索過程。退火過程由冷卻進(jìn)度表(CoolingSchedule)控制,包括控制參數(shù)的初值t及其衰減因子a、每個(gè)t值時(shí)的迭代次數(shù)L和停止條件C?;舅枷肽M退火算法可以分解為解空間、目標(biāo)函數(shù)和初始解3部分。其基本思想是:(1)初始化:初始溫度T(充分大),初始解狀態(tài)s(是算法迭代的起點(diǎn)),每個(gè)T值的迭代次數(shù)L;(2)對k=1,……,L做第(3)至第6步;(3)產(chǎn)生新解s′;(4)計(jì)算增量cost=cost(s′)-cost(s),其中cost(s)為評價(jià)函數(shù);(5)若t′0則接受s′作為新的當(dāng)前解,否則以概率exp(-t′/T)接受s′作為新的當(dāng)前解;(6)如果滿足終止條件則輸出當(dāng)前解作為最優(yōu)解,結(jié)束程序。終止條件通常取為連續(xù)若干個(gè)新解都沒有被接受時(shí)終止算法;(7)T逐漸減少,且T趨于0,然后轉(zhuǎn)第2步運(yùn)算。具體如下(1)新解的產(chǎn)生和接受模擬退火算法新解的產(chǎn)生和接受可分為如下4個(gè)步驟:①由一個(gè)函數(shù)從當(dāng)前解產(chǎn)生一個(gè)位于解空間的新解。為便于后續(xù)的計(jì)算和接受,減少算法耗時(shí),常選擇由當(dāng)前新解經(jīng)過簡單地變換即可產(chǎn)生新解的方法,如對構(gòu)成新解的全部或部分元素進(jìn)行置換、互換等。產(chǎn)生新解的變換方法決定了當(dāng)前新解的鄰域結(jié)構(gòu),因而對冷卻進(jìn)度表的選取有一定的影響。②計(jì)算與新解所對應(yīng)的目標(biāo)函數(shù)差。因?yàn)槟繕?biāo)函數(shù)差僅由變換部分產(chǎn)生,所以目標(biāo)函數(shù)差的計(jì)算最好按增量計(jì)算。事實(shí)表明,對大多數(shù)應(yīng)用而言,這是計(jì)算目標(biāo)函數(shù)差的最快方法。③判斷新解是否被接受。判斷的依據(jù)是一個(gè)接受準(zhǔn)則,最常用的接受準(zhǔn)則是Metropo1is準(zhǔn)則:若t′0則接受S′作為新的當(dāng)前解S,否則以概率exp(-t′/T)接受S′作為新的當(dāng)前解S。④當(dāng)新解被確定接受時(shí),用新解代替當(dāng)前解。這只需將當(dāng)前解中對應(yīng)于產(chǎn)生新解時(shí)的變換部分予以實(shí)現(xiàn),同時(shí)修正目標(biāo)函數(shù)值即可。此時(shí),當(dāng)前解實(shí)現(xiàn)了一次迭代,可在此基礎(chǔ)上開始下一輪試驗(yàn)。而當(dāng)新解被判定為舍棄時(shí),則在原當(dāng)前解的基礎(chǔ)上繼續(xù)下一輪試驗(yàn)。模擬退火算法與初始值無關(guān),算法求得的解與初始解狀態(tài)S(是算法迭代的起點(diǎn))無關(guān);模擬退火算法具有漸近收斂性,已在理論上被證明是一種以概率收斂于全局最優(yōu)解的全局優(yōu)化算法;模擬退火算法具有并行性。(2)參數(shù)控制問題模擬退火算法的應(yīng)用很廣泛,可以求解NP完全問題,但其參數(shù)難以控制,其主要問題有以下3點(diǎn)[7]:①溫度T的初始值設(shè)置。溫度T的初始值設(shè)置是影響模擬退火算法全局搜索性能的重要因素之一。初始溫度高,則搜索到全局最優(yōu)解的可能性大,但因此要花費(fèi)大量的計(jì)算時(shí)間;反之,則可節(jié)約計(jì)算時(shí)間,但全局搜索性能可能受到影響。實(shí)際應(yīng)用過程中,初始溫度一般需要依據(jù)實(shí)驗(yàn)結(jié)果進(jìn)行若干次調(diào)整。②溫度衰減函數(shù)的選取。衰減函數(shù)用于控制溫度的退火速度,一個(gè)常用的函數(shù)為:式中是一個(gè)非常接近于1的常數(shù),t為降溫的次數(shù)。③馬爾可夫鏈長度L的選取。通常的原則是:在衰減參數(shù)T的衰減函數(shù)已選定的前提下,L的選取應(yīng)遵循在控制參數(shù)的每一取值上都能恢復(fù)準(zhǔn)平衡的原則。2TSP模擬退火算法的實(shí)現(xiàn)TSP是典型的組合優(yōu)化問題,模擬退火算法是一種隨機(jī)性解決組合優(yōu)化方法。將TSP與模擬退火算法相結(jié)合,以實(shí)現(xiàn)對其求解。TSP算法實(shí)現(xiàn)TSP算法描述(1)TSP問題的解空間和初始解TSP的解空間S是遍訪每個(gè)城市恰好一次的所有回路,是所有城市排列的集合。TSP問題的解空間S可表示為{1,2,…,n}的所有排列的集合,即S={(c1,c2,…,cn)|((c1,c2,…,cn)為{1,2,…,n}的排列)},其中每一個(gè)排列Si表示遍訪n個(gè)城市的一個(gè)路徑,ci=j表示在第i次訪問城市j。模擬退火算法的最優(yōu)解與初始狀態(tài)無關(guān),故初始解為隨機(jī)函數(shù)生成一個(gè){1,2,…,n}的隨機(jī)排列作為S0。(2)目標(biāo)函數(shù)TSP問題的目標(biāo)函數(shù)即為訪問所有城市的路徑總長度,也可稱為代價(jià)函數(shù):現(xiàn)在TSP問題的求解就是通過模擬退火算法求出目標(biāo)函數(shù)C(c1,c2,…,cn)的最小值,相應(yīng)地,s*=(c*1,c*2,…,c*n)即為TSP問題的最優(yōu)解。(3)新解產(chǎn)生新解的產(chǎn)生對問題的求解非常重要。新解可通過分別或者交替用以下2種方法產(chǎn)生:①二變換法:任選序號u,v(設(shè)uvn),交換u和v之間的訪問順序,若交換前的解為si=(c1,c2,…,cu,…,cv,…,cn),交換后的路徑為新路徑,即:si′=(c1,…,cu-1,cv,cv-1,…,cu+1,cu,cv+1,…,cn)②三變換法:任選序號u,v和ω(u≤vω),將u和v之間的路徑插到ω之后訪問,若交換前的解為si=(c1,c2,…,cu,…,cv,…,cω,…,cn),交換后的路徑為的新路徑為:si′=(c1,…,cu-1,cv+1,…,cω,cu,…,cv,cω+1,…,cn)(4)目標(biāo)函數(shù)差計(jì)算變換前的解和變換后目標(biāo)函數(shù)的差值:Δc′=c(si′)-c(si)(5)Metropolis接受準(zhǔn)則根據(jù)目標(biāo)函數(shù)的差值和概率exp(-ΔC′/T)接受si′作為新的當(dāng)前解si,接受準(zhǔn)則:TSP算法流程根據(jù)以上對TSP的算法描述,可以寫出用模擬退火算法解TSP問題的流程圖2-1所示:圖2-1TSP的模擬退火流程TSP的C實(shí)現(xiàn)加載數(shù)據(jù)文件下面是加載數(shù)據(jù)文件的一個(gè)例子:中國31省會城市數(shù)據(jù):[13042312;36391315;41772244;37121399;34881535;33261556;32381229;41961044;4312790;4386570;30071970;25621756;27881491;23811676;1332695;37151678;39182179;40612370;37802212;36762578;40292838;42632931;34291908;3507237633942643;34393201;29353240;31403550;25452357;27782826;23702975];當(dāng)調(diào)用數(shù)據(jù)文件函數(shù)時(shí),包含城市坐標(biāo)信息的矩陣載入到數(shù)組中。計(jì)算總距離的函數(shù)這是一個(gè)城市間計(jì)算距離的函數(shù),根據(jù)給定路徑計(jì)算該路徑對應(yīng)總路程。inlinedoubledist(intx1,inty1,intx2,inty2){returnsqrt(double((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));}inlinedoubletotaldist(pathp){inti;doublecost=0;for(i=1;i<N;i++){ cost+=D[[i]][[i+1]]; } cost+=D[[1]][[N]];returncost;}TSP問題的成本函數(shù)是城市之間的距離。調(diào)用此函數(shù)將計(jì)算n個(gè)城市之間的距離。交換城市的函數(shù)這是一個(gè)用于城市交換的函數(shù),它從某路徑的鄰域中隨機(jī)的選擇一個(gè)新的路徑。pathgetnext(pathp){intx,y;pathret;ret=p;do{x=rand()%N+1;y=rand()%N+1;}while(x==y);swap[x],[y]);=totaldist(ret); returnret;}執(zhí)行模擬退火的函數(shù)voidsa()xt","r",stdin);scanf("%d",&N);for(i=1;i<=N;i++)scanf("%d%d",&C[i][0],&C[i][1]);for(i=1;i<N;i++)f\n",; for(inti=0;i<N;) { printf("%d->",[++i]); } printf("%d",[1]); printf("\n");sa();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年淮南師范學(xué)院單招職業(yè)技能測試題庫新版
- 2025年黑龍江交通職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完美版
- 第七單元《習(xí)作:-即景》教學(xué)設(shè)計(jì)-2024-2025學(xué)年五年級上冊語文統(tǒng)編版
- 2025年貴陽職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 2025年河北化工醫(yī)藥職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整版
- 2025年度電梯門套智能化門禁系統(tǒng)安裝合同
- 2025年度互聯(lián)網(wǎng)行業(yè)勞務(wù)派遣與技術(shù)研發(fā)合同
- 2025年度房地產(chǎn)投資信托基金房屋回購安排協(xié)議
- 2025年度房屋出售代理市場拓展協(xié)議
- 2025年度公司停車場車輛停放管理及賠償協(xié)議
- 鐵皮板房拆除施工協(xié)議書
- 鐵路工程施工組織設(shè)計(jì).ppt
- 介入科制度匯編
- 電子技術(shù)基礎(chǔ)與技能-(3)
- 部編版四年級下冊語文第二單元課文教材分析及全部教案
- 工程造價(jià)專業(yè)畢業(yè)實(shí)習(xí)報(bào)告
- 刑釋解教人員安置幫教工作檔案
- 《病理學(xué)》教案
- 綜合日語第二冊練習(xí)冊(修訂版)答案精編版
- 公眾責(zé)任保險(xiǎn)實(shí)用教案
- 吳齊南先生生平
評論
0/150
提交評論