国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

改進遺傳算法在TSP問題中的應用

2017-01-21 15:58:47蔣然
軟件導刊 2016年12期
關鍵詞:體系結構遺傳算法

摘 要:旅行商問題是典型的NP組合優(yōu)化問題。提出一種旅行商問題求解應用上的改進遺傳算法。引入貪心算法優(yōu)化初始種群,在輪盤賭選擇基礎上,融入最優(yōu)保存策略和摻雜算子進行選擇操作,以保證群體的多樣性;基于兩點三段隨機交叉算子優(yōu)化交叉結果,基于啟發(fā)式倒位變異算子提高算法的收斂速度;給出了求解旅行商問題系統(tǒng)的體系結構。實驗結果表明,改進的遺傳算法具有更好的尋優(yōu)能力。

關鍵詞:旅行商問題;遺傳算法;貪心算法;組合優(yōu)化;體系結構

DOIDOI:10.11907/rjdk.162168

中圖分類號:TP319

文獻標識碼:A文章編號:1672-7800(2016)012-0127-03

0 引言

旅行商問題(Traveling Salesman Problem,TSP)是典型的NP組合優(yōu)化問題,具有重要的理論價值和良好的應用背景,諸如半導體電路設計、公路網絡建設、飛機航線安排、連鎖店貨物配送路線等,通過TSP建模均可解決。求解TSP問題方法包括精確算法、近似算法和智能算法。文獻[1]采用遺傳算法基礎上派生出來的分布估計算法求解TSP問題,并將種群進行分級處理,根據種群級別高低分別采用不同的策略進行交叉和變異操作;文獻[2]在基本遺傳算法基礎上引入外部最優(yōu)個體集,以增加群體多樣性,改善局部搜索能力,采用遞歸分治策略將遺傳算法并行化;文獻[3]采用改進的遺傳算法,按種群中個體適應度高低采用不同的交叉和變異算子;文獻[4]提出一種改進的遺傳算法,動態(tài)調整交叉和變異概率,以降低染色體近親繁殖可能,有效控制了進化過程;文獻[5]結合遺傳算法和模擬退火算法,提出了一種改進的模擬退火遺傳算法;文獻[6]將蟻群算法和遺傳算法融合,經過蟻群算法迭代獲得初始種群解集,再采用改進的遺傳算法尋優(yōu);文獻[7]在基本遺傳算法基礎上,提出改進型多宇宙量子交叉算子,利用不同宇宙間的信息交流提高算法的搜索效率。

上述求解TSP問題的研究效果很好,但都沒有提到有關求解系統(tǒng)的設計問題。本文不但對基本遺傳算法求解TSP問題進行分析并加以改進,還給出了求解TSP問題系統(tǒng)的體系結構。實驗結果表明,改進的遺傳算法具有更可靠的尋優(yōu)能力,求解系統(tǒng)實用性較好。

1 基本問題描述

1.1 TSP問題

TSP問題可描述為:一個旅行商要到n個城市推銷商品,從一個城市出發(fā),走一遍余下的n-1個城市再回到起點,要求所走的路程最短,即尋找一條巡回路徑C=(c1,c2,...,cn),使得下列目標函數(shù)最小[8]:

1.2 遺傳算法原理及應用

遺傳算法是一種隨機并行搜索算法,其基本思想是:首先對個體編碼,生成初始種群,然后開始進化,用適應度函數(shù)來判斷個體優(yōu)劣,優(yōu)秀的個體將獲得更多的選擇、交叉和變異機會,一直進化到滿足迭代的終止條件,從而得到最優(yōu)解。該算法具有全局尋優(yōu)能力強、計算過程簡單、處理并行性、魯棒性等優(yōu)點,在組合優(yōu)化問題、模式識別、圖像處理、調度問題等領域得到了廣泛應用[9]。

2 應用遺傳算法求解TSP問題

遺傳算法已經廣泛應用于求解組合化問題的近似最優(yōu)解方面,TSP問題是典型的組合優(yōu)化問題。應用遺傳算法求解TSP問題基本方法如下:(1)確定編碼方式。用遺傳算法求解TSP問題常用的編碼方式有二進制表示、順序表示、路徑表示、邊表示等,其中路徑表示因自然、直觀且易于加入啟發(fā)式信息,是應用最多的一種表示策略。(2)初始化種群。隨機產生初始個體,構成指定規(guī)模的初始種群,是應用遺傳算法求解TSP問題的常用方法。(3)計算種群中每個個體的適應度值。在TSP問題中,目標函數(shù)f(C)=∑n-1i=1d(ci,ci+1)+d(cn,c1)是路徑總長度,適應度函數(shù)通常取目標函數(shù)的倒數(shù),即F(C)=1/f(C)。(4)選擇算子。目前常用的選擇算子有比例選擇、最優(yōu)保存策略、基于聯(lián)賽的選擇等。(5)交叉算子。按照某一交叉概率pc選擇若干父體并進行配對。針對路徑表示的TSP遺傳算法,常用的交叉算子有部分匹配交叉、貪婪交叉、次序交叉和循環(huán)交叉等。(6)變異算子。按照某一變異概率pm隨機確定變異個體,常用的變異算子包括倒位變異、插入變異、移位變異和2-opt變異等。(7)迭代終止條件。若算法滿足迭代的終止條件,則停止迭代;否則轉至第(3)步,利用適應度函數(shù)重新計算每個個體的適應度值。基本遺傳算法存在易陷入局部最優(yōu)、收斂速度慢和優(yōu)化精度低等缺點。改進遺傳算法的目標是在提高算法收斂速度的同時確保種群多樣性,從而使尋優(yōu)結果接近最優(yōu)解[10]。

3 求解TSP問題的改進遺傳算法

3.1 個體路徑編碼表示

路徑表示法是TSP問題最直接的表示方法,本文算法采用此方法進行個體編碼,每個個體就是一次訪問城市的順序排列。編碼串(x1,x2,...,xn)表示從城市x1出發(fā),依次經過城市x2,x3,...,xn,最后回到x1。

3.2 貪心算法優(yōu)化初始種群

針對n個城市的TSP問題,假定種群規(guī)模為N,其中N*0.3個初始個體由貪心算法生成,N*0.7個初始個體隨機產生。N*0.3個初始個體中,每個個體生成的基本思想是:首先隨機地從n個城市中選取一個城市ccurrent作為第1個基因,然后從余下的n-1個城市中找到城市cnext(cnext是距離ccurrent最近的城市)作為第2個基因,再從余下的n-2個城市中找到城市cnext+1(cnext+1是距離cnext最近的城市)作為第3個基因,依次類推,直到遍歷n個城市為止。貪心算法生成的部分種群占比不大,在提高初始種群整體質量的同時,不會影響初始種群的多樣性,有助于加速尋優(yōu)速度[11]。

3.3 適應度函數(shù)

適應度函數(shù)通常直接由目標函數(shù)得出,本文用目標函數(shù)的倒數(shù)來表示適應度函數(shù)。實際情況中,多個城市間的路徑長度∑n-1i=1d(ci,ci+1)+d(cn,c1)會比較大,倒數(shù)后數(shù)據將會有3~5位小數(shù),不利于計算,所以將適應度值放大D倍(D∈[10000,1000000]為常量),即適應度函數(shù)表達式為:F(C)=D/f(C),其中f(C)為公式(1)表示的目標函數(shù)。

3.4 選擇算子

本文改進的選擇算子是基于輪盤賭選擇,融入最優(yōu)保存策略和摻雜算子。最優(yōu)保存策略是直接復制群體中適應度最高的個體到下一代,即個體不進行交叉、變異等操作[11]。摻雜算子是指在每代種群中隨機產生不大于N*0.1(N為種群規(guī)模)個新個體參與遺傳操作[12]。通過改進的選擇算子,在保留最優(yōu)個體的同時引入新個體,提高了算法收斂于全局最優(yōu)的可能性。

3.5 交叉算子

基本遺傳算法常用的雙點交叉算子,是指在要配對的兩個個體中隨機選擇兩個交叉點,將介于兩點之間的部分基因進行交換,對交換后兩點區(qū)域外出現(xiàn)的重復節(jié)點,按照原有位置對應關系進行替換,從而得到兩個新染色體。這種交叉方式只是對父個體兩點之間的基因進行交叉,兩點區(qū)域外的基因要么不變,要么由于節(jié)點重復而盲目地改變,父個體的優(yōu)良基因得不到有效繼承。在兩點交叉基礎上,本文改進的交叉算子采用兩點三段隨機交叉,基本思想是對相互配對的父個體P1、P2隨機產生兩個交叉點,將父個體分成三段,再隨機產生一個介于0~2之間的整數(shù)X,X∪{0,1,2},交叉操作按照公式(2)進行。

P1,P2前半部分進行交叉,X=0P1,P2中間部分進行交叉,X=1P1,P2后半部分進行交叉,X=2 (2)

假設父個體為P1=5714236,P2=1435726,交叉過程為:(1)隨機選擇兩個交叉點。假設P1=57|142|36,P2=14|357|26。(2)確定交叉區(qū)域。假設X=1,根據公式(2)中間部分進行交叉。

(3)將P2的中間部分加到P1前面,P1的中間部分加到P2前面,即得到P′1=3575714236,P′2=1421435726。

(4)刪除重復節(jié)點。P′1的重復節(jié)點為3、5、7,對于節(jié)點3,比較2-3-6和6-3-5之間的路程d(2-3-6)和d(6-3-5),如果d(2-3-6) >d (6-3-5),就刪除P′1后面的3,否則刪除前面的3。以同樣的方法處理P′1節(jié)點5和7,以及P′2的重復節(jié)點1、4、2。重復節(jié)點刪除完成后,得到交叉后的新個體P*1和P*2。改進的交叉算子克服了傳統(tǒng)兩點交叉中父個體兩端的基因要么不改變,要么由于節(jié)點重復而被盲目改變的缺陷,染色體變化能力得到提高,保證了種群多樣性,同時通過重復節(jié)點鄰接路徑長度比較,將路程長的重復節(jié)點刪除,提高了個體質量和算法的收斂性。

3.6 變異算子

倒位變異算子是指在父個體中隨機順序地選取兩個城市并記為c*和c#,使c*和c#之間的編碼倒序排列,并將c*和c#相鄰排列,產生一個新個體[13-14]。假設有父個體P=1 732 564,隨機選擇的兩城市為3和6,則產生的新個體P*=1 736 524。本文改進的變異算子采用啟發(fā)式倒位變異算子,其基本思想是:首先隨機選擇一個城市c,除去c、cRight、cLeft節(jié)點,在剩余節(jié)點中選擇距離c最近的城市c′,再將cRight到c′之間的城市編碼倒位產生新個體。例如上述父個體P=1732564,隨機選擇一個城市7,城市2和4是離城市7最近的兩個城市,若c′選城市2,則倒位后產生的新個體P*=1723564,若c′選城市4,則倒位后產生的新個體P*=1746523。

3.7 改進的遺傳算法流程

為了更加清晰地表述本文提出的算法求解TSP問題流程,用圖1所示流程圖來描述算法。

4 TSP問題求解系統(tǒng)體系結構

求解TSP問題系統(tǒng)包括界面模塊和改進遺傳算法應用模塊,系統(tǒng)體系結構如圖2所示。

界面模塊主要由城市布局選擇和優(yōu)化結果顯示兩部分組成。本文提出的改進遺傳算法用改進遺傳算法應用模塊來實現(xiàn),此模塊主要由路徑編碼、貪心優(yōu)化初始種群、適應度函數(shù)、最優(yōu)保存策略和摻雜算子選擇、兩點三段隨機交叉算子和啟發(fā)式倒位變異算子實現(xiàn)等幾部分組成。

5 實驗及結果分析

依據標準的CHN144城市坐標數(shù)據,分別用基本遺傳算法(SGA)和本文改進的遺傳算法(IGA)對CHN144中的城市進行20次隨機實驗。采用C語言編程,實驗控制參數(shù)設置如下:種群規(guī)模N=150,交叉概率pc=0.9,變異概率pm=0.2,終止條件中最優(yōu)個體保持代數(shù)M=200,實驗結果見表1。

實驗結果表明,本文IGA算法在收斂性上要明顯好于SGA算法,且IGA算法的最優(yōu)解和平均解都優(yōu)于SGA算法,進一步說明了用貪心算法優(yōu)化初始種群和用最優(yōu)保存策略及在選擇操作中引入摻雜算子,在利用局部尋優(yōu)能力改善種群質量、加速尋優(yōu)速度、提高算法搜索效率方面有著重要作用。IGA算法采用的兩點三段隨機交叉操作及啟發(fā)式倒位變異操作,較好解決了群體多樣性和收斂速度的矛盾,使算法具有較強的魯棒性。

6 結語

TSP問題是計算機、物流等領域許多復雜問題的抽象模型,具有良好的應用前景,對TSP問題進行研究具有重要意義。本文針對TSP問題提出了改進的遺傳算法,并給出了求解系統(tǒng)的體系結構。仿真實驗表明,對144個城市求解TSP問題得到的結果優(yōu)于基本遺傳算法。本文改進的遺傳算法可應用于任何類型的優(yōu)化操作中,通用性好、實用價值高。

參考文獻:

[1] 晏雨.改進的遺傳算法和分布估計算法求解TSP問題[D].重慶:重慶理工大學,2013.

[2] 王建忠,唐紅.TSP問題的一種快速求解算法[J].微電子學與計算機,2011,28(1):7-10.

[3] 張芳琴.改進遺傳算法在TSP組合優(yōu)化問題中的應用[J].高師理科學刊,2014,34(5):1-4.

[4] 姜群,晏雨.改進的遺傳算法在TSP問題中的應用[J].重慶理工大學學報:自然科學版,2012,26(9):96-99.

[5] 姚明海,王娜,趙連朋.改進的模擬退火和遺傳算法求解TSP問題[J].計算機工程與應用,2013,49(14):60-65.

[6] 于瑩瑩,陳燕,李桃迎.改進的蟻群遺傳算法求解旅行商問題[J].計算機仿真,2013,30(11):317-320.

[7] 楊玉,李慧,戴紅偉.改進量子交叉遺傳算法在TSP問題中的應用[J].南京師范大學學報:工程技術版,2012,12(3):43-48.

[8] 候建花.TSP遺傳算法的改進及其并行化研究[D].成都:成都理工大學,2004.

[9] 蔣然,張光桃.基于預分類的逆變異分類器算法[J].軟件, 2015, 36(2): 39-44.

[10] 于瑩瑩,陳燕,李桃迎.改進的遺傳算法求解旅行商問題[J].控制與決策,2014,29(8):1483-1488.

[11] 周澤巖,張喜.基于改進遺傳算法的TSP問題求解的研究[J].物流技術,2012,31(9):220-223.

[12] 陳智軍.一種改進的求解TSP問題的遺傳算法[J].軟件導刊,2011,10(2):52-54.

[13] 謝勝利,唐敏,董金祥.求解TSP問題的一種改進的遺傳算法[J].計算機工程與應用,2002(8):58-60,245.

[14] 杜宗宗.基于遺傳算法的移動機器人路徑規(guī)劃研究[D].無錫:江南大學,2009.

(責任編輯:杜能鋼)

猜你喜歡
體系結構遺傳算法
足球機器人并行行為組合控制體系結構分析
電子制作(2019年10期)2019-06-17 11:45:06
遺傳算法對CMAC與PID并行勵磁控制的優(yōu)化
測控技術(2018年2期)2018-12-09 09:00:54
基于自適應遺傳算法的CSAMT一維反演
一種基于遺傳算法的聚類分析方法在DNA序列比較中的應用
基于遺傳算法和LS-SVM的財務危機預測
協(xié)同進化在遺傳算法中的應用研究
基于粒計算的武器裝備體系結構超網絡模型
作戰(zhàn)體系結構穩(wěn)定性突變分析
基于改進的遺傳算法的模糊聚類算法
基于DODAF的裝備體系結構設計
防城港市| 志丹县| 通江县| 吉安县| 柳林县| 胶州市| 布尔津县| 禹城市| 策勒县| 屯留县| 夏津县| 永州市| 名山县| 富顺县| 澎湖县| 绥中县| 汽车| 曲水县| 萨迦县| 澄迈县| 高安市| 吉安县| 平泉县| 会宁县| 丹寨县| 明溪县| 麦盖提县| 米脂县| 兴城市| 祁阳县| 宁城县| 东山县| 怀化市| 榆中县| 铁岭市| 通许县| 旬阳县| 锦屏县| 嘉鱼县| 阜阳市| 奉贤区|