999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

混合遺傳算法解決單目標旅行商問題的研究

2013-12-06 06:49:46袁成林
大眾科技 2013年6期
關鍵詞:實驗

袁成林

(1.廣西大學計算機與電子信息學院,廣西 南寧 530004;2.廣西醫科大學基礎醫學院,廣西 南寧530021)

遺傳算法是一種基于進化策略的優化算法[1],被廣泛使用在組合優化問題中。但是遺傳算法在解決問題的時候也有諸多不足,首先是在早期的搜索中常常丟失種群的多樣性[2]。在單目標優化中,對于種群的適應性方面的研究很多,多樣性保持方面常常用的手段是小生境方法。其次由于遺傳算法的局部能力差,也有學者采用其他局部搜索算法來構造混合遺傳算法[3],這些方法對在種群適應性方面是有效的,但是在種群多樣性方面卻不足,對于有的優化問題來說,多樣性保持對搜索最優解有著重要的作用。最后在旅行商問題中普通的交叉算子會破壞要交換的基因片段,針對這個問題本文提出了對應連通子圖交叉(Corresponding Connected Subgraph Crossover,CCSC),結合LK局部搜索和小生境等操作構造一種基于CCSC的混合遺傳算法(CHGA)。通過幾個實例的計算和對比表明,算法的設計是有效的,求解質量也有較大提高。

1 對應連通子圖交叉

交叉算子是遺傳算法中最重要的部分,既可以使個體發生變化,又能保留父體的優秀基因片段,使種群向著理想的方向進化。對于旅行商問題通常采取自然編碼,即每個基因位對應一個城市的號碼。例如1-2-3-4-5-6表示依次經過城市1到6最后回到1。這種編碼容易理解,效率高。但是在這種編碼方式下普通的交叉算法就不再適用了,因為可能產生沒有意義的個體。圖1中兩條可用路徑經過交叉操作以后,產生的1-1-5-6-3-6路徑是沒有意義的。為了解決這個問題,很多學者提出了適用于TSP的交叉算子,像順序插入法,啟發式交叉等,但是這些算法會打亂交叉片段中的基因位置因而不能保存父體的優秀基因片段。

圖1 普通交叉操作產生的不可用路徑

基于以上分析,本文提出一種新的交叉算子:對應連通子圖交叉(CCSC)。這種交叉方法可以做到嚴格的交叉,即子代的基因都是從父代繼承所得,所有基因片段都可以在兩個父體中找到。CCSC通過合并兩條父體路徑,構造連通圖G。對G中的對應連通子圖進行搜索,然后進行交叉,交叉策略可以是:隨機選擇某個或若干個對應連通子圖進行交換,還可以采用貪婪選擇對每個對應連通子圖進行多次搜索,找到最短個體,這幾種方法時間復雜度都在O(n)之內,本文權衡算法效率和求解效果,決定采用隨機選擇若干個對應連通子圖進行交換的交叉策略。明顯可以看出若對應連通子圖的個數大于等于1,CCSC就可以創造兩個以上的后代個體。若有k個對應連通子圖,則可以產生2k+1-2個個體,減2是因為有兩個個體和父體是相同的。

對應連通子圖:合并兩條父體路徑,構造連通圖G,在G中,刪除兩條父體路徑的重合邊后,得到圖G1,G1的某個連通子圖中的節點在兩條父體中均為連續的基因片段,此連通子圖稱為對應連通子圖。

圖2-2中的a-b-c-d,a-c-b-d和g-h-j-i-k,g-i-h-j-k就是兩對對應連通子圖:

圖2 對應連通子圖示意

尋找對應連通子圖的流程如下:

(1)刪除圖G中兩條路徑重合的邊。

(2)建立隊列Q,把度為1的n個節點放在隊頭,設定計數器K=n。

(3)從隊列的n+1個節點開始進行廣度遍歷,找出所有連通子圖,把遍歷過的點前移,記錄連通子圖結點個數ti,直至所有節點操作完成。

(4)對結點個數ti大于等于3的連通子圖i,對其父體進行檢查如果連通子圖的節點在兩父體中均為連續的基因片段,則該連通子圖為一個對應連通子圖g,記錄g。

(5)如果符合要求的連通子圖都已經搜索就退出程序,否則返回步驟4。

2 混合遺傳算法CHGA的實現

2.1 選擇算子

選擇算子是算法中關鍵的一環,可以選擇優秀個體進入下一代進行交叉和變異操作,本文采用的是輪盤賭法,根據個體的適應度進行選擇,適應度越大個體被選擇的概率就越大,并且可以保留少量適應度較差的個體,增加種群多樣性。

2.2 變異和交叉算子

變異:本文采用兩點隨機交換的變異操作對種群進行擾動,跳出某些局部最優解。

交叉:本文采用第一節提出的對應聯通子圖交叉作為交叉算子。

2.3 小生境操作

經過輪盤賭選擇等操作后,適應度大的個體更容易進入新種群,種群里就會出現很多一樣或者很相似的個體,這樣就會導致算法早熟,結果陷入局部最優解,所以本文引入小生境操作來保持物種多樣性。

具體方法是:假設種群共有n個個體,首先計算個體i(i=1,2…n)和其他個體之間的小生境距離L(i,j)。在對個體i與其他所有個體的小生境距離L(i,j)求和,計算出個體i的小生境排序值循環這個步驟直到計算出所有si。升序排列si后,用隨機產生的個體代替si最高的n個個體,算法的時間復雜度是O(n2)。

其中L(i,j)的求法是,假設TSP共有N個城市,取個體i的第k(k=1,2,3…N)個基因位城市i(k),在個體j中找到城市i(k)的位置t,對i(k)和j(t)左右兩邊城市號做同或操作∶L(i,j)=i(k+1)⊙j(t+1)+ i(k+1)⊙j(t-1)+ i(k-1)⊙j(t+1)+ i(k-1)⊙j(t-1)。因為 0≤L(i,j)≤2,所以 0≤si≤2n。小生境排序值si越大說明個體i周圍的個體越多。對種群的非精英個體進行小生境操作,起到了保留精英又增加種群多樣性的作用。

2.4 局部搜索

在CHGA中局部搜索算法起著十分重要的作用。它可以使種群迅速向著希望的方向進化。它的另一個作用是使 CHGA算法的第一代開始就能夠找到更多的對應連通子圖,提高算法的效率,本文采用LK算法[4]作為局部搜索。

在本文中局部搜索的另一個作用是使算法的第一代開始就能夠找到等多的對應連通子圖(CCS),通過實驗測試 CCSC結合局部搜索算法可以產生的對應連通子圖的大致個數,實驗采用TSPLIB中的att532,nrw1379 和 u1817三個算例,用3-OPT,3-OPT和MO-LK算法對50個隨即路徑進行測試,平均實驗結果如表1。通過實驗發現2-OPT與CCSC結合在90%的情況下可以產生可用個體,也就是至少有一對對應連通子圖而,結合3-OPT和LK算法的CCSC產生可用解的概率達到了將近100%。

表1 不同局部搜索找到的對應連通子圖個數

3 算例實驗

3.1 實驗環境

為驗證所設計算法的有效性,基于如下實驗環境進行相關實驗:聯想臺式機,其配置為:

(1)CPU:AMD 64 2X 4400+;

(2)內存:2 G DDR2;

(3)操作系統:Windows XP

程序以 VC++2008編寫及編譯,實驗使用數據取自TSPLIB。算法各參數如表1所示。實驗結果均為運行算法10次后計算得到的平均值、最優值以及最差值。

3.2 實驗參數

表2 混合遺傳算法算法的參數設置

3.3 實驗結果

本文的算例采用 TSPLIB數據庫中的 Att48、Eil51、Eil76、Kroa100、 Ch130 、Tsp225、Ch 150等6個測試對象,每個算例進行20次計算,結果取平均值,并與文獻[5,6]進行了對比。具體數據如下:

表3 混合遺傳算法算法的計算結果

圖3 算例Eil51收斂情況

實驗結果表明,本文所做改進效果明顯。100以內規模的問題每次都可以計算出TSPLAB最優解,而且速度上相比文獻所述也有優勢。100以上問題在 20次實驗中可以計算出TSPLAB最優解,而且平均值的誤差也在1%以內。在下一步工作中,可以著力改善算法的計算速度,并且向更大規模的問題發起挑戰。

[1] Holland John H. Adaptation in natural andartificial systems: an introductory analysis with applications to biology, control, and artificial intelligence[J]. USA: University of Michigan, 1975.

[2] 馬良.旅行推銷員問題的算法綜述[J].數學實踐與認識,2000,32(2):156-165.

[3] 葛繼科,丘玉輝,等.遺傳算法研究綜述[J],計算機應用研究,2008,25(10): 2911-2917.

[4] Helsgaun K. General k-opt submoves for the Lin–Kernighan TSP heuristic[J]. Mathematical Programming Computation, 2009,1(2-3): 119-163.

[5] 孫凱,吳紅星,王浩,丁家棟.蟻群與粒子混合算法求解TSP問題[J].計算機工程與應用,2012,48(34):60-63.

[6] 李哲,夏立,莊浩俊,董紅生.MMAS_EC 算法求解旅行商問題[J].計算機工程與應用,2011,47(9):41-47.

猜你喜歡
實驗
我做了一項小實驗
記住“三個字”,寫好小實驗
我做了一項小實驗
我做了一項小實驗
記一次有趣的實驗
有趣的實驗
小主人報(2022年4期)2022-08-09 08:52:06
微型實驗里看“燃燒”
做個怪怪長實驗
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 97se综合| 97视频精品全国在线观看| 久久一本精品久久久ー99| 免费看a毛片| 欧美性久久久久| 一区二区在线视频免费观看| 毛片视频网| 亚洲国产综合精品一区| 国产一区自拍视频| 人妻丰满熟妇av五码区| 鲁鲁鲁爽爽爽在线视频观看| 久久国产精品无码hdav| 国产中文一区二区苍井空| 精品久久久无码专区中文字幕| 日韩中文无码av超清| 成人福利一区二区视频在线| 国产在线精品香蕉麻豆| 亚洲永久精品ww47国产| 全裸无码专区| 国产免费羞羞视频| 欧美色图久久| 日韩国产亚洲一区二区在线观看| 中文字幕天无码久久精品视频免费| 国产在线自揄拍揄视频网站| 国产成人永久免费视频| 精品一区二区三区无码视频无码| 一级毛片中文字幕| 97人妻精品专区久久久久| 亚洲码在线中文在线观看| 伊人色天堂| 亚洲人成网站在线观看播放不卡| 国产欧美在线观看一区| 五月天天天色| 日韩少妇激情一区二区| 美女免费黄网站| 国产第一页亚洲| 亚洲精品色AV无码看| 国产一区二区三区免费观看| 国产亚洲精品97AA片在线播放| 中文字幕亚洲精品2页| 国产精品页| 第一页亚洲| 日韩在线影院| 91无码视频在线观看| 毛片视频网址| 九九热精品免费视频| 亚洲成人高清无码| 成年免费在线观看| 欧美综合在线观看| 久99久热只有精品国产15| 亚洲色精品国产一区二区三区| 国产精品xxx| 亚洲三级色| 18禁影院亚洲专区| 欧美日韩v| 久久免费视频6| 午夜福利在线观看成人| 国产福利拍拍拍| 久久影院一区二区h| 伊人丁香五月天久久综合| 在线观看国产小视频| 亚洲天堂.com| 色综合天天视频在线观看| 波多野结衣视频网站| 麻豆国产精品一二三在线观看| 亚洲AV无码一区二区三区牲色| 成人国内精品久久久久影院| 91精品啪在线观看国产60岁| 久久大香香蕉国产免费网站| 香蕉在线视频网站| 精品亚洲麻豆1区2区3区 | 国产亚洲欧美在线视频| 国产玖玖玖精品视频| 操美女免费网站| 午夜日b视频| 欧美日韩激情在线| 极品尤物av美乳在线观看| 国产精品男人的天堂| 喷潮白浆直流在线播放| 国产簧片免费在线播放| 成人午夜视频免费看欧美| 中文字幕永久在线观看|