2023年TSP問題的遺傳算法實驗報告_第1頁
2023年TSP問題的遺傳算法實驗報告_第2頁
2023年TSP問題的遺傳算法實驗報告_第3頁
2023年TSP問題的遺傳算法實驗報告_第4頁
2023年TSP問題的遺傳算法實驗報告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

TSP問題的遺傳算法實驗報告一實驗題目TSP問題的遺傳算法實現(xiàn)二實驗目的熟悉和掌握遺傳算法的基本概念和基本思想;加深對遺傳算法的理解,理解和掌握遺傳算法的各個操作算子;理解和掌握運用遺傳算法進行問題求解的基本技能。三實驗規(guī)定1以10/30個結點的TSP問題為例,用遺傳算法加以求解;2掌握遺傳算法的基本原理、各個遺傳操作和算法環(huán)節(jié);3能求出問題最優(yōu)解,若得不出最優(yōu)解,請分析因素;4規(guī)定界面顯示每次迭代求出的局部最優(yōu)解和最終求出的全局最優(yōu)解。四數(shù)據(jù)結構請說明染色體個體和群體的定義方法。typedefstruct{?intcolony[POPSIZE][CITY_NUM+1];//城市種群,默認出發(fā)城市編號為0,則城市編號的最后一個城市還應當為0每CITY_NUM個城市的排列組合為一個染色體 doublefitness[POPSIZE];//途徑適應值 doubleDistance[POPSIZE];//途徑實際長度 intBestRooting[CITY_NUM+1];//最優(yōu)城市途徑序列 doubleBestFitness;//最優(yōu)途徑適應值 doubleBestValue;//最優(yōu)途徑長度}TSP,*PTSP;五實驗算法1說明算法中對染色體的編碼方法,適應度函數(shù)定義方法;染色體的編碼方法:0~9一個排列組合為一條染色體。適應度函數(shù)的定義方法:取途徑長度的倒數(shù)。voidCalFitness(PTSPcity,intm){?inti,j,t=0; intstart,end;?for(i=0;i<POPSIZE;i++){//求適應值 ?city->Distance[i]=0;??for(j=1;j<=CITY_NUM;j++){???start=city->colony[i][j-1];end=city->colony[i][j]; ?city->Distance[i]=city->Distance[i]+CityDistance[start][end];??} city->fitness[i]=N/(city->Distance[i]);?}}2采用的選擇、交叉、變異操作算子的具體操作;voidSelect(PTSPcity){//選擇算子?inti,j;?doublesum=0,r,t; doublep[POPSIZE],q[POPSIZE+1];?intcopey[POPSIZE][CITY_NUM+1];?q[0]=0;?for(i=0;i<POPSIZE;i++)? sum+=city->fitness[i]; for(i=0;i<POPSIZE;i++)?{??p[i]=city->fitness[i]/sum;? q[i+1]=q[i]+p[i]; } for(i=0;i<POPSIZE;i++) { ?t=rand()%(10000); ?r=t/10000; for(j=0;j<POPSIZE;j++) ??if(r<=q[j+1]) ??{ ??*copey[i]=*city->colony[j];?? ?break;?? } }?for(i=0;i<POPSIZE;i++) *city->colony[i]=*copey[i];}voidAOX(PTSPcity,intn,intm)//改善啟發(fā)式算法{?intA[CITY_NUM-1],B[CITY_NUM-1];?inti,j; intk=1+CROSS_NUM,t=1+CROSS_NUM; for(i=0;i<CITY_NUM-1;i++)?{??A[i]=city->colony[n][i+1]; ?B[i]=city->colony[m][i+1];?} for(i=3;i<CROSS_NUM+3;i++) { ?city->colony[n][i-2]=B[i]; ?city->colony[m][i-2]=A[i];?} for(i=0;i<CITY_NUM-1;i++) { ?for(j=0;j<CROSS_NUM;j++)? ?if(A[i]==B[j+3])? break; ?if(j==CROSS_NUM)???city->colony[n][k++]=A[i];? for(j=0;j<CROSS_NUM;j++)?? if(B[i]==A[j+3])? ?break;??if(j==CROSS_NUM) ??city->colony[m][t++]=B[i];?}}intcheck1(intr[],intn)//判重{?inti; for(i=0;i<n;i++) if(r[i]==r[n])??{???returntrue; ?}?returnfalse;}voidCross(PTSPcity,doublepc){//交叉概率是p?inti; intr[20];?for(i=0;i<POPSIZE*pc;i++)?{??r[i]=rand()%(POPSIZE);? while(check1(r,i))? r[i]=rand()%(POPSIZE); }?for(i=0;i<POPSIZE*pc;i=i+2)??AOX(city,r[i],r[i+1]);}voidXCH(PTSPcity,intn)//對換變異{?intr,t;?intc; r=rand()%(CITY_NUM-1)+1; t=rand()%(CITY_NUM-1)+1;?while(r==t) t=rand()%(CITY_NUM-1)+1;?c=city->colony[n][r];?city->colony[n][r]=city->colony[n][t]; city->colony[n][t]=c;}voidMutation(PTSPcity,doublepm){//變異概率是pm?inti; intr[20]; for(i=0;i<POPSIZE*pm;i++) { ?r[i]=rand()%(POPSIZE); while(check1(r,i)) r[i]=rand()%(POPSIZE); ?XCH(city,r[i]);?}}3實驗中采用的算法參數(shù)的最佳選擇

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論