基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由算法
2.2 前向螞蟻轉(zhuǎn)移規(guī)則
為了均衡網(wǎng)絡(luò)中節(jié)點(diǎn)的能量消耗,MP-ACA算法在蟻群算法的基礎(chǔ)上,新加入兩節(jié)點(diǎn)間的剩余能量因子改進(jìn)前向螞蟻轉(zhuǎn)移規(guī)則。改進(jìn)后的算法在螞蟻尋找最短路徑的同時(shí)受到了節(jié)點(diǎn)能量消耗的限制。MP-ACA算法中處于節(jié)點(diǎn)i的螞蟻k選擇下一節(jié)點(diǎn)j進(jìn)行訪問的概率pkij使用以下公式確定:
式中,W(j)是節(jié)點(diǎn)j的剩余能量;JK(i)代表了位于節(jié)點(diǎn)i的前向螞蟻k允許訪問的鄰居節(jié)點(diǎn)集合。在這里定義滿足以下兩個(gè)要求的節(jié)點(diǎn)j將會(huì)屬于JK(i):(1)節(jié)點(diǎn)j還未被螞蟻k訪問;(2)節(jié)點(diǎn)j比前一節(jié)點(diǎn)i距離目的節(jié)點(diǎn)更近,且距離源節(jié)點(diǎn)更遠(yuǎn)。
MP-ACA算法采用改進(jìn)的轉(zhuǎn)移規(guī)則,簡化了MACO算法使得MP-ACA更適用于無線傳感器網(wǎng)絡(luò)。同時(shí)前向螞蟻在尋找路徑的同時(shí)受到了節(jié)點(diǎn)能量消耗的限制,平衡了節(jié)點(diǎn)的能量消耗。
2.3 信息素更新規(guī)則
如果節(jié)點(diǎn)i,j是前向螞蟻k選擇路徑上的相鄰節(jié)點(diǎn),當(dāng)每個(gè)前向螞蟻到達(dá)目的節(jié)點(diǎn)時(shí),它們將通過式(5)、式(6)來調(diào)節(jié)。對(duì)前向螞蟻到達(dá)目的節(jié)點(diǎn)后立即轉(zhuǎn)化成一個(gè)后向螞蟻,并且它將沿著反向信息素表回到源節(jié)點(diǎn)。中間節(jié)點(diǎn)收到后向螞蟻時(shí),將按照式(5)、式(7)更新相鄰節(jié)點(diǎn)信息素強(qiáng)度。
MP-ACA算法改進(jìn)了MACO算法信息素更新規(guī)則,可以加快搜索路徑的速度,提高網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性,同時(shí)更進(jìn)一步平衡了網(wǎng)絡(luò)節(jié)點(diǎn)的能量消耗。
2.4 MP-ACA算法步驟
(1)初始化時(shí),Sink節(jié)點(diǎn)跳數(shù)設(shè)置為0,其他節(jié)點(diǎn)跳數(shù)設(shè)置為100。Sink節(jié)點(diǎn)在全網(wǎng)范圍內(nèi)廣播跳數(shù)廣播報(bào)文,該報(bào)文包括數(shù)據(jù)包類型、距Sink節(jié)點(diǎn)跳數(shù)、剩余能量和源地址。該報(bào)文初始值為:跳數(shù)為0,源地址為0。中間節(jié)點(diǎn)收到該報(bào)文后,保存報(bào)文中節(jié)點(diǎn)的地址、跳數(shù)和能量狀態(tài)。
如果收到的報(bào)文中跳數(shù)小于節(jié)點(diǎn)自身的跳數(shù),則將自身的跳數(shù)設(shè)置為報(bào)文中的跳數(shù)加1,并轉(zhuǎn)發(fā)自己新的跳數(shù)信息和能量信息的報(bào)文,否則不廣播。節(jié)點(diǎn)在轉(zhuǎn)發(fā)該報(bào)文的過程中收集、存儲(chǔ)鄰居節(jié)點(diǎn)相關(guān)信息,最終在全網(wǎng)內(nèi)建立了到Sink節(jié)點(diǎn)的跳數(shù)信息。
評(píng)論