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

?

一種求解旅行商問(wèn)題的改進(jìn)粒子群算法

2018-01-12 11:03羅金炎
關(guān)鍵詞:等式粒子調(diào)節(jié)

羅金炎

(閩江學(xué)院 數(shù)學(xué)系, 福建 福州 350108)

旅行商問(wèn)題(TSP)是組合優(yōu)化領(lǐng)域中經(jīng)典的NP難問(wèn)題[1],具有很強(qiáng)的現(xiàn)實(shí)意義.由于在許多領(lǐng)域都有廣泛的應(yīng)用,如計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)、通信節(jié)點(diǎn)設(shè)置、集成電路布線、物流配送等,因而一直以來(lái)是研究熱點(diǎn),為解決實(shí)際問(wèn)題,廣大研究者提出了許多求解算法(精確式或啟發(fā)式).精確式算法能夠得到問(wèn)題最優(yōu)解,但是需要與問(wèn)題維數(shù)成指數(shù)級(jí)增長(zhǎng)的時(shí)間成本,所能夠求解的問(wèn)題規(guī)模非常有限.啟發(fā)式算法也稱(chēng)作近似算法,它以犧牲找到最優(yōu)解的保證為代價(jià),在合理的時(shí)間內(nèi)找到近似解甚至最優(yōu)解,其求解復(fù)雜度多是多項(xiàng)式階數(shù)的.隨著人工智能的發(fā)展,許多智能優(yōu)化算法應(yīng)用于TSP問(wèn)題的求解,取得了較好結(jié)果.比如神經(jīng)網(wǎng)絡(luò)算法[2]、模擬退火算法[3]、禁忌搜索算法[4]、遺傳算法[5]、蟻群算法[6]、粒子群算法[7]等.這些智能優(yōu)化算法求解TSP問(wèn)題,大多采用二進(jìn)制編碼求解0-1整數(shù)規(guī)劃問(wèn)題的思路進(jìn)行尋優(yōu).本文利用等式約束規(guī)劃問(wèn)題K-T點(diǎn)的一個(gè)充分條件,將TSP問(wèn)題的線性等式約束非線性規(guī)劃進(jìn)行降維使之轉(zhuǎn)化為無(wú)約束極大極小優(yōu)化問(wèn)題.并基于基因調(diào)節(jié)原理運(yùn)用外推技巧來(lái)改進(jìn)粒子群算法,新的算法通過(guò)利用不同位置粒子的差異來(lái)引導(dǎo)外推方向,采用滿(mǎn)足有限平方和準(zhǔn)則的動(dòng)態(tài)調(diào)節(jié)因子并在速度項(xiàng)中添加高斯擾動(dòng),來(lái)提高算法的尋優(yōu)效率.數(shù)值實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出算法的有效性并具有較好的收斂效率.

1 等式約束規(guī)劃問(wèn)題K-T點(diǎn)的一個(gè)充分條件

規(guī)劃問(wèn)題

(1)

定理1[9]: 若x*∈Rn是方程組

的解,且M(x*)非奇異,則x*是上述規(guī)劃問(wèn)題(1)的K-T點(diǎn).即

其中λ=-[M(x*)]TQ(x*).

2 TSP問(wèn)題模型分析

TSP問(wèn)題一般性描述為:給定n個(gè)城市以及任意兩個(gè)城市之間的距離,尋求一條經(jīng)過(guò)所有城市的最短訪問(wèn)路徑,每個(gè)城市必須訪問(wèn)且只能訪問(wèn)一次.其圖論描述為:給定圖G=(V,A),其中V為頂點(diǎn)集,A為各頂點(diǎn)相互連接組成的弧集,已知各個(gè)頂點(diǎn)連接距離,要求一條長(zhǎng)度最短的Hamilton回路.設(shè)dij為城市i與j之間的距離,即弧(i,j)的長(zhǎng)度 (i≠j),當(dāng)i=j時(shí)cij為足夠大的數(shù).引入決策變量

那么TSP問(wèn)題的數(shù)學(xué)模型可表示為[7]:

(2)

其中上述模型可進(jìn)一步松弛為如下連續(xù)問(wèn)題[8]:

(3)

因是線性規(guī)劃模型,線性規(guī)劃的可行解集是一個(gè)凸集,最優(yōu)解通常在邊界上取得,即在x=0或x=1上取得,所以式(3)等價(jià)于式(2).為便于分析,上述模型可以進(jìn)一步整理為如下線性等式約束的非線性規(guī)劃問(wèn)題的矩陣形式:

(4)

其中:CT=(c11,c12,…,c1n,c21,c22,…,c2n,…,cn1,cn1,…,cnn),x=(x11,x12,…,x1n,x21,x22,…,x2n,…,xn1,xn1,…,xnn).

令m=2n,k=n2,則

f:Rk→R,

p=k-m.

這里g(x)=Ax-b,則有g(shù)(x)=(Ax-b)=A.文獻(xiàn)[9]中指出約束函數(shù)g(x)在點(diǎn)x*的frechet導(dǎo)數(shù)g(x*)需要有一個(gè)m階子塊是非奇異的(即秩A=m),記

根據(jù)定理1,可將上述求解等式約束規(guī)劃問(wèn)題(4)轉(zhuǎn)化為求解非線性方程組:

(5)

應(yīng)用無(wú)約束優(yōu)化方法求解非線性方程組(5)時(shí),通常可以將其轉(zhuǎn)換為求解:

(6)

當(dāng)p=2時(shí),此為非線性最小二乘問(wèn)題;當(dāng)p=∞ 時(shí),此為無(wú)約束極大極小優(yōu)化問(wèn)題:

(7)

極大極小問(wèn)題(7)為非光滑優(yōu)化問(wèn)題,應(yīng)用PSO算法可以有效求解此類(lèi)問(wèn)題[10],可以不必構(gòu)造可微光滑函數(shù),以式(7)為粒子的適應(yīng)度函數(shù),函數(shù)值越小表示適應(yīng)度越高.

3 改進(jìn)的粒子群算法設(shè)計(jì)

3.1 粒子群算法[11]

粒子群算法與其他進(jìn)化類(lèi)算法相似, 采用“群體”與“進(jìn)化”的概念, 同時(shí)依據(jù)個(gè)體的適應(yīng)值大小進(jìn)行操作. 不同的是, 粒子群算法不像其他進(jìn)化算法那樣對(duì)于個(gè)體使用進(jìn)化算子, 而是將每個(gè)個(gè)體看作是在搜索空間中的一個(gè)沒(méi)有質(zhì)量和體積的粒子, 并在搜索空間中以一定的速度飛行.每個(gè)粒子的飛行速度由其本身的飛行經(jīng)驗(yàn)和群體的飛行經(jīng)驗(yàn)調(diào)整.經(jīng)典粒子群算法根據(jù)公式(8)進(jìn)行迭代更新,粒子在解空間內(nèi)不斷跟蹤個(gè)體極值和鄰域極值進(jìn)行搜索, 直到滿(mǎn)足迭代停止條件, 即達(dá)到規(guī)定的迭代次數(shù)或滿(mǎn)足規(guī)定的誤差標(biāo)準(zhǔn).

(8)

(9)

其中:w為慣性權(quán)重; rand()為均勻分布在(0,1)之間的隨機(jī)數(shù);c1和c2為學(xué)習(xí)因子.粒子的速度vi被最大速度Vmax所限制,即若vi>Vmax,則令vi=Vmax,而若vi<-Vmax,也令vi=Vmax.

3.2 粒子群算法位置更新公式的改進(jìn)

x3i=x1i+α(x1i-x2i)

(10)

其中α為調(diào)節(jié)因子,它決定調(diào)節(jié)的幅度,一般不能過(guò)大取大于零的小正數(shù),來(lái)確保f(x3)

利用不同位置粒子的差異來(lái)引導(dǎo)外推方向.在由粒子群算法產(chǎn)生新位置時(shí),再依據(jù)算法位置更新公式(9)產(chǎn)生另一個(gè)虛擬位置(在粒子尚未達(dá)到最優(yōu)點(diǎn)時(shí),對(duì)連續(xù)函數(shù)來(lái)說(shuō)在附件存在更優(yōu)的點(diǎn)):

(11)

其中rand()為[0,1]內(nèi)服從均勻分布的隨機(jī)數(shù).

根據(jù)外推技巧由式(10)和式(11)有:

(12)

一般地,在起初階段距離最優(yōu)解較遠(yuǎn),調(diào)節(jié)幅度較大有利于加速進(jìn)化,而在后期距離最優(yōu)解較近時(shí),調(diào)節(jié)幅度應(yīng)較小些.對(duì)多變量?jī)?yōu)化問(wèn)題,由于每個(gè)粒子的位置分量較多,容易出現(xiàn)某些分量非常接近甚至相同的兩個(gè)粒子,對(duì)此外推技巧將不起作用,在具體操作中需要在式(12)加上一個(gè)微小擾動(dòng).基于此(上述兩點(diǎn)),調(diào)節(jié)因子采用動(dòng)態(tài)遞減滿(mǎn)足隨機(jī)遞推算法[13]的數(shù)列因子,并在算法中的速度項(xiàng)部分添加高斯擾動(dòng).最后得到的位置公式為:

(13)

3.3 求解TSP的改進(jìn)粒子群算法具體步驟

步驟1:確定矩陣M和N,進(jìn)一步確定矩陣P和Q,利用式(7)作為適應(yīng)值函數(shù);

步驟2:初始化種群N的粒子群,包括每個(gè)粒子的位置和速度,計(jì)算適應(yīng)值函數(shù),并記錄粒子的個(gè)體歷史最優(yōu)位置和種群全局最優(yōu)位置;

步驟3:根據(jù)式(8)和式(13)分別更新粒子的速度和位置,計(jì)算位置更新后的適應(yīng)值函數(shù),并與其個(gè)體歷史最優(yōu)值相比較,若更優(yōu),則更新粒子的個(gè)體歷史最優(yōu)位置,否則不變;

步驟4:將粒子的個(gè)體歷史最優(yōu)與種群的全局最優(yōu)進(jìn)行比較,若更優(yōu),則更新種群全局最優(yōu)位置,否則不變;

步驟5:如果滿(mǎn)足算法的終止條件|xk-xk-1|<ε,則輸出全局最優(yōu)解,否則轉(zhuǎn)到步驟3繼續(xù)執(zhí)行.

為確保產(chǎn)生整數(shù)解,繼續(xù)下面的步驟:

(14)

步驟9:如果m

(15)

步驟10:計(jì)算最優(yōu)路徑結(jié)果值,記錄迄今為止的最優(yōu)解.檢查是否達(dá)到最大迭代步數(shù),若是則結(jié)束,否則轉(zhuǎn)步驟3.

4 仿真實(shí)驗(yàn)

4.1 算法有效性測(cè)試,10個(gè)城市的旅行商問(wèn)題

為了驗(yàn)證算法的效果性能,先采用10節(jié)點(diǎn)的小樣本TSP問(wèn)題對(duì)算法的有效性進(jìn)行驗(yàn)證,其節(jié)點(diǎn)位置如圖1所示.

圖1 10城市節(jié)點(diǎn)位置

算法進(jìn)行了50次實(shí)驗(yàn),最大迭代次數(shù)100,均能得到最優(yōu)解,最快迭代次數(shù)為16次,得到的連續(xù)最優(yōu)解矩陣為:

圖2 算法搜尋到的最優(yōu)路徑

4.2 算法性能比較

為進(jìn)一步比較算法的性能,從TSPLIB標(biāo)準(zhǔn)庫(kù)(http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95)中選取部分經(jīng)典實(shí)例,使用Matlab 6.5編程,在CPU為AMD1.65 GHz內(nèi)存為2 GB的計(jì)算機(jī)上進(jìn)行仿真實(shí)驗(yàn).最大迭代次數(shù)為1 000,實(shí)驗(yàn)測(cè)試100次.分別與PSO[14]、改進(jìn)的FOA[15]進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表1和表2所示,OPT是已知最優(yōu)值.

表1 本文算法求解TSP算例的仿真結(jié)果

表2 算法求解不同TSP算例的比較結(jié)果

從表2最優(yōu)值和平均值的對(duì)比可以看出:本文算法對(duì)于不同規(guī)模的TSP問(wèn)題均能尋優(yōu)搜索到最優(yōu)路徑,充分反映了本文算法尋優(yōu)的有效性.本文算法的偏差均比其他2個(gè)算法小,表明本文算法具有良好的全局收斂能力,這是因?yàn)樗惴ㄋ俣软?xiàng)部分添加高斯擾動(dòng)能夠較好地避免算法陷入局部最優(yōu)而早熟;從平均迭代次數(shù)指標(biāo)上表明本文算法尋優(yōu)速度具明顯優(yōu)勢(shì),這是因?yàn)樗惴ǖ膭?dòng)態(tài)調(diào)節(jié)因子序列滿(mǎn)足有限平方和準(zhǔn)則,其選取策略對(duì)于迭代序列的收斂行為起著關(guān)鍵作用.通過(guò)程序的仿真實(shí)驗(yàn),本文算法解決部分實(shí)例的最優(yōu)路徑如圖3~圖5所示.

圖3 Bays29的最優(yōu)路徑

圖4 Berlin52的最優(yōu)路徑

圖5 Gr96的最優(yōu)路徑

5 結(jié) 論

利用等式約束問(wèn)題K-T點(diǎn)的一個(gè)充分條件,將TSP問(wèn)題的線性等式約束非線性規(guī)劃進(jìn)行降維使之轉(zhuǎn)化為無(wú)約束極大極小優(yōu)化問(wèn)題,并基于基因調(diào)節(jié)原理運(yùn)用外推技巧來(lái)改進(jìn)粒子群算法,新的算法通過(guò)加強(qiáng)對(duì)進(jìn)化方向的引導(dǎo),采用滿(mǎn)足有限平方和準(zhǔn)則的動(dòng)態(tài)遞減調(diào)節(jié)因子,并在速度項(xiàng)中添加高斯擾動(dòng),提高了算法的尋優(yōu)效率,數(shù)值實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出算法的有效性并具有較好的收斂效果.

[1] GRECO F.Travelling Salesman Problem[M].Croatia:In-Teh,2008:36-39.

[2] LI M L,YI Z,ZHU M.Solving TSP by Using Lotka-Volterra Neural Networks[J].Neurocomputing,2009,72(16):3873-3880.

[3] 張盛意,蔡之華,占志剛,等.基于改進(jìn)模擬退火的遺傳算法求解0-1背包問(wèn)題[J].微電子與計(jì)算機(jī),2011,28(2):61-64.

[4] GLOVER F.Future Paths for Integer Programming and Links to Artifical Intelligence[J].Computers and Operations Research,1986,13(5) :533-549.

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

[7] HOPFIELD J J,TANK D W.“Neural” Computation of Decisions in Optimization Problems[J].Biological Cybernetics,1985,52(3):141-152.

[8] DANG C Y,XU L.A Lagrange Multiplier and Hopfield-Type Barrier Function Method for the Traveling Salesman Problem[J].Neural Computation,2001,14(2):303-324.

[9] 李澤民.最優(yōu)化問(wèn)題的一種新途徑[J].重慶建筑工程學(xué)院學(xué)報(bào),1990,12(1):49-55.

[10] 張建科,李立峰,周暢,等.一類(lèi)非線性極小極大問(wèn)題的改進(jìn)粒子群算法[J].計(jì)算機(jī)應(yīng)用,2008,28(5):1194-1196.

[11] 曾建潮,介倩,崔志華,等.微粒群算法[M].北京:科學(xué)出版社,2004:7-8.

[12] 王湘中,喻壽益,賀素良,等.一種強(qiáng)引導(dǎo)進(jìn)化型遺傳算法[J].控制與決策,2004,19(7):705-798.

[13] 聶贊坎,徐宗本.隨機(jī)逼近及自適應(yīng)算法[M].北京:科學(xué)出版社,2003:23-28.

[14] MARINAKI S Y,MARINAKI M.A Hybrid Multi-Swarm Particle Swarm Optimization Algorithm for the Probabilistic Traveling Salesman Problem[J].Comput Oper Res,2010,37(3):432-442.

[15] 段艷明,肖輝輝.求解TSP問(wèn)題的改進(jìn)果蠅優(yōu)化算法[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(6):144-149.

猜你喜歡
等式粒子調(diào)節(jié)
方便調(diào)節(jié)的課桌
2016年奔馳E260L主駕駛座椅不能調(diào)節(jié)
組成等式
Conduit necrosis following esophagectomy:An up-to-date literature review
基于粒子群優(yōu)化的橋式起重機(jī)模糊PID控制
一個(gè)連等式與兩個(gè)不等式鏈
基于粒子群優(yōu)化極點(diǎn)配置的空燃比輸出反饋控制
可調(diào)節(jié)、可替換的takumi鋼筆
速填等式
基于Matlab的α粒子的散射實(shí)驗(yàn)?zāi)M