freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

遺傳算法在求解tsp問題—計(jì)算機(jī)畢業(yè)設(shè)計(jì)-閱讀頁(yè)

2024-12-21 15:32本頁(yè)面
  

【正文】 else code[x][y]=rand()%(Pathlengthy)+1。xPOPSIZE。 for(x=0。x++) { printf(%3d ,x+1)。yPathlength。 printf(\n)。 對(duì)遺傳基因進(jìn)行編碼時(shí) , 要考慮到是否適合或有利于交叉和變異操作 。 在求解 TSP問題時(shí) , 采用基于二進(jìn)制的遺傳算法 , 基于二進(jìn)制的遺傳算法不利于交叉和變異操作 。 順序表示是指所有城市依次排列構(gòu)成一個(gè)順序表 (order list), 對(duì)于一條旅程 , 可以依旅行經(jīng)過順序處理每個(gè)城市 , 每個(gè)城市在順序表中的順序就是一個(gè)遺傳因子的表示 , 每處理完一個(gè)城市 , 從順序表中去掉該城市。 例如 , 順序表 C = (1, 2, 3, 4, 5, 6, 7, 8, 9),一條旅程為 517894632。 但是這種表 示方法 , 在進(jìn)行單點(diǎn)交叉的時(shí)候 , 交叉點(diǎn)右側(cè)部分的旅程發(fā)生了隨機(jī)變化 , 但是交叉點(diǎn)左側(cè)部分的旅程未發(fā)生改變 , 由于存在這樣的缺點(diǎn) , 所以順序表示的方法的適用性存在一定的問題。 int i,j,k。iMaxPathlength。 for(i=0。i++) { k=0。jPathlength+1。 b[j]=1。 } } else k++。 遺傳算法中一個(gè)要求解決的問題是如何防止“早熟”收斂現(xiàn)象 。 Rudolhp C[4]提出采用精英選擇策略即保持群體中最好的個(gè)體不丟失 , 以保證算法的收斂性 。謝勝利等提出濃度控制策略 , 當(dāng)某種個(gè)體的濃度超過給定的濃度閥值時(shí)減少該種個(gè)體的數(shù)量 , 使之控制在給定的濃度閥值之內(nèi) , 并隨機(jī)產(chǎn)生新的個(gè)體以補(bǔ)足種群的規(guī)模 , 他們通過實(shí)驗(yàn)證明該策略很好的解決了遺傳算法中群體的多樣性問題 。 輪盤賭選擇 (roulette wheel selection) 個(gè)體適應(yīng)度按比例轉(zhuǎn)換為 選中概率,將輪盤分成 n個(gè)扇區(qū)進(jìn)行 n次選擇,產(chǎn)生n個(gè) 0~ 1之間的隨機(jī)數(shù)相當(dāng)于轉(zhuǎn)動(dòng) n次輪盤,可以獲得 n次轉(zhuǎn)盤停止時(shí)指針位置,指針停放在某一扇區(qū),該扇區(qū)代表的個(gè)體被選中。 最優(yōu)保存策略選擇 (E litist selection) 在遺傳算法的運(yùn)行過程中,通過對(duì)個(gè)體進(jìn)行交叉、變異等遺 傳操作而不斷產(chǎn)生新的個(gè)體,雖然隨著群體的進(jìn)化過程會(huì)產(chǎn)生出越來越多的優(yōu)良個(gè)體,但由于遺傳操作的隨機(jī)性,它們也有可能破壞掉當(dāng)前群體中適應(yīng)度最好的個(gè)體。 最優(yōu)保存策略進(jìn)化模型的具體操作過程: (1)找出當(dāng)前群體中適應(yīng)度最高的個(gè)體和適應(yīng)度最低的個(gè)體。 (3)用迄今為止最好的個(gè)體替換掉當(dāng)前群體中最差的個(gè)體。 for(x=0。x++) code_path(x)。 for(x=0。x++) rate(x)。 } code_path(int n) /*code change into path */ { int b[MaxPathlength]。 for(i=0。i++) b[i]=0。iPathlength。 for(j=0。j++) { if((b[j]==1)) k++。 b[j]=1。 } } } } } rightvalue(int n) { int i,j。 rightvalue_sum=0。in。 for(j=0。j++) length=l[population[i].Path[j]1][population[i].Path[j+1]1]+length。 } for(i=0。i++) rightvalue_sum=population[i].value+rightvalue_sum。 } mode() { int i,j。 int temp_value。 int temp_Path[MaxPathlength]。jPOPSIZE。iPOPSIZE。 population[j].value=population[i].value 。 temp_fitness=population[j].fitness。 population[i].fitness=temp_fitness。xPathlength。 population[j].Path[x]=population[i].Path[x] 。 } } } } } 交叉算子 本文用于旅行商問題求解的交叉算子用的是常規(guī)單點(diǎn)交叉和部分映射交叉。單點(diǎn)交叉運(yùn)算的示意圖如下: A:0110011 A 1 :0110001 B:1001101 B 1 :1001111 交叉點(diǎn) one_point_crossover(int a,int b) { int i,j。 for(i=0。i++) path_code(i)。iPOPSIZE。jPathlength。 printf(\n)。 for(i。i++) { t=code[a][i]。 code[b][i]=t。整個(gè)交叉分兩步進(jìn)行:首先對(duì)個(gè)體編碼串進(jìn)行常規(guī)的雙點(diǎn) 交叉操作,然后根據(jù)交叉區(qū)域內(nèi)各個(gè)基因值之間的映射關(guān)系來修改交叉區(qū)域之外的各個(gè)基因座的基因值。 (2)對(duì)交叉區(qū)域中的每個(gè)基因座P(P=I+1, I+2 … ,J) ,體T X 中去求出 tQ X =tP Y 的基因座Q,在個(gè)體T Y 中求出 tR Y = tP y的基因座R,然后相互交換基因值 tQ X 和 tP Y , tRY 和 tP y所得的結(jié)果即為T X 1 ,T Y 1 。 PMX的算法描述: partially_mapped_crossover(int a,int b) { int i,j。 int c[MaxPathlength]。*/ p1=rand()%Pathlength。 while(abs(p2p1)2) { /*srand( (unsigned)time( NULL ) )。 } if(p1p2) { temp=p1。 p2=temp。i=p2。jPathlength。 c[i]=population[a].Path[i]。 break。i=p2。jPathlength。 population[b].Path[i]=c[i]。 } } } } 變異算子 遺傳算法強(qiáng)調(diào)的是交叉的功能 。 針對(duì) TSP問題 , 陳國(guó)良等 [4]介紹了四種主要的變異技術(shù): (1) 點(diǎn)位變異 , 變異僅以一定的概率 (通常很小 ),對(duì)串的某些位做值的變異。 i=rand()%(POPSIZE)。 p=rand()%(Pathlengthj)+1。 code[i][j]=p。iPOPSIZE。 } (2) 逆轉(zhuǎn)變異 , 在編碼串中 , 隨機(jī)選擇兩點(diǎn) , 再將這兩點(diǎn)內(nèi)的子串按反序插入到原來的位置中。 int x,temp,p1,p2。 x=rand()%(POPSIZE)。 p2=rand()%(Pathlength2)+2。 p2=rand()%Pathlength。 p1=p2。 } for(i=p1+1。i++) { insert[ip11]=population[x].Path[i]。i=p1+1。 } } (3) 對(duì)換變異 , 隨機(jī)選擇串中的兩點(diǎn) , 交換其碼值。 int x,temp,p1,p2。 x=rand()%(POPSIZE)。 p2=rand()%(Pathlength1)+1。 } if(p1p2) { temp=p1。 p2=temp。 population[x].Path[p1]=population[x].Path[p2]。 } (4) 插入變異 , 從串中隨機(jī)選擇 1個(gè)碼 , 將此碼插入隨機(jī)選擇的插入點(diǎn)之后 。 int x,temp,p1,p2。 x=rand()%(POPSIZE)。 p2=rand()%(Pathlength2)+2。 } if(p1p2) { temp=p1。 p2=temp。 for(i=p2。i) population[x].Path[i]=population[x].Path[i1]。 } 此外 , 對(duì)于變異操作還有一些變體形式 , 如 Sushil Jouis[19]提出的貪心對(duì)換變異 (greedyswap mutation), 其基本思想是從一個(gè)染色體中隨機(jī)的選擇兩個(gè)城市 (即兩個(gè)碼值 ), 然后交換它們 , 得到新的染色體 , 以旅程長(zhǎng)度為依據(jù)比較交換后的染色體與原來的染色體的大小 , 保留旅程長(zhǎng)度值小的染色體 。 例如,若有父?jìng)€(gè)體 P( 1 4 5 2 3 6 ), 假設(shè)隨機(jī) 選擇的城市是 4, 3, 那么產(chǎn)生的新個(gè)體為Offspring(1 4 3 2 5 6)。 這種方法與貪心對(duì)換變異有相同的思想 , 但是更易擴(kuò)張更有效率 。 TSP的混和遺傳算法 隨著遺傳算法的發(fā)展 ,遺傳算法廣泛的與其它算法相結(jié)合 , 產(chǎn)生許多混合遺傳算法 (Hybrid geic algorithm)。 將這種算法應(yīng)用于 TSP問題取得了滿意的結(jié)果 , 把局部?jī)?yōu)化的高效性與遺傳算法的魯棒性很好的結(jié)合起了 。 Jog等 [18]提出啟 發(fā)式算法 (Heuristic Algorithm)也取得了很好的效果。 選擇 1: Optimization selection( one best selected and others mate each other);選擇 2: Optimization selection (one best selected mate with others) ;交叉 1 : one_point_crossover ;交叉 2 :partially_mapped_crossover;遺傳 1: simple_mutation;遺傳 2: inversion_mutation;遺傳 3:insert_mutation; 4: change_mutation。針對(duì)上述 10點(diǎn)的測(cè)試數(shù)據(jù),在 Pc=,PM=,100個(gè)種群,運(yùn)行最大代數(shù)為 200的條件下,利用 ,用方法 112進(jìn)行測(cè)試,出現(xiàn)最好解的代數(shù)、權(quán)值如下 表 43 112方法的測(cè)試結(jié)果 0501001502002503001 2 3 4 5 6 7 8 9 10產(chǎn)生最優(yōu)解的代數(shù)最優(yōu)值代數(shù) 權(quán)值1101001000代數(shù)權(quán)值代數(shù) 23 66 18 19 49 21 51 83 24 5權(quán)值 24 24 23 22 22 22 24 25 23 231 2 3 4 5 6 7 8 910 圖 42 方法 112的測(cè)試結(jié)果 圖 43 方法 112的測(cè)試結(jié)果 產(chǎn)生最優(yōu)解的平均代數(shù):( 23+66+18+191+49+21=51+83+24+5) /10= 路徑的平均權(quán)值:( 246+246+232+229+228+228+242+252+237+237) /10= 相對(duì)誤差:( ) /226*100%=% 在 Pc=,PM=, 100個(gè)種群,運(yùn)行最大代數(shù)為 200的條件下,利用 的測(cè)試數(shù)據(jù),用方法 113進(jìn)行測(cè)試,出現(xiàn)最好解的代數(shù)、權(quán)值如下: 0501001502002503001 2 3 4 5 6 7 8 9 10代數(shù)權(quán)值 圖 44 方法 113的測(cè)試結(jié)果 圖 45 方法 113的測(cè)試結(jié)果 產(chǎn)生最優(yōu)解的平均代數(shù):( 127+57+183+117+70+52+121+132+2+59) /10= 路徑的平均權(quán)值:( 246+233+232+244+237+233+258+257+244+257) /10= 相對(duì)誤差:( ) /226*100%=8% 在 Pc=, PM=, 100個(gè)種群,運(yùn)行最大代數(shù)為 200的條件下,利用 的測(cè)試數(shù)據(jù),用方法 124進(jìn)行測(cè)試,出現(xiàn)最好解的代數(shù)、權(quán)值如下: 050100150200215220225230235240245250255260代數(shù) 權(quán)值代數(shù) 12 57 18 11 70 52 12 13 2 59權(quán)值 24 23 23 24 23 23 25 25 2
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1