于春榮,王益芳, 于璦雯
(1.滄州師范學院 a.計算機科學與工程學院; b. 經濟管理學院, 河北 滄州 061001;2.大連理工大學 計算機科學與技術學院, 遼寧 大連 116024)
基于光纖傳感[1]的物聯網(Internet of Things,IoT)是具有測量感知節點與數據傳輸雙重特性的IoT。其被廣泛應用于工業控制、家居生活、工程建筑和智能制造等領域,并隨著光纖傳感IoT中節點數的激增而使網絡節點的快速和精確定位成為研究熱點[2-4]。
光纖傳感網絡可分為全分布式和準分布式,全分布式光纖傳感網絡的主要節點定位算法包括質心定位法[5]、多目標跟蹤法[6]和光纖復用法[7]等,其主要面向穩定測試環境;準分布式光纖傳感網絡雖然測試點數量和精度不如全分布式,但其穩定的測試性能對一般條件下的IoT更具普適性,準分布式光纖傳感網絡的常見算法包括粒子群(Particle Swarm Optimization,PSO)[8]、三角定位[9]和跟蹤算法[10]等。PSO算法定位精度高、收斂快,但由于光纖傳感網絡節點的感知數據動態范圍大,影響參數多,使適用于穩定數據類型的傳統定位算法無法發揮優勢;三角定位算法原理簡單,但以圓域求解的過程運算量很大,收斂速度慢;跟蹤算法一般用于未知節點較少的情況,針對光纖傳感網絡中大量存在的測試節點,其定位時間會大幅增加,實用性大幅降低。
由此可見,節點定位精度與大范圍搜索時的收斂速度之間的矛盾成為了主要問題,本文針對準分布式光纖傳感IoT的節點定位,在分析其數據特征的基礎上,研究了兼顧定位精度及收斂速度的網絡節點定位算法。
基于光纖傳感的IoT[11]由應用層、數據交互層和光纖感知層構成,其結構如圖1所示。應用層是管理平臺,包括結構健康監控平臺和環境參數監控平臺等;數據交互層是數據傳輸中轉單元,包括計算系統和傳感數據庫等;光纖感知層是所有真實的物理測試節點,包括在樓宇、橋梁和廠房等鋪設的光纖傳感單元。

圖1 基于光纖傳感的IoT結構圖
基于光纖傳感的IoT因其可實現節點物理量數據的傳感,所以是實時獲取節點測試信息并給出決策的重要依據,故其定位精度和速度成為了保障網絡正常運行的技術支撐。在該光纖傳感網絡中,數據以測試物理量為主,如溫度和濕度等,其隨環境的變化而變化,基本不具有變化規律。數據特征體現為動態范圍大和參數多。相比PSO算法等傳統定位算法而言,人工蜂群 (Artificial Bee Colony,ABC) 算法[12-14]的全局尋優能力對定位精度更有效。同時,平面內定位必然涉及域選取的問題,之前討論已知傳統三角定位算法所用的圓域計算量大,嚴重影響收斂速度,故本文采用邊界盒(Bounding-Box,BB)的矩陣數據格式使圓域變為矩形域,從而大幅簡化了運算規則,提高了收斂速度。
ABC算法為學習蜜蜂采蜜行為的優化處理算法,其將未知節點作為未知蜜源,有效蜜源位置就是節點定位[15]的最優解;引領蜂與蜜源的數據交互對應系統對有效節點的數據交互,將節點傳感數據發送給處理系統;跟隨蜂收集引領蜂數據信息對應相鄰與參考節點之間的數據通信;偵查蜂搜索新蜜源對應利用定位算法完成未知有效節點的搜索。其中,節點定位部分是最耗時的階段,故在偵查蜂迭代尋的過程中引入BB,從而以矩形域取代圓域提高收斂速度。
若蜜源為i(i=1,2,…,N),N為系統設置的最大蜜源量(由于系統采用的蜜源量是可根據需要進行調節的,故在循環算法時,蜜源總量N是可設置的),對應的適應度為Ai,光纖傳感IoT維度為D,迭代k次后,新蜜源位置可表示為Xi=[xi1,xi2,…,xiD],xid∈(Ld,Ud),d=1,2,…,D,則蜜源的解可表示為
式中:Ld和Ud分別為蜜源位置上下限;c為尋的參數,c∈(0,1)。
適應度函數計算公式為
式中,abs()為取絕對值。當適應度為負值時,為了反映適應度的絕對偏差程度,需要對其取絕對值。搜索新蜜源時,引領蜂的搜索路徑可表示為
式中:x(i-1)d為蜜源xid的相鄰蜜源;φ為擾動系數,取值范圍為[-1,1]。
當新蜜源Vi的適應度優于原蜜源時,根據貪婪選擇原理,Vi取代Xi,否則仍以Xi作為參考蜜源,循環式(3)。跟隨蜂確認蜜源的跟隨概率為
BB經常被用于對未知節點定位,其采用矩形區域完成對數據搜索范圍的限制,相比圓域的邊界定義方式,矩形域更適合矩陣數據運算。對于未知節點的邊界約束范圍如圖2所示。

圖2 BB約束范圍
以通信半徑圓的直徑作為通信矩形的邊長,從而將圓域轉化為矩形域。如圖2中的重疊區域所示,未知節點在B1、C2、C3和B4中,相比圓域定位精度有所降低,但由于參考節點數往往為3個及以上,所以多個重疊區域會降低對定位精度誤差的影響。BB區間對應的數據集為
基于光纖傳感的IoT中數據量大,所以搜索半徑的設置對算法收斂時間的影響十分明顯,故利用BB作為搜索約束條件與搜索路徑配合實現對未知節點(新蜜源)的搜索。BB-ABC算法流程如圖3所示,算法步驟如下:

圖3 BB-ABC算法流程圖
(1) 種群初始化,以式(1)尋找未知節點蜜源Xi,并計算適應值;
(2) 通過貪婪算法優化蜜源節點位置,由式(4)計算Xi的選擇概率;
(3) 根據閾值判斷情況取舍未知節點是否為有效節點,判斷依據式(5)中的Li和vid完成,從而獲得新節點Vi,再重復步驟(2);
(4) 計算節點適應值,將計算獲得的最好節點適應值與終止條件比較,若成立則判定為最優解,若不成立則重新執行式(1)完成再次搜索。
針對基于光纖傳感的IoT進行數據仿真測試。設置搜索范圍為100 m×100 m,未知節點位置可通過預先設置從而獲得其準確坐標,用以對比3種算法的定位結果。本算法(BB-ABC)是對ABC算法的改進,故需要與ABC算法的測試結果進行對比,同時,還與IoT中常用的PSO算法進行對比。3種算法種群量均為20,PSO算法中慣性權重為0.9與0.4;BB-ABC和ABC算法的適應度均為0.4;BB算法的有效半徑r為5 m。
BB-ABC算法的本質也是多維優化問題,其初始種群量對模型學習效果具有明顯影響,所以針對不同種群量對定位精度的影響進行分析,仿真通過100次迭代分析了種群量與定位精度的關系,如圖4所示。

圖4 種群量與定位精度的關系
由圖可知,種群量與定位精度成正比關系,定位精度會隨種群量的增大而提高,但當種群量超過20以后收斂,BB-ABC、ABC和PSO算法的定位精度分別為2.2、3.0和3.3 m。可見本算法的定位精度明顯優于原ABC及傳統PSO算法。
在基于光纖傳感的IoT中節點數量龐大,收斂速度決定了算法在真實網絡中的實用性,故針對收斂速度進行了仿真實驗。以測試范圍內3個參考節點為例,設種群量為20,以100次作為迭代上限,測試結果如圖5所示。

圖5 迭代次數與定位精度的關系
對收斂速度的判斷可通過算法達到其穩定定位精度所需的迭代次數完成,即定位精度趨于穩定所需的迭代次數越少則收斂速度越快。由圖可知,3種算法的最少迭代次數分別為11、13和39次,可見本算法在收斂速度上略優于ABC算法,明顯優于PSO算法。
采用增加實驗次數的方法來驗證算法輸出結果的穩定性。每次測試時改變未知節點的位置,然后計算定位誤差分析算法的定位穩定性。共計完成10次不同位置的節點定位實驗,每次取100次迭代的平均定位誤差作為對比項,最終以平均定位誤差的波動情況分析算法的穩定性,實驗結果如圖6所示。

圖6 實驗次數與平均定位精度的關系
通過10次的實驗數據可知,BB-ABC算法的定位范圍為2.2 m×2.5 m,方差為0.024;ABC算法的定位范圍為2.5 m×3.3 m,方差為0.044;PSO算法的定位范圍為3.2 m×3.6 m,方差為0.037。由多次實驗測試結果的平均定位精度范圍和波動方差可知,本算法的測試區間更小、方差更小,具有更好的穩定性。
基于光纖傳感的IoT有別于傳統IoT,其節點傳感數據具有動態變化快和取值范圍寬等特點,對節點的定位精度及速度具有更高的要求。本文將BB與ABC算法相結合,針對搜索域進行優化設置,從而提高未知節點的定位精度與收斂速度。實驗結果表明,本算法相比ABC和PSO算法具有更好的定位精度、收斂速度及穩定性。