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

?

基于改進的烏鴉搜索算法求解旅行商問題

2023-06-10 12:41:51孟范立
電腦知識與技術(shù) 2023年12期
關(guān)鍵詞:運算符

孟范立

關(guān)鍵詞:旅行商;烏鴉優(yōu)化算法;運算符;消除機制

中圖分類號:TP18 文獻標(biāo)識碼:A

文章編號:1009-3044(2023)12-0022-04

旅行商問題(TSP)是指求解經(jīng)過多個城市的最短路徑問題,適用于許多工程應(yīng)用,如計算機網(wǎng)絡(luò)、硬件設(shè)計、交通路線設(shè)計、基因排序和電子控制系統(tǒng)等。例如解決n個城市在內(nèi)的一個TSP問題的求解空間是n的階乘,因此TSP問題是一個典型的NP難問題。

TSP問題解決方案主要分為兩類:一種是精確求解法,可以確保獲得最優(yōu)解,如分支界定法[1]。然而,隨著城市數(shù)量增加,這些方法求解時間呈指數(shù)增長。因此,精確求解法僅適用于解決小規(guī)模問題。另一種是近似求解法,雖不能保證獲得最優(yōu)解但能夠在較短時間內(nèi)求得近似解。如蟻群優(yōu)化算法[2]、遺傳算法[3] 等算法。這些方法適用于解決大規(guī)模TSP問題。

一般來說,影響求解TSP問題近似算法的主要因素有兩個方面,一是對搜索求解空間的擴展能力,二是算法收斂到最優(yōu)解的收斂能力。在研究了各種群體智能算法并對其測試結(jié)果進行評估后,發(fā)現(xiàn)烏鴉優(yōu)化算法模擬了烏鴉追隨覓食的過程,涌現(xiàn)出了較好的全局搜索能力。但是,原始烏鴉算法[4]的追隨過程易于使算法陷入局部最優(yōu)。因此,本文提出了基于消除機制的烏鴉優(yōu)化算法[5]求解TSP 問題(ECSA)。在ECSA中,消除機制增加了種群的多樣性,避免算法陷入局部最優(yōu),使得ECSA提高了算法的擴展能力和融合能力。通過對TSPLIB中的標(biāo)準(zhǔn)測試集進行實驗,與其他算法相比,ECSA結(jié)果較好,能夠在較短的時間內(nèi)搜索到更好的解。

1 烏鴉優(yōu)化算法

CSA 是伊朗學(xué)者Askarzadeh 根據(jù)烏鴉智能行為于2016年提出的一種新群體智能優(yōu)化算法[6]。烏鴉的智能行為表現(xiàn)為將多余的食物存放在藏身地方,并在需要食物時將其收回。烏鴉由于貪婪而相互追隨,以獲得更好的食物源。尋找其他烏鴉隱藏食物來源并不容易,因為如果一只烏鴉發(fā)現(xiàn)另一只在跟隨它,就會嘗試通過其他位置來欺騙烏鴉。與粒子群優(yōu)化算法(PSO),蟻群算法(ACO)等群智能優(yōu)化算法相比,該算法具有易于理解和實現(xiàn)簡單優(yōu)點。步驟如下:

步驟1:初始化種群大小,算法迭代的最大次數(shù)和種群的原始位置;

步驟2:初始化每個烏鴉的記憶;

步驟3:評估每個烏鴉所在位置的食物質(zhì)量;

步驟4:隨機選擇其中一只烏鴉;

步驟5:按照認(rèn)知概率,追隨這只烏鴉;

步驟6:迭代優(yōu)化。

在步驟5中,其他烏鴉個體將直接飛向最佳個體。意味著在這之后,該群體中所有個體將達到最佳個體。所以步驟5很容易導(dǎo)致算法陷入局部最優(yōu),導(dǎo)致低優(yōu)化精度。

2 基于消除機制的烏鴉優(yōu)化算法

在文中,對烏鴉覓食行為增加了消除機制。即淘汰種群中一些較差個體,同時在烏鴉覓食過程中產(chǎn)生一些新個體。既提高算法收斂性,又增加種群多樣性,從而提高算法搜索空間,同時減少運行時間和陷入局部最優(yōu)概率。

基于消除的烏鴉優(yōu)化算法步驟如下:

步驟1:初始化定義烏鴉種群大小,最大迭代次數(shù)和種群的初始位置,飛行長度和認(rèn)知概率。

步驟2:初始化烏鴉的記憶,即為種群初始位置。

步驟3:評估每個烏鴉所在位置食物質(zhì)量。

圖1和圖2給出了原始烏鴉算法和改進烏鴉算法在Berlin52等數(shù)據(jù)集的迭代過程結(jié)果。其中,藍線表示ECSA,而紅線代表CSA??梢钥闯觯诟倪M的烏鴉算法中,40次迭代后Y軸值沒有改變,而原始版本中的值即使經(jīng)過100次迭代也在變化。最后藍色曲線低于紅色曲線。這表明,改進算法可以在40次迭代之后即可找到最優(yōu)解,而原始算法則需要100次迭代,因此在求解TSP問題時前者比后者能夠得到更高精度。這是由于ECSA更加重視烏鴉搜索行為的追隨行為,并為CSA增加了消除機制,可以加快收斂速度。

圖3和圖4給出的是改進的烏鴉搜索算法獲得的優(yōu)化結(jié)果和理論最優(yōu)值之間的比較結(jié)果(其中每項數(shù)據(jù)對比中,左側(cè)為紅色柱條,右側(cè)為藍色柱條)。其中,紅色表示理論值,而藍色表示ECSA得到的優(yōu)化結(jié)果。可以看出,改進的烏鴉優(yōu)化算法所得的優(yōu)化值和理論值幾乎沒有差別,并且在數(shù)據(jù)集Berlin52,Eil51,St70,KroA100和Lin105上改進算法均達到了理論值。

表2給出了使用基于消除機制的烏鴉優(yōu)化算法和其他群智能算法的比較結(jié)果。在每個數(shù)據(jù)集中,各算法求得結(jié)果中最小值標(biāo)記為紅色。通過分析,改進算法得到的結(jié)果為7542.00,427.53, 677.26, 1237.20,62.05,與數(shù)據(jù)集Berlin52,Eil51,St70,Rat99,Eil101和Ch150上的其他優(yōu)化算法相比,優(yōu)化效果最好。對于數(shù)據(jù)集Eil76,Kroa100,Krob100和Lin105,盡管獲得最優(yōu)結(jié)果的算法分別是CGAS,DWIO,DWIO 和改進RABNET,ECSA所得的結(jié)果與其他三種算法的差異很小。例如,在數(shù)據(jù)集Krob100 上,最好的結(jié)果是22336.20,而ECSA 的結(jié)果為22355.00,差別小于0.1%。通過比較看出,ECSA結(jié)果更加精確,也提高了優(yōu)化精度。

5 結(jié)論

本文在烏鴉搜索算法中加入了一種消除機制,其覓食行為更加注重烏鴉的追索搜索能力,避免了算法被局部優(yōu)化的困擾。此方法不僅可以幫助烏鴉不斷追隨其他烏鴉飛行,而且可以提高收斂速度及算法優(yōu)化精度。最后,測試了TSPLIB中的10個數(shù)據(jù)集以驗證此文方法,結(jié)果表明,本文所闡述的方法比其他方法具有更好的優(yōu)化精度和穩(wěn)定性。

猜你喜歡
運算符
老祖?zhèn)魇诨具\算符
C語言指針與自增自減運算解析
用手機插頭的思路學(xué)習(xí)布爾運算符
電腦報(2019年16期)2019-09-10 07:22:44
淺析C語言運算符及表達式的教學(xué)誤區(qū)
基于堆棧的四則運算總結(jié)及優(yōu)化
基于計算思維的計算機表達式教學(xué)方法實踐
C語言中自增(自減)運算符的應(yīng)用與分析
C++運算符重載剖析
價值工程(2014年17期)2014-04-16 03:29:20
表達式求值及符號推導(dǎo)
基于二叉樹的將中綴表達式轉(zhuǎn)換為前綴表達式的方法
澄城县| 天水市| 北海市| 察雅县| 清丰县| 施甸县| 老河口市| 望谟县| 阜南县| 济源市| 如皋市| 蒲城县| 万荣县| 旬阳县| 晋宁县| 福鼎市| 秀山| 广汉市| 兴和县| 孙吴县| 铜梁县| 井研县| 德州市| 安阳市| 安达市| 凉山| 铜梁县| 青阳县| 临城县| 边坝县| 赣榆县| 攀枝花市| 确山县| 桦甸市| 西和县| 汝城县| 隆回县| 合川市| 巴彦淖尔市| 富宁县| 彭水|