• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于改進(jìn)的烏鴉搜索算法求解旅行商問題

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

      孟范立

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

      中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A

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

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

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

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

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

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

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

      步驟2:初始化每個(gè)烏鴉的記憶;

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

      步驟4:隨機(jī)選擇其中一只烏鴉;

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

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

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

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

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

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

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

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

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

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

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

      表2給出了使用基于消除機(jī)制的烏鴉優(yōu)化算法和其他群智能算法的比較結(jié)果。在每個(gè)數(shù)據(jù)集中,各算法求得結(jié)果中最小值標(biāo)記為紅色。通過分析,改進(jìn)算法得到的結(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 和改進(jìn)RABNET,ECSA所得的結(jié)果與其他三種算法的差異很小。例如,在數(shù)據(jù)集Krob100 上,最好的結(jié)果是22336.20,而ECSA 的結(jié)果為22355.00,差別小于0.1%。通過比較看出,ECSA結(jié)果更加精確,也提高了優(yōu)化精度。

      5 結(jié)論

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

      猜你喜歡
      運(yùn)算符
      老祖?zhèn)魇诨具\(yùn)算符
      C語言指針與自增自減運(yùn)算解析
      用手機(jī)插頭的思路學(xué)習(xí)布爾運(yùn)算符
      淺析C語言運(yùn)算符及表達(dá)式的教學(xué)誤區(qū)
      基于堆棧的四則運(yùn)算總結(jié)及優(yōu)化
      基于計(jì)算思維的計(jì)算機(jī)表達(dá)式教學(xué)方法實(shí)踐
      C語言中自增(自減)運(yùn)算符的應(yīng)用與分析
      C++運(yùn)算符重載剖析
      表達(dá)式求值及符號(hào)推導(dǎo)
      基于二叉樹的將中綴表達(dá)式轉(zhuǎn)換為前綴表達(dá)式的方法
      巴东县| 四会市| 买车| 富顺县| 沂水县| 金溪县| 岑溪市| 临沧市| 泉州市| 芜湖县| 株洲市| 河池市| 娄底市| 安平县| 冕宁县| 门头沟区| 金溪县| 新民市| 得荣县| 赞皇县| 宁海县| 南开区| 铁岭县| 清涧县| 松桃| 台中市| 米泉市| 长葛市| 高邮市| 宁阳县| 花莲县| 越西县| 岗巴县| 景洪市| 宜阳县| 项城市| 宁陵县| 来安县| 全椒县| 赞皇县| 高密市|