高 艷
(晉中信息學(xué)院大數(shù)據(jù)學(xué)院,山西 太谷 030800)
無線傳感器網(wǎng)絡(luò)為一種由大量部署在指定區(qū)域內(nèi),具備計算能力及無線通信能力的微小傳感器組成的一個智能化網(wǎng)絡(luò),用于感知、處理以及傳輸其覆蓋區(qū)域中的目標對象信息。無線傳感器網(wǎng)絡(luò)具有組建方式自由、網(wǎng)絡(luò)拓撲結(jié)構(gòu)隨意和控制方式靈活等特點。無線傳感器網(wǎng)絡(luò)具有運行模式、待機模式和休眠模式,通過轉(zhuǎn)換不同形式的工作模式,可以有效降低數(shù)據(jù)傳輸能耗。傳感器網(wǎng)絡(luò)中的各節(jié)點間距離較短,通常采用多跳無線通信進行連接,能夠在相對獨立的環(huán)境下自主運行,也可以直接連接到互聯(lián)網(wǎng),使相關(guān)管理人員能夠遠程訪問。便捷地通信方式使得傳感器網(wǎng)絡(luò)被廣泛應(yīng)用于環(huán)境監(jiān)測、軍事等領(lǐng)域。在運行的過程中,感知節(jié)點必須將采集得到的大量相關(guān)信息,從初始節(jié)點發(fā)送至Sink節(jié)點,再通過Sink節(jié)點進一步處理分析數(shù)據(jù)。大多數(shù)節(jié)點的能量主要是通過電池來供電,來源較為有限,因此合理地利用有效能量完成更大規(guī)模數(shù)據(jù)傳輸就變得尤為重要。
關(guān)于數(shù)據(jù)傳輸優(yōu)化的方法有很多,文獻[1]提出了大數(shù)據(jù)資源調(diào)度下船舶網(wǎng)絡(luò)信息傳輸方法,對船舶多進程網(wǎng)絡(luò)信息進行整合,優(yōu)化其PCI地址映射機制,改善數(shù)據(jù)傳輸?shù)拇虬绞剑岣邿o線網(wǎng)絡(luò)傳輸協(xié)議的穩(wěn)定性。實驗表明該方法雖然能夠有效降低傳輸消耗的能量,但是需要多次數(shù)據(jù)傳輸才能完成通信,傳輸耗時較長。文獻[2]提出了基于改進自適應(yīng)對偶預(yù)測的網(wǎng)絡(luò)數(shù)據(jù)傳輸方法,該算法無需借助數(shù)據(jù)歷史表來在漂移時更新模型參數(shù),從存儲的參數(shù)中執(zhí)行新模型參數(shù),參數(shù)對應(yīng)于先前在過去預(yù)測階段使用的模型,并在超過用戶強加的閾值時消除,實現(xiàn)優(yōu)化傳輸。該方法提高了傳輸?shù)姆€(wěn)定性,節(jié)點傳輸能耗高,傳感器網(wǎng)絡(luò)壽命低,還需繼續(xù)深入研究。文獻[3]和文獻[4]提出了一種邊緣計算節(jié)點能量優(yōu)化方法,構(gòu)建約束路徑最優(yōu)節(jié)點模型預(yù)處理傳輸原始數(shù)據(jù),利用能量感知節(jié)點完成數(shù)據(jù)傳輸資源分配,降低網(wǎng)絡(luò)能耗。文獻[5]提出了一種故障恢復(fù)和快速數(shù)據(jù)傳輸?shù)膬?yōu)化技術(shù),在移動自組網(wǎng)中利用鏈路和節(jié)點的生命周期設(shè)定數(shù)據(jù)傳輸最佳路徑,避免頻繁斷開和節(jié)點故障,提高數(shù)據(jù)包的發(fā)送率和吞吐量。文獻[6]利用FPGA跨時鐘域的交互能力,對數(shù)據(jù)傳輸鏈路進行協(xié)議糾錯,以此優(yōu)化發(fā)送端和接收端的嵌入式效果。文獻[7]提出自然優(yōu)化的同構(gòu)和異構(gòu)網(wǎng)絡(luò)能量感知數(shù)據(jù)采集技術(shù),通過能量感知聚類方法提高數(shù)據(jù)傳輸聚類熟練度,根據(jù)能量效率、簇節(jié)點密度和基站距離等參數(shù)完成數(shù)據(jù)傳輸鏈路的采集,以數(shù)據(jù)聚合消除冗余數(shù)據(jù),降低數(shù)據(jù)傳輸成本和開銷。數(shù)據(jù)匯聚是無線傳感器網(wǎng)絡(luò)中處理數(shù)據(jù)傳輸和匯聚數(shù)據(jù)節(jié)點的一個重要過程,文獻[8]采用蟻群算法,在數(shù)據(jù)聚合過程中選取最優(yōu)動態(tài)簇頭,提高數(shù)據(jù)傳輸能力和效率,降低傳輸能耗。
雖然上述算法均實現(xiàn)了數(shù)據(jù)傳輸,但是存在耗時較長,節(jié)點能耗較高等問題,為此本文結(jié)合分簇算法給出了一種無線傳感器網(wǎng)絡(luò)大數(shù)據(jù)傳輸優(yōu)化方法。在研究過程中,為提高節(jié)點能量的利用率,計算出無線傳感器網(wǎng)絡(luò)的最優(yōu)動態(tài)簇頭數(shù)量,確定動態(tài)簇頭數(shù)量后,采用最小路徑法計算出能耗最小的傳輸路徑,完成數(shù)據(jù)傳輸優(yōu)化,降低了節(jié)點傳輸時的能量消耗,提高了傳輸?shù)姆€(wěn)定性和精度。
無線傳感器網(wǎng)絡(luò)的各節(jié)點間的連接是通過無線信道建立的,兩節(jié)點間相隔越遠,數(shù)據(jù)傳輸所需要消耗的能量就越多,動態(tài)簇頭節(jié)點的數(shù)量和位置會直接影響能量利用率,因此為實現(xiàn)傳感器數(shù)據(jù)傳輸優(yōu)化,首先需要選取最優(yōu)動態(tài)簇頭。由于無線傳感器網(wǎng)絡(luò)具有一定的移動能力,因此選擇動態(tài)網(wǎng)絡(luò)作為終端網(wǎng)絡(luò)控制,可以更好地部署網(wǎng)絡(luò)移動節(jié)點。
設(shè)在區(qū)域M×M中共放置了N個傳感器,該區(qū)域被劃分為K個簇,則每個簇中就平均含有N/K個節(jié)點,且每個簇中存在一個動態(tài)簇頭CH以及N/K-1個普通節(jié)點。各動態(tài)簇頭節(jié)點中產(chǎn)生的能耗分別為:接收節(jié)點數(shù)據(jù)時消耗的能量、數(shù)據(jù)聚合所產(chǎn)生的能耗、數(shù)據(jù)發(fā)送所產(chǎn)生的能耗[9],此時動態(tài)簇頭CH節(jié)點的能耗可以表示為:
式中:l為數(shù)據(jù)的比特數(shù)[10];Eelec表示網(wǎng)絡(luò)中收發(fā)電路產(chǎn)生的能耗;(N/K-1)lEelec為動態(tài)簇頭接收N/K-1個節(jié)點數(shù)據(jù)后產(chǎn)生的能量消耗;EDA為單位比特數(shù)據(jù)聚合能耗[11];dtoBS為動態(tài)簇頭距Sink節(jié)點[12]的距離;εmp為多路衰減模型系數(shù);l(Eelec+εmpd4toBS)為與Sink通信后動態(tài)簇頭消耗的能量。由于區(qū)域內(nèi)的各個動態(tài)簇頭與節(jié)點Sink的距離相對較遠,其能耗符合多路衰減模型[13],所以dtoBS為四次方,(N/K)lEDA為簇內(nèi)所有節(jié)點l聚合產(chǎn)生的能量消耗。無線傳感器網(wǎng)絡(luò)中的節(jié)點狀態(tài)位置分布會影響能耗,同時節(jié)點自身的能耗與狀態(tài)位置有關(guān),因此節(jié)點為均勻分布。
單個簇節(jié)點的能耗可以表示為:
式中:dtoCH表示簇節(jié)點與動態(tài)簇頭之間的距離,由于二者之間的距離大多數(shù)情況下較短,符合自由空間模型[14],所以dtoCH為二次方;εfs為自由傳播模型系數(shù)[15]。
設(shè)區(qū)域M×M為一個正方形,表示的是該區(qū)域內(nèi)整體動態(tài)簇面積,由于在該區(qū)域內(nèi)劃分了K個簇,所以單獨一個簇的面積表示為M2/K,每個簇的形狀可以根據(jù)實際情況決定,網(wǎng)絡(luò)內(nèi)的節(jié)點分布函數(shù)是ρ(x,y)。則簇內(nèi)節(jié)點與動態(tài)簇頭之間距離的期望值可以表示為:
此時式(2)中的簇內(nèi)節(jié)點產(chǎn)生的能量消耗可以表示為:
動態(tài)簇頭和簇成員所需能量Ecluster可以表示為:
整個網(wǎng)絡(luò)的一輪數(shù)據(jù)傳輸需要的能量即為K個簇需要能量的總和,如下:
式中:d4toBS的大小和K沒有直接關(guān)系。
為使總能耗值Etotal的值最小,將式(7)等號的兩邊同時對K求偏導(dǎo),令,則在駐點處即可獲得K的最優(yōu)值如下:
進一步簡化式(8)即可獲得網(wǎng)絡(luò)中的最優(yōu)動態(tài)簇頭數(shù)量可以表示為:
至此就獲得最優(yōu)動態(tài)簇頭數(shù)量,式(9)中各參數(shù)的具體值,可以根據(jù)實際情況在設(shè)置網(wǎng)絡(luò)的過程中給定。
由上述分析可知,傳感器網(wǎng)絡(luò)是由多個不相交簇組成,動態(tài)簇頭與簇內(nèi)節(jié)點通過無線網(wǎng)絡(luò)進行通信,同時會由不同的簇內(nèi)節(jié)點擔任中繼功能,降低數(shù)據(jù)傳輸能耗[16]。假設(shè)節(jié)點j和動態(tài)簇頭之間的距離較遠,則二者可以選擇直接通信或者通過節(jié)點i間接通信。若兩個節(jié)點的間距為a,節(jié)點j、節(jié)點i與動態(tài)簇頭間距離分別為b和c,線段a、b之間的夾角為θ。由上文可知兩個節(jié)點之間的距離越短,能耗越低[17],因此設(shè)置相距d0的兩個節(jié)點直接進行通信,d0的值可根據(jù)傳感器網(wǎng)絡(luò)的實際情況確定。為簡化計算,設(shè)a=b,c>d0,由余弦定理可得:
式中:θ∈(0,180°),當θ∈(0,90°)時,a2+b2>c2,又因為a=b,則又可以將式(10)進一步簡化為:
下面分別從a<d0、a>d0兩個方面來分析能耗問題。
①當a<d0時,那么節(jié)點j與動態(tài)簇頭直接通信產(chǎn)生的總能耗Edirect、由節(jié)點i轉(zhuǎn)發(fā)間接通信產(chǎn)生的總能耗Eindirect可以表示為:
直接、間接兩種通信方式的能耗差可以表示為:
由式(11)可知,若動態(tài)簇頭與兩個節(jié)點位于同一直線上,那么由節(jié)點i轉(zhuǎn)發(fā)的間接通信所產(chǎn)生的能耗最低[18],則設(shè)θ=π,那么a=0.5c,為了使間接通信有意義,規(guī)定ΔE>0,則有:
由此結(jié)合上文分析又可得:
式(16)無解,因此可得簇內(nèi)節(jié)點需要與動態(tài)簇頭直接進行通信才能節(jié)約更多能量。
②當a>d0時,節(jié)點j由節(jié)點i間接轉(zhuǎn)發(fā)產(chǎn)生的總能耗可以表示為:
通過式(12)求解出直接通信、間接通信之間的能耗差如下:
設(shè)θ=π,a=b,則:
與a<d0同理,ΔE>0,則有:
由上述分析可得,c>2d0時,傳感器網(wǎng)絡(luò)的路由節(jié)點通過多路跳路由的方式進行數(shù)據(jù)傳輸,可一定程度節(jié)約能耗。
綜合以上分析,優(yōu)化可分為如下步驟:
步驟1 由網(wǎng)絡(luò)中的Sink節(jié)點廣播組建消息。
步驟2 計算動態(tài)簇頭與節(jié)點間距離,若低于1.5d0,則與節(jié)點進行直接通信,反之進行步驟3。
步驟3 根據(jù)傳感器網(wǎng)絡(luò)的實際情況設(shè)置接收計時器,等待動態(tài)簇頭發(fā)生信息表。
步驟4 結(jié)束計時,計算待轉(zhuǎn)發(fā)數(shù)據(jù)的動態(tài)簇頭和各候選動態(tài)簇頭之間的距離d與夾角θ。
步驟5 計算θ數(shù)值,若其大于90°則轉(zhuǎn)下一步,反之則直接進入第9步。
步驟6 選擇出θ最大的動態(tài)簇頭,通過該動態(tài)簇頭向外發(fā)出接入請求。
步驟7 收到接入請求的節(jié)點自動計算節(jié)點度是否超出其最大限定,是則反饋給發(fā)出方delay消息,反之則返回accept消息。
步驟8 發(fā)出接入請求的動態(tài)簇頭收到反饋消息accept后,繼續(xù)選擇該節(jié)點的下一節(jié)點作為待選轉(zhuǎn)發(fā)節(jié)點,若接收到delay反饋信息,則刪除相應(yīng)的數(shù)據(jù)信息。刪除后如果還能尋找到候選節(jié)點,則再次跳到步驟6,反之進行步驟9操作。
步驟9 使發(fā)出接入請求的動態(tài)簇頭與Sink節(jié)點直接通信。
本文在仿真測試過程中,將無線傳感器網(wǎng)絡(luò)應(yīng)用于某地區(qū)動植物棲息地的生態(tài)情況監(jiān)測中,通過布設(shè)無線傳感器節(jié)點獲取生物多樣性監(jiān)測數(shù)據(jù),利用提出的分簇算法將無線傳感器節(jié)點劃分為多個動態(tài)簇頭,利用最優(yōu)動態(tài)簇頭實現(xiàn)基站與各節(jié)點之間的通信,然后將數(shù)據(jù)轉(zhuǎn)發(fā)傳遞和直接傳遞給相關(guān)生態(tài)環(huán)保機構(gòu)。本文選用如圖1所示的仿真監(jiān)測環(huán)境。
圖1 無線傳感器網(wǎng)絡(luò)監(jiān)測環(huán)境
仿真數(shù)據(jù)采用伯克爾實驗室采集的2021年3月份的無線傳感器網(wǎng)絡(luò)通信數(shù)據(jù),數(shù)據(jù)由57個無線傳感器采集而來,每個節(jié)點的具體參數(shù)如表1所示。
表1 無線傳感器節(jié)點參數(shù)
該實驗室的無線傳感器節(jié)點數(shù)量還是相對較少,采集獲得的數(shù)據(jù)信息也較少,因此為驗證算法能夠?qū)崿F(xiàn)大規(guī)模數(shù)據(jù)傳輸優(yōu)化,通過加噪方式復(fù)制數(shù)據(jù),加噪后數(shù)據(jù)的信噪比是20 dB。
采用以上數(shù)據(jù)及參數(shù),分別采用本文方法、文獻[1]大數(shù)據(jù)資源調(diào)度、文獻[2]冗余數(shù)據(jù)消除的傳輸優(yōu)化方法,在仿真環(huán)境中對80個傳感節(jié)點數(shù)據(jù)進行傳輸,共進行10次測試,記錄3種方法從節(jié)點1將數(shù)據(jù)傳輸至Sink節(jié)點所需傳輸次數(shù),將結(jié)果進行對比分析,如圖2所示。
圖2 不同方法傳輸效率對比圖
從圖2中可得,在10次仿真過程中,大數(shù)據(jù)資源調(diào)度將數(shù)據(jù)從傳感器節(jié)點1傳輸至Sink節(jié)點平均約需要83次傳輸,效率最低;冗余數(shù)據(jù)消除的傳輸優(yōu)化方法,平均約需要進行57次傳輸才能完成數(shù)據(jù)傳輸任務(wù);而本文方法所用次數(shù)最少,平均僅需要26次即可完成全部采集信息的傳輸工作,傳輸效率遠高于其他兩種方法。這是由于本文方法首先設(shè)置了最優(yōu)動態(tài)簇頭數(shù)量,能夠一定程度地加快傳輸速度。
運行初期,網(wǎng)絡(luò)中各個節(jié)點的能量充足,隨著傳輸?shù)倪M行,能量也逐漸被消耗殆盡,就會出現(xiàn)死亡節(jié)點,使部分信息無法有效傳輸?shù)街行墓?jié)點內(nèi)。若在傳輸?shù)倪^程中,數(shù)據(jù)量較大、傳感器節(jié)點較多、通信鏈路又過長,就會導(dǎo)致前面節(jié)點的傳輸任務(wù)較重,能量消耗加劇,網(wǎng)絡(luò)壽命降低。記錄3種方法在傳輸過程中的節(jié)點存活情況,驗證方法性能,結(jié)果如圖3所示。
圖3 不同方法節(jié)點存活情況對比圖
從圖3中可以看出,冗余數(shù)據(jù)消除和大數(shù)據(jù)資源調(diào)度優(yōu)化算法在傳輸中后期存活節(jié)點數(shù)量減少較多、幅度較大;本文方法在傳輸后期雖然也出現(xiàn)了節(jié)點死亡現(xiàn)象,但數(shù)量相對較少,在傳輸輪數(shù)為160時傳輸節(jié)點數(shù)量為750,表明該方法下節(jié)點傳輸能耗低,可有效延長網(wǎng)絡(luò)壽命,減少數(shù)據(jù)因節(jié)點死亡被丟失的概率。
隨后驗證不同方法的總體能耗,即傳感器網(wǎng)絡(luò)中全部節(jié)點傳輸數(shù)據(jù)消耗能量的總量,值越大則說明方法傳輸所需能量就越大,因此為驗證算法是否能夠降低傳輸耗能,將三種方法傳輸160輪數(shù)據(jù)產(chǎn)生的能耗進行對比,結(jié)果如圖4所示。
圖4 不同方法總能耗
從圖4中,可以看出相比文獻方法,本文方法在不同輪次數(shù)據(jù)傳輸?shù)倪^程中能耗均為最低,在傳輸輪數(shù)為160時,傳感器耗能為260 kWh,這是由于本文方法節(jié)點會在計算最小能耗后,再確定下一步是進行間接傳輸還是直接傳輸,從而確保每個節(jié)點均是以最小能耗完成傳輸工作的,使總體能耗保持最低。另一方面隨著輪次的增加,能耗呈近似線性增長,所提方法增長幅度變化也是最小的,進一步證明所提方法性能優(yōu)越。
由于大多數(shù)傳感器都是用電池作為能量來源,導(dǎo)致其自身能量具有一定限制,為提高網(wǎng)絡(luò)中各節(jié)點性能,降低能源消耗,延長網(wǎng)絡(luò)的生命周期就成了熱門研究課題。因此本文提出了一種基于分簇算法的傳感器網(wǎng)絡(luò)大數(shù)據(jù)傳輸優(yōu)化方法,根據(jù)各節(jié)點之間距離計算出網(wǎng)絡(luò)中的最佳動態(tài)簇頭數(shù)量,隨后采用最小路徑法選擇能源消耗最低的傳輸路徑,完成傳輸優(yōu)化全過程。最后在仿真分析中,與傳統(tǒng)方法比較各項性能,結(jié)果表明,本文方法的傳輸效率更高、穩(wěn)定性更強,且傳輸過程中節(jié)點存活率最高、能耗最小,具有一定的實際應(yīng)用價值。由于時間限制,本文的研究工作還存在一些不完善之處如下:
①本文方法主要考慮了能源消耗問題,對其他方面還考慮較少,例如網(wǎng)絡(luò)中簇成員間存在干擾等,一般情況下傳感器節(jié)點是能夠移動使用的,因此在接下來的研究過程中還需要在節(jié)點移動的條件下進一步完善算法。
②算法現(xiàn)階段還僅針對同構(gòu)環(huán)境下的傳感器網(wǎng)絡(luò),進一步研究可以在網(wǎng)絡(luò)異構(gòu)、節(jié)點異構(gòu)等異構(gòu)環(huán)境下進行。