謝海龍,何 凱,馮 震
(1.中國移動通信集團湖北有限公司 襄陽分公司,湖北 襄陽 441000;2.國網湖北省電力有限公司 隨州供電公司,湖北 隨州 430051)
如今,物聯網在日常生活中有很多應用,如健康監測、森林監測、水質監測、智能交通、空氣污染監測、先進計量設備以及智能家居等[1]。智能節點是物聯網架構的一部分,分布在網絡中,具有高移動性。節點的一個重要特征是能夠將環境中的信息轉換為數據進行分析[2]。
隨著科學技術的進步,未來會創造出更小、更強大以及更便宜的硬件、處理器和閃存,智能節點的內存和數據處理能力將是物聯網未來的重要挑戰。由于大量傳感器節點由容量有限的電池供電,更換電池或為其充電不切實際。因此研究將致力于提高基于物聯網系統中節點的能效,降低其能耗。降低智能節點能耗的方法和技術主要集中在優化路由算法,以減少向霧傳輸數據時的能耗。最近為了降低能量消耗,已經使用了進化和自然啟發的算法,如粒子群優化算法、改進的和聲搜索算法以及蜜蜂優化算法[3-5]。
文中提出了一種基于改進的樽海鞘群算法(Improved Salvia Swarm Algorithm,ISSA),最大限度地減少了傳輸數據的能量消耗。與其他受自然啟發的算法一樣,ISSA算法采用數學模型,并在自然界中模仿Salps在創建鏈和喂養方面的行為來解決優化問題。仿真結果證實,ISSA算法能夠找到更好的路由,從而減少智能節點的功耗。
一個基于物聯網架構的系統如圖1所示,由移動和分布式智能節點組成。圖中通信空間為(600×600)m2,需要通過路徑向FOG節點發送數據的智能節點用黑色標記。每個節點都有一個有限的通信范圍,這種情況下,每個節點都可以與其180 m半徑內的節點相關聯。為了從需要向FOG節點傳輸信息的節點發送數據包,本地網絡中的其他節點充當中繼。問題是找到將數據包傳輸到FOG節點的合適路徑,合適的路由能夠發送最大數量的數據包,直到網絡節點之一的能量達到零。為了優化這個路由問題,使用了改進的SSA算法。

圖1 物聯網架構
樽海鞘群算法(Salp Swarm Algorithm,SSA)模仿了Salp的社交行為。對于Salp鏈的建模,每條鏈首先被分成領導者salp和追隨者salp。領導者是鏈條前面的salp,而其余的鏈條被視為追隨者salp,彼此跟隨。
Salps的位置在維度搜索空間中指定,存儲在二維矩陣X中。在搜索空間中存在一個食物源F作為鏈目標,更新領導者Salp位置的公式為:

式中,xj表示在第j維度的領導者Salp位置;Fj是在第j維度的食物源位置;ubj表示第j維的上限;lbj表示第j維的下限;c1、c2以及c3是隨機數。
食物源的位置是影響Salp的領導者更新其位置的唯一因素。系數c1是最重要的參數,表示勘探和開發之間的平衡,計算公式為:

式中,l是當前迭代;L是最大迭代次數。
參數c2和c3是隨機數,均勻分布在區間[0,1]內。事實上,表明第j維的下一個位置應該是正無窮大或負無窮大以及步長。
根據牛頓運動定律得到用于更新從動件位置的公式為:

式中,x>2;xji是第i個Salp跟隨者在第j維的位置。式(3)和式(1)可用于模擬salp鏈。
使SSA算法在解決優化問題的要點包括以下幾個部分。首先,模擬中將最佳優化方案保存為食物源,在整個算法中隨著探索和開發不斷更新,即使新種群惡化,它也不會丟失。其次,算法更新跟隨者Salp的位置,使它們逐漸向領先的Salp移動。再次,該算法僅根據當前獲得的最佳解決方案更新領導者的位置,因此領導者始終探索和利用周圍的空間。最后,跟隨者Salps的逐漸運動使得算法不容易陷入局部最優。
為了解決SSA算法局部收斂的問題,結合隨機算法進行改進,其食物源通過隨機游走探索搜索空間,然后其他Salps跟隨它更新位置。隨機游走是一個隨機過程,對應公式為:

式中,Xn是Salp的當前位置;Xn+1是salp的下一個位置;Si是可以從任意隨機分布中得到的值為steps的隨機步長。這里使用了正態分布。
本研究的主要目標是降低從物聯網節點到FOG節點的整個通信網絡的能耗,增加網絡活動的生命周期和持續時間。為此,定義目標函數以通過使用所提出的算法對其進行優化來實現目標。
假設在無線網絡通信中發送一點數據所需的能量Eelec=50 nJ/bit,放大在所需距離上傳輸的信號的能量Eamp=0.1 nJ/(bit/m2),那么沿路徑d發送k比特的消息所需的能量為:

接收消息所需的能量為:

考慮路徑X=(s,x1,x2,…,xi,…,d)包含L個節點,因此X中的元素數等于L。其中s代表發送節點,xi為物聯節點,d代表FOG節點,消息的k位在整個路徑中消耗的能量為:


式中,Emin是X中所有節點剩余能量最小的節點的剩余能量;Eavg是X中所有節點的平均剩余能量。
在本文中,蚱蜢優化算法(Grasshopper Optimisation Algorithm,GOA)被模擬并與改進的樽海鞘群算法進行比較。為此,考慮了具有隨機智能節點的3個模擬環境,每個場景的節點數分別為50、100、150個,環境尺寸分別為(600×600)m2、(1000×1000)m2以及(1 400×1 400)m2。
具有50個物聯網節點的網絡圖1所示,黑框-三角形方塊代表原點節點(最接近坐標原點)和FOG節點,黑框方塊代表中間物聯網節點。所有測試均在核心i5處理器和4GB RAM上的 MATLAB R2018b軟件中實現。
網絡中所有節點的平均剩余能量、最小剩余能量以及剩余能量的標準偏差用于比較算法的性能。假設所有IoT節點電池的初始能量為10 J,網絡中發送或接收的每個數據包大小為4 098 bit,初始種群數為60,算法迭代次數為50,計算5次仿真結果的平均值得到最終的結果。圖2~圖4分別給出了不同網絡不同場景下接收端接收600個數據包后的平均剩余能量、最小剩余能量以及標準差。

圖2 節點供能電池的平均剩余能量

圖3 最小剩余能量
如圖2所示,具有不同節點數量的ISSA存儲的剩余能量平均比GOA多。最小剩余能量對網絡的使用壽命有直接影響,其越大的網絡使用壽命越長。根據圖3,ISSA算法比GOA算法具有更高的最小剩余能量,充分說明了ISSA算法降低了能耗,更加節能,可以增加網絡使用壽命。平衡和統一的功耗對網絡的使用壽命有重大影響,從而對整個物聯網網絡的效率產生重大影響。低標準偏差表明,所有節點消耗的能量大致相同。圖4顯示了基于網絡中節點數的標準偏差圖,表明ISSA算法具有較低的標準偏差。
通過不同數據包數的最小剩余能量如圖5所示,隨著數據包數量的增長,ISSA算法的性能更好。在1 200個數據包的情況下,ISSA算法仿真結果中網絡節點的最低能量為5.25 J,而GOA中為2.95 J,這說明了ISSA算法仿真結果中網絡的剩余能量更多,更節能。
文中提出了一種ISSA的新路由算法,降低了物聯網應用中從智能節點向FOG節點傳輸數據的能耗。在3種模擬環境中進行仿真分析,通過比較ISSA和GOA算法仿真結果的網絡平均剩余能量、最小剩余能量以及剩余能量的標準偏差可以看出,ISSA算法的性能更好,可更大程度地降低智能節點能耗。