


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、遺傳算法程序設(shè)計探討 摘 要本文通過對基本遺傳算法添加初始化啟發(fā)信息、改進(jìn)交叉算子和利用本身所固有的并行性構(gòu)架粗粒度并行遺傳算法等方法提高了遺傳算法的收斂性及其尋優(yōu)能力。 關(guān)鍵詞 遺傳算法;TSP;交叉算子 1 引言 遺傳算法是模擬生物在環(huán)境中的遺傳和進(jìn)化過程而形成的一種自適應(yīng)全局優(yōu)化概率搜索算法??偟恼f來,遺傳算法是按不
2、依賴于問題本身的方式去求解問題。它的目標(biāo)是搜索這個多維、高度非線性空間以找到具有最優(yōu)適應(yīng)值(即最小費用的)的點1。 基本遺傳算法是一個迭代過程,它模仿生物在自然環(huán)境中的遺傳和進(jìn)化機(jī)理,反復(fù)將選擇算子、交叉算子和變異算子作用于種群,最終可得到問題的最優(yōu)解和近似最優(yōu)解。 2 遺傳算法程序設(shè)計改進(jìn)比較2.1 基本遺傳算法對TSP問題解的影響 本文研究的遺傳算法及改進(jìn)算法的實現(xiàn)是以C+語言為基礎(chǔ),在Windows2000的版本上運行,其實現(xiàn)程序是在Microsoft Visual Stadio 6.0上編寫及運行調(diào)試的。
3、60; 1) 遺傳算法的執(zhí)行代碼 m_Tsp.Initpop(); /種群的初始化 for(int i=0;i<m_Tsp.ReturnPop();i+) m_Tsp.calculatefitness(i); /各個個體的適應(yīng)值 m_Tsp.statistics();
4、 /統(tǒng)計最優(yōu)個體 while(entropy>decen|variance>decvar)/m_Tsp.m_gen<100) /將新種群更迭為舊種群,并進(jìn)行遺傳操作 m_Tsp.alternate(); /將新種群付給舊種群 m_Tsp.generation(); /對舊種群進(jìn)行遺傳操作,產(chǎn)生新種群 m_Tsp.m_gen+; m_Tsp.statistics()
5、; /對新產(chǎn)生的種群進(jìn)行統(tǒng)計 2) 簡單的遺傳算法與分支定界法對TSP問題求解結(jié)果的對比 遺傳算法在解決NPC問題的領(lǐng)域內(nèi)具有尋找最優(yōu)解的能力。但隨著城市個數(shù)的增加,已沒有精確解,無法確定遺傳算法求解的精度有多高。一般情況下,當(dāng)?shù)鷶?shù)增大時,解的精度可能高,但是時間開銷也會增大。因此可以通過改進(jìn)遺傳算法來提高搜索能力,提高解的精度。 表1 10個城市的TSP問題求解結(jié)果數(shù)據(jù)
6、160; 算法 試驗結(jié)果簡單遺傳算法分支定界法最佳解時間精確解時間試驗12448.6100375s 2448.610037 00:07:30試驗22448.61003713s試驗32448.6100379s試驗42459.54305410s試驗52459.5430547s 2.2 初始化時的啟發(fā)信息對TSP問題解的影響 1) 初始化啟發(fā)信息 在上述實驗算法的基礎(chǔ)上,對每一個初始化
7、的個體的每五個相鄰城市用分支界定法尋找最優(yōu)子路徑,然后執(zhí)行遺傳算法。 2) 遺傳算法與含有啟發(fā)信息的遺傳算法求解結(jié)果的對比 當(dāng)城市數(shù)增至20個時,用分支定界法已經(jīng)不可能在可以接受的時間內(nèi)得到精確的解了,只能通過近似算法獲得其可接受的解。試驗設(shè)計中算法的截止條件:固定迭代1000代。表2中的平均最優(yōu)解為經(jīng)過多次試驗(10次以上)得到的最優(yōu)解的平均值,最優(yōu)解的出現(xiàn)時間為最優(yōu)解出現(xiàn)的平均時間,交叉操作次數(shù)為最優(yōu)解出現(xiàn)時交叉次數(shù)的平均值。 表2 20個城市的TSP問題求
8、解結(jié)果數(shù)據(jù) 算法交叉操作 次數(shù)最優(yōu)解 出現(xiàn)時間平均 最優(yōu)解簡單遺傳算法80244.479.4s1641.8含初始化啟發(fā)信息的GA79000.237.4s1398.9 從表2中可以看出,當(dāng)初始種群時引入啟發(fā)信息將提高遺傳算法的尋優(yōu)能力。同時縮短了遺傳算法的尋優(yōu)時間和問題的求解精度。 2.3 交叉算子對TSP問題解的影響 1)循環(huán)貪心交叉算子的核心代碼 for(i=1;i<m_Chrom;i+) fla
9、g=0; city=m_newpopfirst.chromi-1; /確定當(dāng)前城市 j=0; while(flag=0&&j<4) sign=adjcitycityj; /adjcity數(shù)組的數(shù)據(jù)為當(dāng)前城市按順序排列的鄰接城市 flag=judge(first,i,sign); /判斷此鄰
10、接城市是否已經(jīng)存在待形成的個體中 j+; if(flag= =0) /如果所有鄰接城市皆在待擴(kuò)展的個體中 while(flag= =0) sign=(int)rand()/(RA
11、ND_MAX/(m_ Chrom-1); /隨機(jī)選擇一城市 flag=judge(first,i,sign); if(flag=1) m_newpopfirst.chromi=sign; 2)問題描述與結(jié)果比較 &
12、#160; 下面筆者用經(jīng)典的測試遺傳算法效率的Oliver TSP問題來測試循環(huán)貪心交叉算子的解的精度和解效率。Oliver TSP問題的30個城市位置坐標(biāo)如表3所示2。 表3 Oliver TSP問題的30個城市位置坐標(biāo) 城市編號坐標(biāo)城市編號坐標(biāo)城市編號坐標(biāo)1(87,7)11(58,69)21(4,50)2(91,83)12(54,62)22(13,40)3(83,46)13(51,67)23(18,40)4(71,44)14(37,84)24(24,42)5(64,60)15(41,94)25(25,38)6(68,58)16(2,99)26(41,26)7(83,69)17(7,64)27(45,21)8(87,76)18(22,60)28(44,35)9(74,78)19(25,62)29(58,35)10(71,71)20(18,54)30(62,32) 表4 貪心交叉與部分匹配交叉的比較(Oliver TSP問題的30個城市) 交叉算子交叉操作次數(shù)平均時
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育教學(xué)考試題及答案
- 學(xué)生布置作業(yè)管理制度
- 充電樁合伙人合同范本
- 地皮委托買賣合同范本
- 工程運輸分包合同范本
- 改造陽臺施工合同范本
- 機(jī)構(gòu)合作伙伴合同范本
- 單位幫員工買社保協(xié)議書
- 司機(jī)學(xué)生乘車安全協(xié)議書
- 房屋出租解除合同范本
- 沈陽師范大學(xué)教學(xué)實驗平臺建設(shè)規(guī)劃
- 巴西詳細(xì)教案
- 乙型肝炎病毒表面抗原膠體金法說明書
- 基于PLC控制的物料分揀系統(tǒng)設(shè)計
- 人教部編版七年級歷史下冊教材插圖匯總
- 濟(jì)南市城鄉(xiāng)建設(shè)用地增減掛鉤試點項目管理辦法
- 建筑工程竣工驗收報告山西
- 啟閉機(jī)房腳手架工程施工專項方案
- 變更監(jiān)事模板
- 標(biāo)準(zhǔn)工程量清單細(xì)目編號公路工程
- 管道安裝工藝質(zhì)量培訓(xùn)(共39頁).ppt
評論
0/150
提交評論