基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由算法
隨著無線通信技術(shù)、電子技術(shù)、傳感器技術(shù)和微電系統(tǒng)的飛速發(fā)展,無線傳感器網(wǎng)絡(luò)的研究越來越受到人們的重視。傳感器網(wǎng)絡(luò)是由部署在觀測環(huán)境內(nèi)的大量微型傳感器節(jié)點通過無線通信方式組成的一種無線網(wǎng)絡(luò)。
本文引用地址:http://2s4d.com/article/160358.htm組成傳感器網(wǎng)絡(luò)的節(jié)點包括傳感器和匯聚節(jié)點(Sink)。傳感器節(jié)點的能量十分有限,并且在部署后難以再次補充能量,因此傳感器網(wǎng)絡(luò)存在嚴重的能量約束問題[1]。
參考文獻[2]提出一種無線傳感器網(wǎng)絡(luò)AODV(AdhocOn-DernandDistanceVector)路由協(xié)議改進方案,通過改進RREQ協(xié)議幀,使節(jié)點的剩余能量值參與到路徑中,優(yōu)化RREQ洪泛傳播。但該算法是基于單路徑數(shù)據(jù)傳輸,沒有考慮節(jié)點的負載狀況,節(jié)點容易產(chǎn)生擁塞,導(dǎo)致數(shù)據(jù)包的重傳或數(shù)據(jù)丟失的情況。
參考文獻[3]提出了一種基于蟻群優(yōu)化的路由算法ARAWSN(ACO-BasedRoutingAlgorithmforWirelessSensorNetworks),該算法在定向擴散協(xié)議的基礎(chǔ)上,通過搜尋螞蟻以廣播的方式在網(wǎng)絡(luò)中擴散建立起源節(jié)點到目的節(jié)點的多條路徑的路由表。
利用蟻群算法的轉(zhuǎn)移概率的方式來進行路徑的選擇,從而平衡網(wǎng)絡(luò)中節(jié)點能量的消耗。該算法建立了所有到目的節(jié)點的路徑,存在很大的冗余,影響網(wǎng)絡(luò)的實時性,且在路由建立過程中采用洪泛的方式導(dǎo)致網(wǎng)絡(luò)的路由開銷比較大。
參考文獻[4]綜合考慮了均衡傳輸能量消耗和節(jié)點剩余能量,提出了多種群蟻群優(yōu)化路由算法MACO(MultiAntColonyOptimization)。該算法優(yōu)化了基本蟻群算法的螞蟻前向移動的選擇概率模型,同時利用多種群獲得多條優(yōu)化路徑。但該算法需要進行多次迭代,且可能陷入局部最優(yōu)解,影響網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膶崟r性。
針對上述路由算法及其存在的不足,本文提出了基于蟻群算法的無線傳感器網(wǎng)絡(luò)按需多路節(jié)能路由算法MP-ACA(On-demandMulti-pathandPower-savingAntColonyAlgorithm)。該算法結(jié)合蟻群算法和AODV路由協(xié)議,能夠在源節(jié)點和目的節(jié)點之間建立起多條鏈路不相關(guān)路由,并改善了蟻群算法在無線傳感器網(wǎng)絡(luò)中查找路由的多次迭代的策略,有效地減少了擁塞頻率、降低了路由的開銷,同時均衡了節(jié)點的能量開銷,延長了網(wǎng)絡(luò)的生命周期。
1 蟻群算法簡介
1.1 基本蟻群算法原理
蟻群算法[5]ACA(AntColonyAlgorithm)是一種模擬昆蟲王國中螞蟻群體智能行為的仿生優(yōu)化算法,其基本原理可大致描述如下:自然界螞蟻會在所經(jīng)過的路徑上釋放一定的信息素,后來的螞蟻會根據(jù)信息素強度來選擇路徑,信息素強度越大的路徑被選擇的概率越大,于是就形成了一種正反饋機制,最終螞蟻會選擇信息素最大的最短路徑。蟻群算法通過釋放“人工螞蟻”來模擬自然螞蟻的行為以完成上述的選優(yōu)過程。
1.2 蟻群算法
根據(jù)螞蟻覓食的基本原理,科學(xué)家們設(shè)計了尋找最優(yōu)路徑的蟻群算法,其主要步驟為:
2 按需多路節(jié)能路由算法設(shè)計
針對無線傳感器網(wǎng)絡(luò)數(shù)據(jù)多跳傳輸、節(jié)點能量有限等特性,本文對基本蟻群算法和MACO算法進行改進,并結(jié)合AODV路由協(xié)議,賦予螞蟻新的特性和路徑搜索方式。下面介紹本文研究中使用的相關(guān)定義。
定義1:從源節(jié)點到目的節(jié)點的路徑搜索螞蟻稱作前向螞蟻,它執(zhí)行路徑搜索功能,并建立反向信息素表。
定義2:前向螞蟻到達目的節(jié)點后,從目的節(jié)點返回到源節(jié)點的螞蟻稱作后向螞蟻,它執(zhí)行信息素更新功能,并建立路由表。
定義3:前向螞蟻在路徑搜索過程中,到達某一節(jié)點后建立的指向源節(jié)點的路由表稱作反向信息素表,該表包括源節(jié)點、下一個節(jié)點、反向節(jié)點信息素τ(j,i)。
2.1 算法設(shè)計思想
MP-ACA算法在Ant-Net算法[6]的基礎(chǔ)上,將螞蟻分為前向螞蟻和后向螞蟻。為了實現(xiàn)不同節(jié)點的能量消耗均衡,MP-ACA算法中,將前向螞蟻要訪問的節(jié)點的剩余能量作為影響信息素濃度的一個參數(shù)。MP-ACA算法通過m只前向螞蟻同時獨立地進行路徑搜索,并建立反向信息素表。
當(dāng)每個前向螞蟻到達目的節(jié)點時,它們將立即轉(zhuǎn)化成一個后向螞蟻,后向螞蟻根據(jù)反向信息素表反向回到源節(jié)點后一次路由建立完畢,建立起信息素路由表以代替?zhèn)鹘y(tǒng)的網(wǎng)絡(luò)節(jié)點路由表,并采用一種新的信息素規(guī)則進行信息素更新。
同時MP-ACA算法在極大-極小蟻群算法[7]上將各條路徑上的信息素濃度限制在[τmin,τmax]之間,τmin可以有效地避免算法停滯,τmax避免某條路徑上的信息素遠大于其他路徑,使所有的螞蟻都集中到同一條路徑上面,限制算法的擴散。在MP-ACA算法中,前向螞蟻轉(zhuǎn)移規(guī)則、信息素更新規(guī)則詳細設(shè)計如下。
評論