本發(fā)明涉及無線傳感器網(wǎng)絡(luò)領(lǐng)域,尤其涉及一種負(fù)載均衡無線傳感器網(wǎng)絡(luò)路由節(jié)能方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)是由大量的靜止或移動(dòng)的傳感器以自組織方式構(gòu)成的無線網(wǎng)絡(luò),以協(xié)作地感知和采集網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對象的信息,并最終把這些信息發(fā)送給網(wǎng)絡(luò)的所有者。由于無線傳感器網(wǎng)絡(luò)規(guī)模龐大且工作在人比較少的區(qū)域里,更換電池非常困難并且昂貴,所以設(shè)計(jì)無線傳感器網(wǎng)絡(luò)路由協(xié)議的首要目標(biāo)是實(shí)現(xiàn)能量的高效利用,延長網(wǎng)絡(luò)的生存周期。
無線傳感器網(wǎng)絡(luò)路由協(xié)議一般分為平面路由協(xié)議和層次路由協(xié)議。因?yàn)閷哟温酚蓞f(xié)議具有很好的可擴(kuò)展性和自適應(yīng)性,成為了國內(nèi)外專家研究的熱點(diǎn)。在現(xiàn)有的層次路由協(xié)議中,通常將網(wǎng)絡(luò)中節(jié)點(diǎn)分為不同的簇,每個(gè)簇中有一個(gè)簇頭節(jié)點(diǎn)和多個(gè)成員節(jié)點(diǎn),成員節(jié)點(diǎn)負(fù)責(zé)監(jiān)測周圍環(huán)境的信息,將獲取的數(shù)據(jù)傳送給所在簇的簇頭節(jié)點(diǎn)。簇頭節(jié)點(diǎn)負(fù)責(zé)對簇內(nèi)成員節(jié)點(diǎn)進(jìn)行管理,將收集到的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合然后將其發(fā)送給基站。例如Heinzelman等人在簇概念的基礎(chǔ)上提出了一種低功耗自適應(yīng)層次路由協(xié)議LEACH協(xié)議,它打破了前期成簇算法中固定簇頭的思想,算法過程存在周期性循環(huán);Lindsey等人提出的PEGASIS協(xié)議協(xié)議借鑒了LEACH協(xié)議動(dòng)態(tài)選擇簇頭的思想,但是全網(wǎng)中只建立一個(gè)簇,采用單一的鏈?zhǔn)浇Y(jié)構(gòu)進(jìn)行路由;Ossama等人提出的HEED協(xié)議,以完全分布式方式成簇,在一定的迭代次數(shù)內(nèi)進(jìn)行簇頭的選擇,通過最小化控制報(bào)文開銷節(jié)省能量的消耗,均衡節(jié)點(diǎn)能量的開銷;Jisoo等人提出一種鏈狀的路由協(xié)議來減少能量消耗,利用一種回饋機(jī)制最大化均衡能量的分布,從而延長網(wǎng)絡(luò)的生存周期。但是這樣簇頭節(jié)點(diǎn)既要融合簇內(nèi)節(jié)點(diǎn)發(fā)送來的數(shù)據(jù)又要將數(shù)據(jù)傳送到基站,“任務(wù)”繁重,能量消耗遠(yuǎn)遠(yuǎn)大于其他節(jié)點(diǎn),造成了網(wǎng)絡(luò)能量消耗不均衡,影響網(wǎng)絡(luò)的性能。
技術(shù)實(shí)現(xiàn)要素:
基于上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提出了一種負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能方法,利用中繼節(jié)點(diǎn)來均衡簇頭的能耗,在選擇簇頭和中繼節(jié)點(diǎn)的時(shí)候都考慮到了節(jié)點(diǎn)的剩余能量信息和位置信息,并利用改進(jìn)的粒子群算法來進(jìn)行尋優(yōu)選擇。
本發(fā)明的一種負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能方法,該方法包括以下步驟:
步驟1、在有限的區(qū)域隨機(jī)定義無線傳感器節(jié)點(diǎn),并且定義基站的位置;
步驟2、列出選擇簇頭的適應(yīng)值函數(shù),表示為:
其中,F(xiàn)CH為選擇簇頭的適應(yīng)值函數(shù),由分別代表剩余能量信息和位置信息的兩部分信息組成;α∈[0,1]表示權(quán)重,是適應(yīng)度函數(shù)中和的比例系數(shù);表示簇頭節(jié)點(diǎn)與非簇頭節(jié)點(diǎn)的平均剩余能量之比,主要用于評價(jià)節(jié)點(diǎn)的剩余能量,其值越大,節(jié)點(diǎn)選為簇頭的概率越大,參數(shù)的計(jì)算公式表示為:
式中,表示簇頭的平均剩余能量,表示非簇頭節(jié)點(diǎn)的平均剩余能量,|CH|和|non-CH|分別表示簇頭節(jié)點(diǎn)和非簇頭節(jié)點(diǎn)的數(shù)量,CH和non-CH分別表示簇頭節(jié)點(diǎn)集合和非簇頭節(jié)點(diǎn)集合,nodei、nodej分別表示各個(gè)簇頭節(jié)點(diǎn)和非簇頭節(jié)點(diǎn),表示非簇頭節(jié)點(diǎn)i的剩余能量,表示簇頭節(jié)點(diǎn)j的剩余能量;表示非簇頭節(jié)點(diǎn)和基站的平均距離與簇頭節(jié)點(diǎn)和基站的平均距離的比值,,其計(jì)算公式表示為
式中,表示非簇頭節(jié)點(diǎn)和基站的平均距離,表示簇頭節(jié)點(diǎn)和基站的平均距離的比值,d(nodei,BS)表示非簇頭節(jié)點(diǎn)i與基站的距離,d(nodej,BS)表示簇頭節(jié)點(diǎn)j與基站的距離;
步驟3、利用改進(jìn)子群算法選擇簇頭,具體處理包括:
步驟4、通過步驟3選擇出簇頭后,簇頭向其他節(jié)點(diǎn)進(jìn)行廣播,表明自己的身份;
步驟5、列出選擇中繼節(jié)點(diǎn)的適應(yīng)值函數(shù),具體為:
表示中繼節(jié)點(diǎn)的平均能量與普通節(jié)點(diǎn)的平均剩余能量的比例,計(jì)算公式表示為:
其中,為中繼節(jié)點(diǎn)的平均剩余能量,為普通節(jié)點(diǎn)的平均剩余能量,|RL|與|CO|分別表示中繼節(jié)點(diǎn)和普通節(jié)點(diǎn)的數(shù),CO和RL分別表示中繼節(jié)點(diǎn)集合和普通節(jié)點(diǎn)集合,nodez、nodek分別表示中繼節(jié)點(diǎn)和普通節(jié)點(diǎn),表示普通節(jié)點(diǎn)z的剩余能量,表示中繼節(jié)點(diǎn)k的剩余能量;讓盡量大,可以選出能量較高的的節(jié)點(diǎn)作為中繼節(jié)點(diǎn);
同時(shí),被定義為:
其中,為普通節(jié)點(diǎn)與簇頭和基站的平均距離之和,為中繼節(jié)點(diǎn)與與簇頭和基站的平均距離之和,最大化意味著減少簇頭節(jié)點(diǎn)和中繼節(jié)點(diǎn)間的傳輸消耗;
步驟6、利用改進(jìn)的粒子群算法選擇中繼節(jié)點(diǎn);
步驟7、普通節(jié)點(diǎn)向簇頭發(fā)送自己檢測到環(huán)境的信息,公式如下:
其中,ETX(k,d)為傳輸k比特?cái)?shù)據(jù),傳輸距離為d時(shí)消耗的能量;d0為由具體的網(wǎng)絡(luò)模型決定的預(yù)定的閾值;Emp和Efs是功率放大器消耗的單位數(shù)據(jù)放大功率,取決于兩種能耗模型的參數(shù);Eelec為傳輸或者接收每比特?cái)?shù)據(jù)電路耗費(fèi)的能量;
簇頭接收k比特?cái)?shù)據(jù)所消耗的能量為:
Erx(k)=k·Eelec
步驟8、簇頭將數(shù)據(jù)進(jìn)行融合,數(shù)據(jù)融合也會(huì)消耗一定的能量,融合單位比特?cái)?shù)據(jù)的能耗用EDA表示。如果節(jié)點(diǎn)的數(shù)量為n,則融合k比特?cái)?shù)據(jù)所消耗的能量為:
E(k,n)=n×k×EDA
然后將融合后的數(shù)據(jù)發(fā)送給中繼節(jié)點(diǎn);
步驟9、中繼節(jié)點(diǎn)將數(shù)據(jù)發(fā)送給基站,通信結(jié)束。
與現(xiàn)有技術(shù)相比,本發(fā)明的負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能方法降低了傳統(tǒng)無線傳感器網(wǎng)絡(luò)中簇頭的高能耗,均衡全網(wǎng)的能量消耗,延長了整個(gè)網(wǎng)絡(luò)的生存周期。
附圖說明
圖1為本發(fā)明的負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能方法與基于粒子群的路由算法的比較圖,其中,本發(fā)明的生存時(shí)間得到了一定程度上的延長;
圖2為本發(fā)明的負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能方法與現(xiàn)有技術(shù)的初始節(jié)點(diǎn)死亡對比結(jié)果示意圖;
圖3為本發(fā)明的負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能方法與現(xiàn)有技術(shù)的剩余節(jié)點(diǎn)死亡對比結(jié)果示意圖;
圖4為本發(fā)明整體流程示意圖。
具體實(shí)施方式
本發(fā)明從無線傳感器網(wǎng)絡(luò)的特點(diǎn)以及分簇路由算法出發(fā),研究能量受限的無線傳感器網(wǎng)絡(luò)分簇路由算法。具體流程描述如下:
步驟1、在有限的區(qū)域隨機(jī)定義無線傳感器節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)的初始能量都相同,并且定義基站的位置;
步驟2、列出選擇簇頭的適應(yīng)值函數(shù),具體為:
其中FCH為選擇簇頭的適應(yīng)值函數(shù),由分別代表剩余能量信息和位置信息的兩部分信息組成;α∈[0,1]表示權(quán)重,是適應(yīng)度函數(shù)中和的比例系數(shù);表示簇頭節(jié)點(diǎn)與非簇頭節(jié)點(diǎn)的平均剩余能量之比,主要用于評價(jià)節(jié)點(diǎn)的剩余能量,其值越大,節(jié)點(diǎn)選為簇頭的概率越大,參數(shù)的計(jì)算公式表示為:
式中,表示簇頭的平均剩余能量,表示非簇頭節(jié)點(diǎn)的平均剩余能量,|CH|和|non-CH|分別表示簇頭節(jié)點(diǎn)和非簇頭節(jié)點(diǎn)的數(shù)量,CH和non-CH分別表示簇頭節(jié)點(diǎn)集合和非簇頭節(jié)點(diǎn)集合,nodei、nodej分別表示各個(gè)簇頭節(jié)點(diǎn)和非簇頭節(jié)點(diǎn),表示非簇頭節(jié)點(diǎn)i的剩余能量,表示簇頭節(jié)點(diǎn)j的剩余能量。表示非簇頭節(jié)點(diǎn)和基站的平均距離與簇頭節(jié)點(diǎn)和基站的平均距離的比值,,其計(jì)算公式表示為
式中,表示非簇頭節(jié)點(diǎn)和基站的平均距離,表示簇頭節(jié)點(diǎn)和基站的平均距離的比值,d(nodei,BS)表示非簇頭節(jié)點(diǎn)i與基站的距離。d(nodej,BS)表示簇頭節(jié)點(diǎn)j與基站的距離);
步驟3、利用改進(jìn)子群算法選擇簇頭,具體處理包括:
(3-1)、初始化粒子群,設(shè)置種群的大小N,搜索空間的維數(shù)M,最大迭代次數(shù)和加速系數(shù),在整個(gè)搜索空間初始化N個(gè)粒子的初始位置和速度;
(3-2)、計(jì)算每個(gè)粒子的適應(yīng)值函數(shù);
(3-3)、將每個(gè)粒子的適應(yīng)值與該個(gè)體極值對應(yīng)的適應(yīng)值進(jìn)行比較,若此適應(yīng)值較優(yōu),則更新粒子的個(gè)體極值,否則個(gè)體極值不變;將每個(gè)粒子的適應(yīng)值與當(dāng)前全局極值對應(yīng)的適應(yīng)值進(jìn)行比較,若此適應(yīng)值較優(yōu),則更新全局極值,否則,全局極值不變;
(3-4)、更新當(dāng)前粒子速度與當(dāng)前位置,更新公式為:
其中,k為迭代次數(shù);vid是第i個(gè)粒子速度矢量的第d維值,通常被約束在區(qū)間[vmin,vmax]間,用以表示粒子的增長;表示的是第i個(gè)粒子在第d維的位置矢量;c1,c2為加速系數(shù),用來控制粒子的移動(dòng)速度;數(shù)r1,r2∈[0,1]是d維空間中產(chǎn)生的隨機(jī)數(shù);,大小為[0,1];Pid為個(gè)體極值;Pgd為總體全局極值;W為權(quán)重系數(shù),其大小確定了粒子前一次迭代過程的速度對本次迭代過程中粒子速度信息的影響深度,當(dāng)W取值變大時(shí),粒子的全局搜索能力會(huì)變強(qiáng),其局部搜索的能力會(huì)因此被削弱,這樣可以使搜索向全局最優(yōu)的方向靠近而避免陷入局部最優(yōu),。
(3-5)、為了增加粒子的搜索能力,采用非線性更改權(quán)重的方法改變權(quán)重,公式為:
式中,wmin和wmax分別為初始慣性權(quán)重和最大迭代次數(shù)時(shí)的慣性權(quán)重,t為迭代次數(shù),Iterationmax為設(shè)置的最大迭代次數(shù);
(3-6)、讓i=i+1,返回到步驟2,直至i達(dá)到設(shè)定的最大迭代次數(shù)后停止選擇算法,當(dāng)前的適應(yīng)值最大的作為最優(yōu)解,滿足當(dāng)前適應(yīng)值的節(jié)點(diǎn)的集合為所選擇的簇頭;
步驟4、通過步驟3選擇出簇頭后,簇頭向其他節(jié)點(diǎn)進(jìn)行廣播,表明自己的身份;
步驟5、列出選擇中繼節(jié)點(diǎn)的適應(yīng)值函數(shù),具體為:
表示中繼節(jié)點(diǎn)的平均能量與普通節(jié)點(diǎn)的平均剩余能量的比例,計(jì)算公式表示為:
其中,為中繼節(jié)點(diǎn)的平均剩余能量。為普通節(jié)點(diǎn)的平均剩余能量,|RL|與|CO|分別表示中繼節(jié)點(diǎn)和普通節(jié)點(diǎn)的數(shù),CO和RL分別表示中繼節(jié)點(diǎn)集合和普通節(jié)點(diǎn)集合,nodez、nodek分別表示各個(gè)簇頭節(jié)點(diǎn)和非簇頭節(jié)點(diǎn),表示普通節(jié)點(diǎn)z的剩余能量,表示中繼節(jié)點(diǎn)k的剩余能量;讓盡量大,可以選出能量較高的的節(jié)點(diǎn)作為中繼節(jié)點(diǎn)。
同時(shí),被定義為:
其中,為普通節(jié)點(diǎn)與簇頭和基站的平均距離之和,為中繼節(jié)點(diǎn)與與簇頭和基站的平均距離之和,最大化意味著減少簇頭節(jié)點(diǎn)和中繼節(jié)點(diǎn)間的傳輸消耗;
步驟6、同步驟3一樣利用改進(jìn)的粒子群算法選擇中繼節(jié)點(diǎn),
(6-1)、初始化粒子群,設(shè)置種群的大小N,搜索空間的維數(shù)M,最大迭代次數(shù)和加速系數(shù),在整個(gè)搜索空間初始化N個(gè)粒子的初始位置和速度;
(6-2)、計(jì)算每個(gè)粒子的適應(yīng)值函數(shù);
(6-3)、將每個(gè)粒子的適應(yīng)值與該個(gè)體極值對應(yīng)的適應(yīng)值進(jìn)行比較,若此適應(yīng)值較優(yōu),則更新粒子的個(gè)體極值,否則個(gè)體極值不變;將每個(gè)粒子的適應(yīng)值與當(dāng)前全局極值對應(yīng)的適應(yīng)值進(jìn)行比較,若此適應(yīng)值較優(yōu),則更新全局極值,否則,全局極值不變;
(6-4)、更新當(dāng)前粒子速度與當(dāng)前位置,更新公式為:
其中,k為迭代次數(shù);vid是第i個(gè)粒子速度矢量的第d維值,通常被約束在區(qū)間[vmin,vmax]間,用以表示粒子的增長;表示的是第i個(gè)粒子在第d維的位置矢量;c1,c2為加速系數(shù),用來控制粒子的移動(dòng)速度;數(shù)r1,r2∈[0,1]是d維空間中產(chǎn)生的隨機(jī)數(shù);,大小為[0,1];Pid為個(gè)體極值;Pgd為總體全局極值;w為權(quán)重系數(shù),其大小確定了粒子前一次迭代過程的速度對本次迭代過程中粒子速度信息的影響深度,當(dāng)w取值變大時(shí),粒子的全局搜索能力會(huì)變強(qiáng),其局部搜索的能力會(huì)因此被削弱,這樣可以使搜索向全局最優(yōu)的方向靠近而避免陷入局部最優(yōu)。
(6-5)、為了增加粒子的搜索能力,采用非線性更改權(quán)重的方法改變權(quán)重,公式為:
式中,wmin和wmax分別為初始慣性權(quán)重和最大迭代次數(shù)時(shí)的慣性權(quán)重,t為迭代次數(shù),Iterationmax為設(shè)置的最大迭代次數(shù);
(6-6)、讓i=i+1,返回到步驟5,直至i達(dá)到設(shè)定的最大迭代次數(shù)后停止選擇算法,此時(shí)當(dāng)前的適應(yīng)值最大的作為最優(yōu)解,滿足當(dāng)前適應(yīng)值的節(jié)點(diǎn)的集合為所選擇的中繼節(jié)點(diǎn);
步驟7、普通節(jié)點(diǎn)向簇頭發(fā)送自己檢測到環(huán)境的信息,公式如下:
其中,ETX(k,d)為傳輸k比特?cái)?shù)據(jù),傳輸距離為d時(shí)消耗的能量。d0由具體的網(wǎng)絡(luò)模型決定的預(yù)定的閾值d0。在數(shù)據(jù)通信中,依照傳輸距離與閾值的大小關(guān)系,功率放大所采用能耗模型主要分為兩種:d<d0時(shí)采用的是自由空間信道模型;d>d0時(shí)采用的多徑衰減信道模型。Emp和Efs是功率放大器消耗的單位數(shù)據(jù)放大功率,取決于兩種能耗模型的參數(shù);
簇頭接收k比特?cái)?shù)據(jù)所消耗的能量為:
Erx(k)=k·Eelec
步驟8、簇頭將數(shù)據(jù)進(jìn)行融合,數(shù)據(jù)融合也會(huì)消耗一定的能量,融合單位比特?cái)?shù)據(jù)的能耗用EDA表示。如果節(jié)點(diǎn)的數(shù)量為n,則融合k比特?cái)?shù)據(jù)所消耗的能量為:
E(k,n)=n×k×EDA
然后將融合后的數(shù)據(jù)發(fā)送給中繼節(jié)點(diǎn);
步驟9、中繼節(jié)點(diǎn)將數(shù)據(jù)發(fā)送給基站,通信結(jié)束。
下面對本發(fā)明所提出的負(fù)載均衡的無線傳感器網(wǎng)絡(luò)路由節(jié)能算法進(jìn)行驗(yàn)證,同時(shí),通過仿真實(shí)驗(yàn)與已有的路由算法進(jìn)行比較,證明本發(fā)明可以有效地選擇出合適的節(jié)點(diǎn)作為簇頭和中繼節(jié)點(diǎn),延長了網(wǎng)絡(luò)的生存周期。
首先與基于基本粒子群的路由算法(PSO-based)相比較,結(jié)果如圖1所示。
然后在不同的節(jié)點(diǎn)密度下,將本發(fā)明算法分別與現(xiàn)有的HEED算法、Hausdoff算法以及基于基本的粒子群的路由算法(PSO-based)比較初始節(jié)點(diǎn)死亡時(shí)間,比較結(jié)果如圖2所示。
最后在不同的節(jié)點(diǎn)密度下,將本發(fā)明算法分別與現(xiàn)有的HEED算法、Hausdoff算法以及基于基本的粒子群的路由算法比較最后一個(gè)節(jié)點(diǎn)死亡時(shí)間,比較結(jié)果如圖3所示。