朱響斌 宋新方
摘要:LEACH算法在無線傳感網(wǎng)絡(luò)中的應(yīng)用十分廣泛,但是實際的應(yīng)用環(huán)境中由于事件發(fā)生對節(jié)點能量分布有很大的影響。有事件發(fā)生時的算法是在考慮有事件發(fā)生時對整個網(wǎng)絡(luò)的影響,通過對LEACH算法的改進(jìn),加入事件對節(jié)點的能量的影響,同時考慮到節(jié)點距離事件遠(yuǎn)近數(shù)據(jù)發(fā)送對該節(jié)點能量的影響,把該影響加入到對節(jié)點的影響中去,得出新算法跟能符合在有事件發(fā)生時的結(jié)論。
關(guān)鍵詞:節(jié)點能量;事件;距離;仿真;生命周期
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)05-1138-03
Abstract:LEACH algorithm is widely used in wireless sensor network,but taking into account the practical application environmentin the event had a great influence on the contact energy distribution. So the paper is in a time of the incident algorithm.Thesis consider the impact on the entire network when an event occurs, through the LEACH algorithm improvements, the impact of adding events on energy nodes, taking into account the impact of node distance data transmission from the node incident energy, the effect of adding to the impact on the node's go, come with the new algorithm can meet in an event occurs conclusions.
Key words: Node energy; event; distance; simulation; life cycle
無線傳感網(wǎng)絡(luò)是分布在一定區(qū)域的大量傳感器節(jié)點組成的,通過多跳的無線自組網(wǎng)絡(luò)體系進(jìn)行通信,作用是將分布在廣大區(qū)域上的對象的信息傳送給信息收集者。傳感器感知對象和觀察者構(gòu)成了傳感網(wǎng)絡(luò)的三要素[1]。如果說internet的組成方式改變了現(xiàn)實世界人與人之間的聯(lián)系與溝通方式的話,那么無線傳感網(wǎng)絡(luò)的出現(xiàn)就是改變了人與客觀世界的聯(lián)系和溝通方式[1]。通過無線傳感網(wǎng)絡(luò)人們可以與客觀世界進(jìn)行信息的溝通。
Leach算法作為無線傳感網(wǎng)絡(luò)的算法,通過不斷刷新和建立簇來保證各個節(jié)點能量的均衡性,通過簇內(nèi)節(jié)點的輪選,從而實現(xiàn)各節(jié)點能量的均衡分配[1]。但是,由于簇頭節(jié)點不斷地匯聚和發(fā)送數(shù)據(jù),使得簇頭節(jié)點能量消耗較大,該算法沒有把節(jié)點的剩余能量當(dāng)做簇頭選舉節(jié)點的參考,當(dāng)一輪結(jié)束時一個簇頭節(jié)點在下一輪可能會從新被選為簇頭節(jié)點,加速該節(jié)點剩余能量的消耗[2]。
該文加入發(fā)生事件來研究對該算法的改進(jìn),提高網(wǎng)絡(luò)存活時間,從而提高整個網(wǎng)絡(luò)的利用率。在設(shè)計的新算法中加入事件發(fā)生時與節(jié)點距離的因素從而實現(xiàn)對該算法的改進(jìn)。
1 LEACH算法簡介
在LEACH算法中“輪”是一個重要的概念,在每一個輪中會包括簇的建立和穩(wěn)定的數(shù)據(jù)傳輸階段,從下面的圖中可以看出該算法的整個運(yùn)行過程[2]。
圖 1 輪的示意圖
LEACH算法的基本設(shè)計思想是通過一個隨機(jī)的循環(huán)來進(jìn)行簇首的選擇,讓數(shù)據(jù)傳輸階段的高能量消耗通過這一隨機(jī)的循環(huán)來使各節(jié)點均勻的分?jǐn)偅WC整個網(wǎng)絡(luò)的均衡性[2]。其具體的選擇辦法是:在0-1之間由傳感器產(chǎn)生一隨機(jī)數(shù),若該隨機(jī)數(shù)小于某一設(shè)定的閾值T(n),則該節(jié)點即選為簇首節(jié)點。其中T(n)的計算方法如下式所示。
其中,P是簇首在所有節(jié)點中所占的百分比,r是選舉輪數(shù),rmod(1/P)代表這一輪循環(huán)中當(dāng)選為簇首的節(jié)點個數(shù),G是這一輪循環(huán)中未當(dāng)選為簇首的節(jié)點集合。LEACH算法中建立簇的流程如圖2所示[2]。
在數(shù)據(jù)傳輸階段,由于數(shù)據(jù)傳輸?shù)母吆哪?,在離基站較近的簇首往往會因為傳輸大量的數(shù)據(jù)而很快死亡,并且在事件發(fā)生的區(qū)域不同時,事件發(fā)生點周圍的節(jié)點和簇首也會因為耗能過多而很快死去,因此在新設(shè)計的算法中我們就加入了事件發(fā)生的因素[3]。事件發(fā)生時,由于周圍節(jié)點要傳輸事件數(shù)據(jù),要消耗大量的能量,在簇首的選擇時選擇與事件發(fā)生距離較遠(yuǎn)的節(jié)點,從而延長事件發(fā)生時網(wǎng)絡(luò)的運(yùn)行時間[4]。
圖 2 LEACH算法流程
2 新算法的設(shè)計
2.1簇首建立和簇的形成階段
在傳統(tǒng)的leach 算法中,都是以沒有事件發(fā)生,考慮整個網(wǎng)絡(luò)能量減少,或是以某一概率減少的情況下的分簇算法。但是,該文是在事件發(fā)生的過程中考慮事件的具體位置,再將這個位置因數(shù)作為參量加入到leach算法中去。在這個模型中,我們假設(shè)某個事件已經(jīng)存在的情況下,給出某事件已經(jīng)發(fā)生,默認(rèn)已知該事件的位置信息,根據(jù)當(dāng)前節(jié)點與事件發(fā)生位置計算出相對距離,然后再由這個距離對周圍節(jié)點數(shù)據(jù)發(fā)送的影響形成一個事件發(fā)生次數(shù)的的參量,從而實現(xiàn)對在有事件影響的情況下對整個網(wǎng)絡(luò)分簇算法的影響。所以在LEACH-T算法中并不是按照無事件發(fā)生的情況下進(jìn)行的算法設(shè)計,而是按已有事件發(fā)生時的實際狀態(tài)的分布進(jìn)行的分簇算法,考慮事件發(fā)生數(shù)據(jù)傳送對周圍節(jié)點能量的影響,減小了事件周圍節(jié)點成為簇頭節(jié)點的概率從而增加整個網(wǎng)絡(luò)節(jié)點的存活時間[5]。新的算法設(shè)計如下:
其中tempevent是事件發(fā)生時對周圍節(jié)點的影響參數(shù)。
2.2算法設(shè)計過程分析
在LEACH算法中,是在靜態(tài)消耗節(jié)點能量的情況下,建立起來的能量算法模型,只沒有考慮能量消耗,但是在實際的應(yīng)用中要加入能量因為某區(qū)域事件發(fā)生比較密集網(wǎng)絡(luò)節(jié)點能量消耗的不均衡性,此算法就是在考慮到這方面的的因素對LEACH算法進(jìn)行改進(jìn)。
temp_rand<= ((p*tempevent)/(1-p*mod(r,round(1/p))))
期中tempevent=(1-S(i).eventcount*5/totalevent)
S(i).eventcount為某事件發(fā)送數(shù)據(jù)的次數(shù);
Totalevent 為事件發(fā)生的總數(shù)
在這個算法中,加入了事件發(fā)生的因素,由于事件發(fā)生造成對周圍節(jié)點的影響,加入到算法中,又由于距離的不同對節(jié)點的影響不同,需要考慮節(jié)點與事件間距離的大小,如下式
eventd=sqrt((S(i).xd-20)^2+(S(i).yd-20)^2)
期中假設(shè)事件發(fā)生點是在坐標(biāo)(20,20)位置發(fā)生,當(dāng)這個數(shù)值小于20及事件發(fā)生在半徑為該節(jié)點20范圍之內(nèi)時, 由下式
messagecount=fix((20-eventd)/5)
來決定信息發(fā)送次數(shù)。其中messagecont為事件次數(shù)。
3 仿真結(jié)果分析
3.1仿真結(jié)果
仿真結(jié)果如下圖3和圖4所示。其中初始節(jié)點都是100個由縱坐標(biāo)表示,橫坐標(biāo)表示運(yùn)行時間,單位是秒。圖3是兩種算法的對比。
圖 3 新算法LEACH-t與LEACH算法比較
圖4 不同時段存活節(jié)點的數(shù)目比
3.2仿真結(jié)果分析
如圖3所示結(jié)果,對于LEACH算法來說,當(dāng)初始節(jié)點同時為100個,無線傳感網(wǎng)絡(luò)運(yùn)行400秒時部分節(jié)點開始死亡,而改進(jìn)的算法在第600秒才開始有節(jié)點死亡,這有利于網(wǎng)絡(luò)前期數(shù)據(jù)傳輸?shù)姆€(wěn)定,能提高整個網(wǎng)絡(luò)的穩(wěn)定性和可靠性。
在網(wǎng)絡(luò)運(yùn)行1000秒之前,有大于80個節(jié)點在工作,改進(jìn)的LEACH-T算法優(yōu)于LEACH算法。在1000秒到1200秒之間改進(jìn)的LEACH-T算法與LEACH算法并無太大差別。
在網(wǎng)絡(luò)節(jié)點大部分都死亡的情況下,1200秒到1400秒之間,LEACH-T算法 還是優(yōu)于LEACH算法的。
4 結(jié)束語
總的來說,LEACH-T算法有效地延長了網(wǎng)絡(luò)的生命周期,這一點證明了前面對LEACH-T算法性能的分析結(jié)果。而且LEACH-T算法與LEACH算法相比,提高了能量利用率。高而網(wǎng)絡(luò)的生存時間就因為節(jié)點的能量的延長而延長了,網(wǎng)絡(luò)的可靠性也會因為網(wǎng)絡(luò)生命周期的提高而有所增加。
參考文獻(xiàn):
[1] 孫利民,李建中,陳渝,朱紅松.無線傳感網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[2] 李曉維,徐勇軍,任豐原.無線傳感器網(wǎng)絡(luò)技術(shù)[M].北京:理工大學(xué)出版社,2007.
[3] 周又玲,黃本雄,王芙蓉.無線傳感器網(wǎng)絡(luò)的能源策略分析[J].信息技術(shù),2005,7(1):43-46.
[4] 王雍,楊海波,馮淑娟.無線傳感器網(wǎng)絡(luò)中一種能量有效的分簇算法[J].傳感器與微系統(tǒng),2007,26(12):19-21.
[5] 陳力軍,毛鶯池,陳道蓄等.平均度約束的無線傳感器網(wǎng)絡(luò)拓?fù)淇刂芠J].計算機(jī)學(xué)報,2007,30(9):1544-1550.
[6] 金鑫,熊焰,擊麗華,等.基于可連CeH的無線傳感器網(wǎng)絡(luò)拓?fù)淇刂扑惴╗Jl.計算機(jī)研究與發(fā)展,2008,45(2):217-226.
[7] 李建波,黃劉生,徐宏力,等.一種密集部署傳感器網(wǎng)絡(luò)的分簇算法[J].計算機(jī)研究與發(fā)展,2008,45(7):1106-1-4.
[8] S.M.N.Alam,Z.J.Haas.Topology control and network life time in three dimensional wirelesssensor networks [R].CoRR,2006,abs/cs/0609047.
[9] E.Shimon.Graph Algorihms[M].ComPuter Science Press,NewYork,1979.