亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于蟻群算法與遺傳算法的TSP路徑規(guī)劃仿真

        2022-02-09 02:05:06圣文順徐愛萍徐劉晶
        計算機仿真 2022年12期
        關(guān)鍵詞:信息量遺傳算法螞蟻

        圣文順,徐愛萍,徐劉晶

        (1. 南京工業(yè)大學(xué)浦江學(xué)院,江蘇 南京 211200;2. 武漢大學(xué)計算機學(xué)院,湖北 武漢 430072)

        1 引言

        蟻群算法和遺傳算法都是通過模擬自然界某種生物現(xiàn)象而得到的一種進(jìn)化算法,它們在組合優(yōu)化、規(guī)劃策略等領(lǐng)域都表現(xiàn)出了各自的優(yōu)越性。蟻群算法利用正反饋機制[1],能較快地向較優(yōu)解收斂,但易出現(xiàn)早熟、停滯現(xiàn)象;而遺傳算法具有較強的全局搜索能力,可避免陷入局部最優(yōu)。本文通過兩種算法的結(jié)合,發(fā)揮各自優(yōu)勢,在加速收斂的同時有效地避免了陷入局部最優(yōu)。另外通過引入貪心策略[2],極大地提高了搜索速度,并在一定程度上解決了螞蟻算法在搜索初期由于信息素缺乏進(jìn)化緩慢的問題。實驗表明,在求解旅行商問題時,與傳統(tǒng)的蟻群算法和遺傳算法相比,本文算法優(yōu)勢較為明顯。

        2 蟻群算法及遺傳算法

        2.1 蟻群算法

        蟻群算法(ACA)是由意大利學(xué)者M(jìn).Dorigo提出的一種新型模擬進(jìn)化算法[3]。實驗觀察表明,螞蟻在其經(jīng)過的路徑上會留下一種揮發(fā)性分泌物(即信息素[4],pheiomcme),后續(xù)的螞蟻會根據(jù)信息素的強度自主選擇要經(jīng)過的路徑,通常的策略就是螞蟻會選擇信息素強度較大的路徑行走。蟻群的這種集體行為可以理解為一種信息的正反饋機制的形成,螞蟻通過該機制來定位通向目的地的最短路徑,如圖1所示。

        圖1 蟻群算法示意圖

        (1)

        τij(t+1)=(1-ρ)τij(t)+Δτij

        (2)

        其中ρ∈(0,1),表示信息量的衰減程度。信息量增量Δτij可表示為:

        (3)

        (4)

        其中,Q是常數(shù),Lk為螞蟻k在本次循環(huán)中所走路徑的總長度。

        2.2 遺傳算法

        遺傳算法(Genetic Algorithm,簡稱GA)最早于1975年由美國Michigan大學(xué)的J.Holland首先提出[6],該算法基于達(dá)爾文的進(jìn)化論,模擬了自然選擇、物競天擇和適者生存,通過N代的遺傳、變異、交叉、復(fù)制,進(jìn)化出問題的最優(yōu)解,是模擬生物遺傳選擇和優(yōu)勝劣汰進(jìn)化過程的一個計算模型。

        遺傳算法的處理流程是將所求問題的每個可能解都看作是一個染色體個體,將可能解個體進(jìn)行特定編碼,多個可能解個體即構(gòu)成了一個群體。初始情況下,一般是隨機產(chǎn)生一個群體,根據(jù)初始群體中每個個體的適應(yīng)度利用遺傳算子進(jìn)行選擇(Selection)、交叉(Crossover)和變異(Mutation)操作,對它們進(jìn)行重新組合,進(jìn)而得到一個新的群體。新的群體由于繼承了上一代的優(yōu)良特性,產(chǎn)生了一些向好的變化,從而逐步向著更優(yōu)解的方向進(jìn)化。

        遺傳算法具有與領(lǐng)域無關(guān)的群體性全局搜索能力,并且它的過程簡單,可擴展性強,易于與其它優(yōu)化技術(shù)結(jié)合。

        3 蟻群算法與遺傳算法的融合

        蟻群算法主要利用信息正反饋原理強化較優(yōu)解,當(dāng)進(jìn)化到一定代數(shù)后螞蟻將聚集于信息量高的部分路徑上,易出現(xiàn)早熟、停滯現(xiàn)象,陷入局部最優(yōu)。為解決該問題,本文利用遺傳算法具有隨機選擇性高、全局搜索能力強的特點,在蟻群算法進(jìn)化到一定代數(shù)后,動態(tài)過渡到遺傳算法,從而有效避免陷入局部最優(yōu)的困境。具體方法是這樣的:設(shè)定蟻群算法最小進(jìn)化率Antmin-ratio,如果連續(xù)Antmax代沒有得到更優(yōu)解或者更優(yōu)解的進(jìn)化率都小于Antmax-ratio,說明蟻群算法很可能已陷入局部最優(yōu),這時就自動過渡到遺傳算法。遺傳算法的初始群體在蟻群算法運行過程中動態(tài)生成,建立一個N×n的二維數(shù)組C,N為群體規(guī)模,n為染色體長度(城市個數(shù)),每巡游完一次就對每只螞蟻所經(jīng)路徑的長度進(jìn)行計算,找出本輪最小值,并與數(shù)組C中的每個染色體所對應(yīng)的路徑長度相比較,如果這個最小值小于某個染色體所對應(yīng)路徑的長度,則用這個最小值對應(yīng)的路徑替換掉該染色體。

        本文把融合了這兩種算法的算法稱為ACAG算法(the Algorithm Combined by ACA and GA),圖2為ACAG算法簡要流程圖。

        圖2 ACAG算法流程圖

        4 基于ACAG求解TSP問題

        4.1 ACAG中的蟻群算法規(guī)則

        1)貪心策略

        根據(jù)文獻(xiàn)[7],在一條遍歷所有城市的較優(yōu)路徑中,城市i連接到城市j,j不可能是離城市i最遠(yuǎn)的那些城市。所以,把下一個城市的選擇范圍限定在離當(dāng)前城市最近的w個城市中,只需對這部分城市的轉(zhuǎn)移概率計算即可。在選擇下一城市時,先找到離當(dāng)前城市最近的w個城市,然后在這w個城市中找出螞蟻本輪還未曾走過的h個城市。在h個城市中,按式(5)選擇下一城市j。

        (5)

        貪心策略的采用,由于把可選擇城市限定在一定范圍內(nèi),使得搜索速度大大提高,并同時解決了螞蟻算法搜索初期由于信息素缺乏進(jìn)化緩慢的問題。

        2)信息素更新策略

        由于采用了貪心策略,螞蟻會集中在相對較優(yōu)的幾條路徑上,如果按傳統(tǒng)的信息素局部更新方法,這幾條路徑上的信息素會迅速增加,從而導(dǎo)致過早陷入局部最優(yōu)。為盡量避免這種情況,這里采用如下方法進(jìn)行局部更新。

        (6)

        其中,τ0表示每條邊上所允許的信息量最大值,Q1、Q2是可以設(shè)定的常量,Q2取值一般要比Q1大,當(dāng)某條路徑上的信息量大于τ0時,就較大幅度地削減其信息量,從而使螞蟻選擇其它路徑的概率增加。

        當(dāng)所有螞蟻完成一次循環(huán)以后,要對信息量進(jìn)行全局更新,這里只對每次循環(huán)M最優(yōu)路徑上的信息量進(jìn)行更新以強化最優(yōu)解。如下式

        (7)

        4.2 ACAG中的遺傳算法規(guī)則

        遺傳編碼:采用最自然的路徑表達(dá)方式,如城市的編號為{1,2,3,4,5,6,7},則某個染色體的編碼位串可能為(3 2 5 1 4 7 6),表示按順序3-2-5-1-4-7-6來訪問各城市。

        適應(yīng)函數(shù):設(shè)路徑總長度為f(n),設(shè)置適應(yīng)函數(shù)為1/f(n),函數(shù)值越大表示路徑越短,適應(yīng)度越大,個體被選取的概率也就越大[9]。

        交叉算子:采用由Davis提出的OX算子[10-11]。通過從一個親體中挑選一個子序列并保存另一個親體的城市相對次序來構(gòu)造后代,例如兩個親體(兩個“|”之間為挑選出的子序列)

        p1=(1 2 3 | 4 5 6 7 | 8 9)=(4 5 2 | 1 8 7 6 | 9 3)

        經(jīng)過交叉操作后可得

        變異算子:在染色體上隨機地選擇兩點,然后對兩點間的子串進(jìn)行如下操作:從第一個城市開始,依次交換兩個鄰接城市的順序,若能改善解則交換,否則不交換,直到子串的最后兩個城市[12]。這樣能提高遺傳算法的局部搜索能力。

        選擇算子:采用遺傳算法中應(yīng)用最廣的賭輪盤選擇策略[13]。

        4.3 ACAG求解TSP問題的算法過程

        首先執(zhí)行蟻群算法,并動態(tài)生成遺傳算法所需的初始種群,直到達(dá)到轉(zhuǎn)化條件為止,然后執(zhí)行遺傳算法直到結(jié)束。

        1)蟻群算法部分

        ①初始化蟻群算法各參數(shù),設(shè)置蟻群算法結(jié)束條件;

        ②反復(fù)執(zhí)行下列操作,直到滿足轉(zhuǎn)化條件:

        a. 將m只螞蟻隨機分布在n個城市中并設(shè)置到禁忌表中;

        b. 對于每一只螞蟻,按貪心策略選取下一城市j,選擇完后將j加入禁忌表tabuk;

        c. 當(dāng)每一只螞蟻走完一條邊以后,按式(6)進(jìn)行信息素局部更新;

        d. 重復(fù)b.和c.,直到所有螞蟻完成一次周游為止;

        e. 當(dāng)m只螞蟻完成一次周游以后,計算每只螞蟻所經(jīng)過的路徑長度,找到本輪最短路徑lmin,并與已得到的最優(yōu)長度lshortest相比較,若有l(wèi)min

        f. 更新二維數(shù)組C;

        g. 按式(7)進(jìn)行信息素全局更新;

        h. 清空并初始化禁忌表。

        2)遺傳算法部分

        ③設(shè)置雜交概率pc和變異概率pm,設(shè)置最大遺傳代數(shù)[14];

        ④初始群體P(0)(t=0)由二維數(shù)組C表示,群體規(guī)模為N;

        ⑤計算P(0)中每個個體的適應(yīng)度;

        ⑥反復(fù)執(zhí)行下列操作,直到達(dá)到最大遺傳代數(shù)[15]:

        a. 根據(jù)個體適應(yīng)度計算每個個體被選擇的概率pi;

        b. for(k=0;k

        {

        根據(jù)每個個體的Pi及賭輪盤規(guī)則在P(t)中選擇兩個父體;

        產(chǎn)生隨機數(shù)rand∈(0,1);

        if(rand≤pc),對兩個父體進(jìn)行交叉操作,將兩個后代加入到新群體P(t+1)中;

        }

        c. 對P(t+1)中的每個個體按概率pm進(jìn)行變異操作[16];

        d. 計算P(t+1)中每個個體的適應(yīng)度,并更新最優(yōu)長度lshortest和最優(yōu)路徑表;

        e.f++;

        ⑦算法結(jié)束,輸出最優(yōu)長度和最優(yōu)路徑表。

        按照以上算法步驟在MATLAB運行實驗,所得結(jié)果如圖3、圖4。其中圖3為城市中各點分布坐標(biāo),紅色線段為起始坐標(biāo)點(城市)的連線。圖4為路徑長度變化曲線,可獲得最優(yōu)長度及最優(yōu)長度所對應(yīng)的迭代次數(shù)。

        圖3 ACAG算法遍歷旅行商問題優(yōu)化結(jié)果

        圖4 ACAG算法中路徑長度變化曲線及規(guī)律

        5 實驗結(jié)果及分析

        利用Java程序分別實現(xiàn)了傳統(tǒng)蟻群算法和遺傳算法以及上述ACAG算法,并從TSPLIB實例庫[17]下載了多個典型的TSP問題進(jìn)行實驗,都取得了比較好的結(jié)果。表1是三種算法的對比測試結(jié)果。表中第二列是指到目前為止對某個TSP問題已知的最優(yōu)解,第四列表示各算法得到的最優(yōu)解,最后一列表示達(dá)到最優(yōu)解的平均迭代次數(shù),ACA、GA和ACAG分別表示傳統(tǒng)蟻群算法、傳統(tǒng)遺傳算法和本文算法。各個問題名稱中的數(shù)字即所包含的城市數(shù)。

        由表1可以看出,本文算法具有較強搜索最優(yōu)解的能力,在berlin52、dl98、lin318三個典型的TSP問題中,采用本文算法得到的最優(yōu)解與目前此TSP問題最優(yōu)解最為接近,在berlin52問題中,兩者數(shù)值相等。在蟻群算法階段通過引入貪心策略大大加快了收斂速度,經(jīng)較少的迭代次數(shù)能找到最優(yōu)解。對問題lin318,傳統(tǒng)蟻群算法和遺傳算法分別需要5000多次和6000多次才能找到最優(yōu)解,而本文算法僅需2000次左右。

        表1 三種算法的對比結(jié)果

        另外,圖5、圖6還給出了三種算法求解同一TSP問題的收斂特性比較。圖中橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示路徑長度,曲線1對應(yīng)的是本文算法,曲線2對應(yīng)的是蟻群算法,曲線3對應(yīng)的是遺傳算法。圖5是eil51的收斂過程,圖6是prl07的收斂過程。

        圖5 三種算法優(yōu)化eil51的收斂特性比較

        圖6 三種算法優(yōu)化pr107的收斂特性比較

        由于對算法中各參數(shù)的確定并沒有嚴(yán)格的理論指導(dǎo),都是通過實驗確定的,所以對不同TSP問題參數(shù)選取略有不同。如對eil51選取的參數(shù)如下:m=30,w=5,q0=0.8,β=3,ρ=0.15,Q=1000,Q1=1,Q2=5,Antmax=60,Antmin-ratio=1%,N=50,pc=0.8,pm=0.3。而對prl07選取的參數(shù)為:m=70,w=10,q0=0.8,β=3,ρ=0.1,Q=10000,Q1=10,Q2=100,Antmin-ratio=2%,N=50,pc=0.8,pm=0.15。

        由圖5、圖6可以看出,傳統(tǒng)蟻群算法和遺傳算法的收斂性大致相當(dāng),而本文算法的優(yōu)勢很明顯,經(jīng)較少次數(shù)就能找到最優(yōu)解。如圖5中本文算法僅需10次就取得了437的值,而傳統(tǒng)蟻群算法和遺傳算法則需要幾百次才能找到這樣的值。

        6 結(jié)語

        本文對蟻群算法和遺傳算法進(jìn)行了有效結(jié)合,利用各自優(yōu)勢,在加速收斂的同時有效避免了陷入局部最優(yōu),并通過實驗證明達(dá)到了預(yù)期效果。但該算法中的參數(shù)較多,不易控制,需經(jīng)過反復(fù)實驗尋找最優(yōu)參數(shù)組合,在接下來的工作中需要對這些參數(shù)的選擇作進(jìn)一步的深入研究。

        猜你喜歡
        信息量遺傳算法螞蟻
        基于信息理論的交通信息量度量
        基于自適應(yīng)遺傳算法的CSAMT一維反演
        我們會“隱身”讓螞蟻來保護(hù)自己
        一種基于遺傳算法的聚類分析方法在DNA序列比較中的應(yīng)用
        螞蟻
        基于遺傳算法和LS-SVM的財務(wù)危機預(yù)測
        如何增加地方電視臺時政新聞的信息量
        新聞傳播(2016年11期)2016-07-10 12:04:01
        基于改進(jìn)的遺傳算法的模糊聚類算法
        基于多尺度互信息量的數(shù)字視頻幀篡改檢測
        計算機工程(2015年4期)2015-07-05 08:29:20
        螞蟻找吃的等
        亚洲色欲Aⅴ无码一区二区| 夜夜爽妓女8888888视频| 天堂资源中文最新版在线一区| 亚洲一区爱区精品无码| 中文字幕人妻av一区二区 | 无码丰满熟妇浪潮一区二区av| 亚洲成熟中老妇女视频 | 中文字幕丰满乱子无码视频| 无码国产亚洲日韩国精品视频一区二区三区| Jizz国产一区二区| 精品午夜中文字幕熟女| 日本美女中文字幕第一区| 欧洲女人与公拘交酡视频| 亚洲 自拍 另类 欧美 综合| 97久久久久国产精品嫩草影院| 人妻中文字幕在线一二区| 亚洲一区二区三区国产| av综合网男人的天堂| 7878成人国产在线观看| 久青青草视频手机在线免费观看 | 亚洲人成网站18禁止| 日韩插啊免费视频在线观看| 成在线人视频免费视频| 日本女优久久精品观看| 欧美成人精品a∨在线观看| 亚洲日韩精品国产一区二区三区| 欧美国产伦久久久久久久| 亚洲国产中文字幕精品| 无码乱人伦一区二区亚洲一| 国产一区二区牛影视| 国产精品自拍网站在线| 中文字幕本久久精品一区| 痉挛高潮喷水av无码免费| 五十路熟女一区二区三区| 国产不卡在线免费视频| 亚洲精品av一区二区| 欧美 丝袜 自拍 制服 另类| 尤物无码一区| 特级国产一区二区三区| 精品无码av一区二区三区| 国产精品麻豆成人AV电影艾秋|