本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種基于蟻群算法的信息素更新方法。
背景技術(shù):
目前,基于路徑優(yōu)化算法有很多,常見的路徑優(yōu)化算法有遺傳算法、粒子群算法,模擬退火算法等。
遺傳算法具有良好的全局搜索能力,可以快速地將解空間中的全體解搜索出,但是編程較復(fù)雜,需先編碼在解碼,局部搜索能力較差,易產(chǎn)生早熟收斂,導(dǎo)致單純的遺傳算法比較費(fèi)時(shí),在進(jìn)化后期搜索效率較低。
粒子群算法一方面規(guī)則簡(jiǎn)單,容易實(shí)現(xiàn),可調(diào)參數(shù)少,并且對(duì)于參數(shù)的選擇已經(jīng)有成熟的理論研究成果,另一方面對(duì)于離散的優(yōu)化問題處理不佳,容易陷入局部最優(yōu)。
模擬退火算法雖具有擺脫局部最優(yōu)解的能力,能夠以隨機(jī)搜索技術(shù)從概率的意義上找出目標(biāo)函數(shù)的全局最小點(diǎn)。但是,由于模擬退火算法對(duì)整個(gè)搜索空間的狀況了解不多,不便于使搜索過程進(jìn)入最有希望的搜索區(qū)域,使得模擬退火算法的運(yùn)算效率不高。模擬退火算法對(duì)參數(shù)(如初始溫度)的依賴性較強(qiáng),且進(jìn)化速度慢。
遺傳算法局部搜索能力差,耗時(shí)且難以達(dá)到問題最優(yōu)解;粒子群算法的全局搜索能力差,易陷入局部最優(yōu);模擬退火算法運(yùn)算效率不高,不僅費(fèi)時(shí)而且進(jìn)化速度慢。
技術(shù)實(shí)現(xiàn)要素:
為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于蟻群算法的信息素更新方法,按照最大最小相乘取最小更新信息素,減少了算法運(yùn)行的時(shí)間,提高求解過程中不斷的跳出局部最優(yōu)得到新解的能力,加快了算法尋優(yōu)時(shí)的收斂速度。
一種基于蟻群算法的信息素更新方法,包括如下步驟:
步驟1,路徑長(zhǎng)度排列,所述路徑長(zhǎng)度排列是將每一次迭代的路徑長(zhǎng)度按照從小到大的順序排列,即L11,L12...Lq1,Lq2。。。Lqi,Ln1...Lnm;
步驟2,計(jì)算路徑總和,所述路徑總和是對(duì)步驟1中獲取的各代路徑長(zhǎng)度相加求總和;
步驟3,路徑總和與各代路徑對(duì)應(yīng)成比例排列,
所述路徑總和與各代路徑對(duì)應(yīng)成比例排列是基于步驟1和步驟2中得到的路徑長(zhǎng)度排列、路徑總和,通過各代路徑與路徑總和對(duì)應(yīng)成比例,按照從大到小排列;
步驟4,最大最小相乘取最小,更新信息素。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述最大最小相乘取最小,更新信息素是基于步驟1—3處理后得到的路徑長(zhǎng)度排列、路徑總和、路徑與路徑總和對(duì)應(yīng)比例,規(guī)定同一種路徑在N次內(nèi)沒有變化時(shí),信息素更新方法為:
將步驟1得到的各代路徑賦值于向量A,則設(shè)路徑長(zhǎng)度向量A=[L11,L12...Lq1,Lq2。。。Lqi,Ln1...Lnm],各代路徑長(zhǎng)度總和M,各代路徑與路徑總和成比例排列
則Lq信息素更新為:
其中Lnm表示第n種路徑長(zhǎng)度出現(xiàn)m次,Lq1*Lqi與Lqi*Lq1有可能相等。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,所述同一種路徑為路徑長(zhǎng)度相等。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在步驟1中,所述的路徑長(zhǎng)度均賦值于向量A,都屬于向量A中的一個(gè)元素。
在本發(fā)明的一個(gè)優(yōu)選實(shí)施例中,在步驟4中,當(dāng)N=1時(shí),無(wú)需取最小,1<N<J,J是每次迭代中同一種路徑出現(xiàn)的最大次數(shù)。
本發(fā)明的有益效果為;
本發(fā)明經(jīng)過大量實(shí)驗(yàn)驗(yàn)證,以算法運(yùn)行時(shí)間和迭代收斂為判斷標(biāo)準(zhǔn),結(jié)果應(yīng)用較小的時(shí)間成本,在求解過程中不斷的跳出局部最優(yōu)得到新解,加快了算法尋優(yōu)時(shí)的收斂速度,使得優(yōu)化效率逐漸提高。
附圖說明
圖1為某次實(shí)驗(yàn)各代路徑與迭代次數(shù)關(guān)系圖。
附圖說明
蟻群算法核心思想是,螞蟻在尋找食物的前行過程中會(huì)不斷釋放一種物質(zhì)即信息素,后面的螞蟻選擇路徑時(shí)根據(jù)前面螞蟻留在路徑上的信息素濃度大小做判斷,路徑選擇概率與信息素濃度成正比。
結(jié)合圖1,為某次實(shí)驗(yàn)各代路徑與迭代次數(shù)關(guān)系圖,具體地:
一種基于蟻群算法的信息素更新方法,包括如下步驟:
步驟1,路徑長(zhǎng)度排列,所述路徑長(zhǎng)度排列是將每一次迭代的路徑長(zhǎng)度按照從小到大的順序排列,即L11,L12...Lq1,Lq2。。。Lqi,Ln1...Lnm;
步驟2,計(jì)算路徑總和,所述路徑總和是對(duì)步驟1中獲取的各代路徑長(zhǎng)度相加求總和;
步驟3,路徑總和與各代路徑對(duì)應(yīng)成比例排列,
所述路徑總和與各代路徑對(duì)應(yīng)成比例排列是基于步驟1和步驟2中得到的路徑長(zhǎng)度排列、路徑總和,通過各代路徑與路徑總和對(duì)應(yīng)成比例,按照從大到小排列;
步驟4,最大最小相乘取最小,更新信息素:所述最大最小相乘取最小,更新信息素是基于步驟1—3處理后得到的路徑長(zhǎng)度排列、路徑總和、路徑與路徑總和對(duì)應(yīng)比例,規(guī)定同一種路徑(即路徑長(zhǎng)度相等)在N次內(nèi)沒有變化時(shí),信息素更新方法為:
將步驟1得到的各代路徑賦值于向量A,則設(shè)路徑長(zhǎng)度向量A=[L11,L12...Lq1,Lq2。。。Lqi,Ln1...Lnm],各代路徑長(zhǎng)度總和M,各代路徑與路徑總和成比例排列
則Lq信息素更新為:
其中Lnm表示第n種路徑長(zhǎng)度出現(xiàn)m次,Lq1*Lqi與Lqi*Lq1有可能相等。
具體地,在步驟1中,所述的路徑長(zhǎng)度均賦值于向量A,都屬于向量A中的一個(gè)元素。
進(jìn)一步地,在步驟4中,當(dāng)N=1時(shí),無(wú)需取最小,1<N<J,J是每次迭代中同一種路徑出現(xiàn)的最大次數(shù)。
本發(fā)明根據(jù)蟻群算法核心思想,對(duì)信息素進(jìn)行更新,從而能夠降低算法運(yùn)行時(shí)間,提高不斷跳出局部最優(yōu)尋找更優(yōu)值得能力,增強(qiáng)算法收斂速度。