劉小強
(1.河南科技大學應用工程學院,河南 三門峽 472000;2.三門峽職業技術學院,河南 三門峽 472000)
水下傳感網絡(Underwater Sensor Networks,USNs)由微型、具有感知和通信能力的傳感節點組成。將這些傳感節點部署于水下環境,并由它們感知自身周圍環境數據,再將所感知的數據傳輸至信宿或者控制中心。通常,這些傳感節點是由電池供電。一旦電池能量用盡,也不便以給節點替換電池或補充能量。因此,如何有效地利用節點能量,進而延長網絡壽命,成為USNs 的研究熱點[2-3]。
分簇是延長網絡壽命的有效技術手段[4-5]。每個簇由一個簇頭和多個簇成員構成。簇頭收集本簇內成員節點數據;收集后,再傳輸至信宿。因此,簇頭具有融合節點類似操作行為。目前,已有多種形成簇的技術。本文是以已構成簇的WSNs 為研究對象,討論如何進行數據融合,進而減少數據冗余。
在同一個簇內的傳感節點所處的地理位置相距較近。由于處于同一個物理區域,這些節點所感知的數據也存在一定相似,甚至重復。若它們只是簡單地將數據傳輸至簇頭,或者簇頭對所收集的數據不進行處理,如減少冗余操作,這會增加節點傳輸的數據量,加大網絡負擔。
數據壓縮是控制數據冗余的有效途徑。文獻[6]利用數據壓縮策略進行融合感測的數據,并提出基于模塊對角矩陣的數據融合算法。類似地,文獻[7]也提出了基于分布式壓縮感知技術。
文獻[8]針對UWSNs,提出基于數據融合的構建簇算法,旨在減少UWSNs 內的冗余數據的傳輸。文獻[9-10]將相似函數引入網絡,并利用相似函數計算數據間的相似度。盡管這些技術減少了一些相似數據,但信宿所收到的數據仍存在冗余。
為此,提出能效感知的相似數據融合(Energy efficiency-simlarity Aggregation,EESA)算法。EESA算法基于簇化的網絡拓撲結構,簇頭對簇內成員節點的數據進行壓縮,減少數據傳輸量,進而控制能耗。
考慮簇化的網絡結構。即網絡內已形成多個簇,每個簇由一個簇頭和簇成員構成,如圖1 所示。簇頭收集簇內成員所傳輸的數據,并進行數據壓縮處理。然后,再由簇頭將數據傳輸至水面上的信宿,然后通過衛星通信將數據傳輸至數據收集中心。

圖1 網絡模型
考慮周期的數據收集模式。每個節點周期性向簇頭傳輸數據。簇頭再傳輸至信宿[11]。令p 表示周期的時長,每個時長又劃分 個時隙,節點在時隙ti內感測數據。令ki表示節點在時隙ti內感測的數據(簡稱為數據元),且i=1,…,。
引用文獻[1]的能量消耗。水下傳感節點以聲波作為傳輸數據的媒介。信號功率隨傳輸距離的增加而衰減。當聲波的傳輸距離為d 時,所衰減的功率為:

其中,f 為聲波信號頻率。

在周期p 應用中,每個節點在向簇頭傳輸數據前,先建立數據矢量。令Ri表示節點si的數據矢量,如式(7)所示:

其中,表示在周期p 中總的數據元個數。
為了消除Ri內數據冗余,計算數據元內間的相似度。若兩個數據元間的相似度小于預定閾值,則認為它們間數據冗余。具體而言,令ri,j表示數據元ki與kj的相似度,其定義如式(8)所示:

若ri,j<δ,則認為數據元ki與kj間存在冗余。其中,δ 為數據元相似度的閾值。
節點si在每個時期p 建立了數據矢量后,并依式(8)計算相似度,若相似度小于δ,則說明存在冗余。在這種情況下,需要對數據矢量進行處理。
EESA 算法引用數據壓縮點策略。即將數據矢量Ri轉換成代表性的點,并由這些點表述數據矢量Ri。再將這點數據傳輸至簇頭,進而降低數據傳輸量,也減少了簇頭收集數據量。


EESA 算法引用局部融合遞歸(Local Aggregation Recursive,LAR)算法構建數壓點集,其過程如算法1 所示。
節點先計算數據矢量首尾數據元的連線距離,其中定義如式(9)所示:

start、end 分別表示數據矢量第一個數據元索引下標、最后一個數據元索引下標。
然后,再將Ed與閾值td進行比較。如果Ed≤td,則將第一個數據元加入至Pi,如式(10)所示:

節點si先將數據壓縮點集Pi和Di傳輸至自己的簇頭。
為了更好地分析EESA 算法性能,利用Java 建立仿真平臺。在5 000 m×5 000 m 區域內均勻部署180~360 個節點,節點部署的深度為2 000 m。具體的仿真參數如表1 所示。

表1 仿真參數
節點收集海域內海水鹽度數據。將這些節點劃分2~4 個簇。考慮兩個場景:1)場景1:2 個簇,第1個簇有60 個節點;第2 個簇有120 個節點。這2 個簇頭分別標記為CH1 和CH2;2)場景2:4 個簇,每個簇的節點為60 個節點。4 個簇頭分別標記為CH1、CH2、CH3 和CH4。每個節點收集數據,再傳輸至自己的簇頭。
同時,選擇基于優適相似度的(Well-suited Similarity Functions,WSF)[10]數據融合算法作為參照,并分析它們的性能。在實驗中,考慮不同的 尺寸和閾值td對性能影響。
3.2.1 實驗1
本次實驗分析在場景1 環境下,節點發給簇頭的數據比例(簡稱節點傳簇頭數據比),如圖2 所示。 分別取值128、256、512 和1024。閾值δ 從0.001、0.005、0.01 和0.025 變化。

圖2 節點傳簇頭數據比(場景1)
從圖2 可知,EESA 算法有效地降低了節點傳輸至簇頭的數據比。最大的節點傳簇頭數據比也不過40%,最低為3%。這說明:利用EESA 算法能夠有效壓縮數據,極大地降低了數據冗余量。此外,從圖2可知,δ 或 的增加,降低了節點傳簇頭數據比。原因在于:隨著δ 或 的增加,認定數據冗余的條件變得苛刻,因此,壓縮數據的力度越大,使節點向簇頭傳輸的數據量越小。
3.2.2 實驗2
本次實驗分析在場景1 環境下,信宿所收到來自CH1 和CH2 的數據比例,并與WSF 算法進行比較,如圖3 所示,其中閾值δ 取0.005。

圖3 簇頭向信宿傳輸的數據比(場景1)
從圖3 可知,EESA 算法中每個簇頭(CH1 和CH2)向信宿傳輸的數據比遠低于WSF 算法。在 變化期間,EESA 算法的性能均優于WSF 算法,傳輸至信宿的數據比低于4%。可是WSF 算法的簇頭向信宿傳輸的比例達到50%。此外,CH1 和CH2 向信宿傳輸的數據比例相近。
3.2.3 實驗3
本次實驗分析EESA 算法執行時間,并與WSF算法進行比較,其中閾值δ 取0.005。圖4 顯示了場景1 環境下,EESA 算法和WSF 算法的兩個簇頭(CH1 和CH2)的執行時間。

圖4 2 個簇頭的運行時間(場景1)
從圖4 可知,相比于WSF 算法,EESA 算法有效地控制了算法的運行時間。例如,在=1 024 時,EESA 算法的執行時間約50 ms,而WSF 算法的執行時間達到150 ms。這歸功于EESA 算法利用歐式距離對數據壓縮,減少了數據處理量,極大地縮短了運行時間。
圖5 給出場景2 環境下EESA 算法和WSF 算法的4 個簇頭的平均運行時間。從圖可知,平均運行時間隨數據元個數的增加而呈上漲趨勢。原因在于:數據元個數越多,簇頭需要處理的數據量就越大,必然增加了運行時間。

圖5 4 個簇頭的平均運行時間(場景2)
此外,相比于場景1,場景2 環境中簇內的節點數減少,運行時間下降,并且WSF 算法與EESA 算法的運行時間差距縮小。
3.2.4 實驗4
引用文獻[4]的能耗模型,本次實驗分析EESA算法的節點能耗。

圖6 EESA 算法中節點的平均能耗(場景一)
表2 給出EESA 算法與WSF 算法的節點平均能耗,其中,EESA 算法的數據來自取δ=0.001 情況。從表2 可知,相比于WSF 算法,EESA 算法有效地減少了節點能耗。并且隨著 的增加,EESA 算法在能耗方面的優勢越大。原因在于:EESA 算法通過壓縮冗余數據,減少了節點所傳輸的數據量,進而減少了節點能耗。

表2 EESA 算法與WSF 算法的節點平均能耗
3.2.5 實驗5
本次實驗分析數據壓縮誤差。壓縮誤差體現了數據經壓縮解壓后數據的失真度。壓縮誤差越大,信息失真度越大,信息丟失越嚴重。壓縮誤差的定義如式(12)所示:


圖7 壓縮誤差
本文提出能效感知的相似數據融合算法EESA。EESA 算法對節點傳輸的數據進行壓縮,減少數據冗余量。每個節點將收集的數據進行壓縮,再傳輸至簇頭,避免了冗余數據在網絡內的傳輸。相比于WSF 算法,EESA 算法控制網絡數量流量,減少了能耗。