楊 惠
(蘭州文理學院傳媒工程學院,甘肅 蘭州 730000)
隨著無線通信網(wǎng)絡化的進程不斷加深,通信網(wǎng)絡[1]類型逐漸增多,網(wǎng)絡生存問題成為人們熱議的重點話題。通信網(wǎng)絡自愈作為當前新興的智能化故障修復[2]技術,是組建通信網(wǎng)絡中重要的一部分。在網(wǎng)絡發(fā)生故障的情況下,智能化修復技術可以在不需要人為干預的情況下,迅速自發(fā)地完成故障修復[3]。無線傳感網(wǎng)絡作為無線通信網(wǎng)絡的代表,對其進行有效的通信節(jié)點自愈,是網(wǎng)絡通信領域亟待解決的問題之一[4]。
當前針對相關問題的研究也很普遍,文獻[5]提出一種基于異構兩層Lloyd算法的節(jié)點自愈優(yōu)化部署算法。通過N個異構接入點從密集分布的傳感器收集傳感數(shù)據(jù),判別故障節(jié)點,然后將數(shù)據(jù)轉發(fā)到M個異構融合中心。該算法的節(jié)點部署效率較好,但由于未考慮網(wǎng)絡流量問題,導致該算法自愈節(jié)點數(shù)量少。文獻[6]提出基于反饋裁決機制的無線傳感網(wǎng)節(jié)點失效自愈修復。該方法通過節(jié)點鏈路特性分析節(jié)點流量,建立失效裁決方法;結合節(jié)點的傳遞特性獲取失效評估機制;通過割點裁決和節(jié)點自愈重構法改變網(wǎng)絡拓撲結構,最后設定節(jié)點優(yōu)化準則選取網(wǎng)絡的最優(yōu)節(jié)點,依據(jù)犯規(guī)機制實現(xiàn)節(jié)點自愈。該算法在分析鏈路節(jié)點時存在節(jié)點計算不全面的問題,所以采用該算法進行節(jié)點自愈時自愈能力差。文獻[7]提出分布式微電網(wǎng)的自調節(jié)接地故障自愈算法。該算法首先使用等效驅動方法構建數(shù)據(jù)模型,分析電網(wǎng)的各類故障類型;基于網(wǎng)絡的拓撲結構提出模型的自愈效果評價指標;最后使用相關系統(tǒng)實現(xiàn)網(wǎng)絡的故障自愈。該算法在建立評價指標時考慮的影響因素不夠全面,所以采用該算法進行節(jié)點自愈時自愈效果較差。
為解決上述無線傳感網(wǎng)絡通信節(jié)點自愈過程中存在的問題,提出基于Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法。
要實現(xiàn)無線傳感網(wǎng)絡通信節(jié)點自愈算法,首先要對無線傳感網(wǎng)絡通信節(jié)點進行定位。建立路徑損耗模型,將網(wǎng)絡傳輸時的路徑損耗轉換為RSSI值,得到無線傳感網(wǎng)絡在通信過程中的信號強度;通過質心算法將接收信號強度指示(Received Signal Strength Indicator,RSSI)值設定為質心權值,從而提高定位精度。
無線傳感網(wǎng)絡中節(jié)點信號強度的大小與傳輸距離相關,當節(jié)點距離較小時RSSI值就會越大。無線傳感網(wǎng)絡在通信過程中接收數(shù)據(jù)的同時就會獲取反映信號強度的RSSI值,所以要建立路徑損耗模型將網(wǎng)絡傳輸時的路徑損耗轉變?yōu)镽SSI值。
設定網(wǎng)路的節(jié)點距離為d,平均能量為pr(d),錨節(jié)點A、B之間的距離標記為d0,通過衰減模型對其進行計算,RSSI結果如下式所示:
式中:無線傳感網(wǎng)絡中錨節(jié)點A的信號平均強度標記為pr(d0),待測節(jié)點接收A時的信號強度標記pr(di),節(jié)點A與待測節(jié)點之間的距離用di表示,路徑損耗指數(shù)用β表示。
當節(jié)點之間的距離固定時,節(jié)點的接收能量會隨著信號強度的不同而發(fā)生變化,且該變化會服從正態(tài)的高斯分布,此時的RSSI用下式進行表示:
式中:隨機變量標記dB形式,激活函數(shù)標記log。通過上述公式實現(xiàn)對節(jié)點RSSI值的計算。
使用質心算法對無線傳感網(wǎng)絡進行節(jié)點定位。將錨節(jié)點通信射程標記為r,待定位節(jié)點的位置需要通過射程范圍內的錨節(jié)點進行確定。
設定無線傳感網(wǎng)絡中有n個錨節(jié)點,坐標用{(x1,yi),(x2,y2)…(xn,yn)}表示,待定位節(jié)點坐標標記為n(x,y),通過計算獲取傳感器節(jié)點的位置預估值,過程如下式所示:
式中:待測節(jié)點為n,常數(shù)為i。通過分析可知,依據(jù)多邊形質心對傳感器網(wǎng)路節(jié)點進行定位時,由于未能考量待測節(jié)點的距離因素,該方法只能對網(wǎng)絡節(jié)點進行大致定位,定位誤差大、精度低。所以需要在衰減模型中加入質心定位算法,設定RSSI值為質心權值,從而提高定位精度。
該方法首先收集網(wǎng)絡節(jié)點中的RSSI數(shù)據(jù),并對其進行數(shù)據(jù)轉換,設定接收數(shù)據(jù)時的錨節(jié)點為通信圓心,將轉換的數(shù)據(jù)作為半徑畫圓。通過質心算法對圓內節(jié)點進行賦值處理,定位過程如下式所示:
式中:待定位節(jié)點n的權重標記為wi,待定位節(jié)點的方向分別為x和y。權重的獲取過程如下式所示。
式中:RSSI值的距離轉換形式用di標記。
設定無線傳感網(wǎng)絡中有n個錨節(jié)點,待定位傳感器節(jié)點坐標用(x,y)表示,無線傳感網(wǎng)絡的節(jié)點定位流程如下:①通過固定周期向無線傳感網(wǎng)絡待定位節(jié)點的相鄰節(jié)點傳遞自身的ID、位置信息。②相鄰節(jié)點接收信息后,計算錨節(jié)點的RSSI均值。③設置傳感器節(jié)點接收信息的閾值,避免傳感器節(jié)點接收信息過多導致節(jié)點傳輸效率下降。當待定位的傳感器節(jié)點[8]接收信息超出固定閾值時,建立錨節(jié)點集合Beacon_set={a1,a2,…,a2}以及位置集合Position_set=((x1,yi),(x2,y2)…(xn,yn))。④通過式(5)計算獲取錨節(jié)點權值wi。⑤通過式(4)獲取無線傳感網(wǎng)絡的待定位節(jié)點位置(x,y)。
綜上所述得出節(jié)點定位算法流程圖如圖1所示。
圖1 節(jié)點定位算法流程圖
節(jié)點實現(xiàn)定位后,通過Q-learning反饋機制強化自愈機制的學習能力,從而實現(xiàn)網(wǎng)絡故障節(jié)點的自愈。通過Q-learning學習算法計算網(wǎng)絡通信節(jié)點在下一狀態(tài)的Q值最優(yōu)策略,建立無線傳感網(wǎng)絡模型,通過通信路徑最優(yōu)策略確定傳輸路徑的傳輸傾向,更新路徑的優(yōu)先級,對傳輸路徑進行迭代計算直至節(jié)點完成自愈。
Q-learning學習主旨是在節(jié)點動力學特性不明的情況下對節(jié)點的最優(yōu)策略值進行預估。網(wǎng)絡通信節(jié)點的時間步用t標記,當前狀態(tài)為St,執(zhí)行動作用At表示,下一狀態(tài)標記為St+1,學習回報用Rt表示,網(wǎng)絡通信節(jié)點在下一狀態(tài)的Q值最優(yōu)策略如下式所示:
網(wǎng)絡通信節(jié)點在進行下一執(zhí)行動作選擇時,不僅需要從無線傳感網(wǎng)絡的狀態(tài)空間中搜索節(jié)點的最優(yōu)策略,還要通過計算出的學習策略降低學習成本,因此選取通信節(jié)點的At+1時,要使用近似的貪婪算法[9]對通信節(jié)點進行計算,獲取Ak的選取策略,過程如下式所示:
式中:Ak的選取策略用prob標記,隨機程度標記為Tt形式。為提高學習效率,可使用模擬退火算法[10]對Tt進行計算,過程如下式所示:
式中:節(jié)點的最小隨機程度標記為Tmin,退火因子標記為β。
將無線傳感網(wǎng)絡的拓撲結構抽象處理,標記成G(V,E)形式,其中網(wǎng)絡通信節(jié)點用V標記,通信鏈路用E標記。設定網(wǎng)絡得到邊緣節(jié)點集為S,且S={S1,S2,…,Sn},若數(shù)據(jù)的通信源節(jié)點為S1,潛在的目的節(jié)點集合為S′。當S′為有限集合時,二者之間的傳輸路徑集合為A={A1,A2,…,Am},即為無線傳感網(wǎng)絡的動作集合,可直接將其作為網(wǎng)路的交換路徑。選取動作的同時會產(chǎn)生學習的回報Reward,過程如下式所示:
式中:節(jié)點的權重系數(shù)分別為ω1、ω2、ω3、ω4,TH、delay、P、U為網(wǎng)絡節(jié)點參數(shù)。最后依據(jù)式(6)對數(shù)據(jù)的通信路徑最優(yōu)策略Qt(Si,Aj)進行更新,其中數(shù)據(jù)通信的目標節(jié)點為Si,數(shù)據(jù)到達目標節(jié)點的通信路徑標記為Aj。建立的網(wǎng)絡模型如圖2所示。
圖2 無線傳感網(wǎng)絡模型
通信路徑最優(yōu)策略Qt(Si,Aj)值可以決定傳輸路徑的傳輸傾向,通過獲取的Q學習值建立無線傳感網(wǎng)絡的策略矩陣,如下式所示:
式中:目標節(jié)點數(shù)量為i,路徑數(shù)量為j,策略矩陣為Qt(Si,Aj)。
數(shù)據(jù)傳輸后,基于反饋機制[11]獲取反饋值Reward,通過式(7)獲取新的路徑選取策略,完成更新處理。
基于Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法具體實現(xiàn)流程如下:①無線傳感網(wǎng)絡源節(jié)點接收數(shù)據(jù)后,首先辨別數(shù)據(jù)類型。②源節(jié)點依據(jù)數(shù)據(jù)類型確定節(jié)點路徑的優(yōu)先級。③獲取路徑選取策略,選定傳輸路徑。④數(shù)據(jù)傳輸時,保存鏈路時延、吞吐量等有效信息。⑤數(shù)據(jù)信息到達目標節(jié)點后,獲取路徑傳輸信息并對其進行整合,完成路徑時延、吞吐量以及傳輸過程的丟包率計算,通過反饋機制將計算結果反饋給源節(jié)點。⑥利用Q-learning學習[12]算法獲取網(wǎng)絡節(jié)點Q值,更新路徑的優(yōu)先級,并依據(jù)上述流程對網(wǎng)絡傳輸路徑進行迭代計算直至節(jié)點完成自愈。
綜上,所設計基于Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法整體流程圖如圖3所示。
圖3 無線傳感網(wǎng)絡通信節(jié)點自愈算法整體流程圖
通過上述對節(jié)點定位及Q-learning反饋機制的研究,實現(xiàn)了無線傳感網(wǎng)絡通信節(jié)點自愈。為了驗證上述通信節(jié)點自愈算法的整體有效性,需要對此算法進行測試。仿真采用MATLAB軟件,在無線傳感網(wǎng)絡中選取600個網(wǎng)絡通信故障節(jié)點,進行無線傳感網(wǎng)絡通信節(jié)點自愈算法的驗證。文獻[5]方法、文獻[6]方法是國內外當前較為先進的無線傳感網(wǎng)絡通信節(jié)點自愈算法,具有一定的代表性。分別采用基于Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法(本文算法)、基于異構兩層Lloyd算法的節(jié)點自愈優(yōu)化部署算法(文獻[5]算法)、基于非對稱往返測距的海洋無線傳感網(wǎng)絡節(jié)點定位算法(文獻[6]算法)進行測試。通過自愈性能、節(jié)點移動拓撲距離、節(jié)點自愈后的網(wǎng)絡傳輸性能三方面驗證所設計基于Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法的有效性。
①自愈性能測試
網(wǎng)絡通信節(jié)點自愈數(shù)量的多少,直接影響自愈算法的自愈性能。在無線傳感網(wǎng)絡中選取600個網(wǎng)絡通信故障節(jié)點,平均分成2個小組。設定組1為正常通信節(jié)點,組2為拓撲結構偏移的通信節(jié)點,采用本文算法、文獻[5]算法以及文獻[6]算法進行節(jié)點自愈時,對三種算法的自愈數(shù)量進行測試,測試結果如圖4所示。
圖4 不同自愈算法的節(jié)點自愈數(shù)量測試結果
分析圖4可知,隨著檢測次數(shù)的增加,三種節(jié)點自愈算法的節(jié)點自愈數(shù)量出現(xiàn)不同程度的下降趨勢。在圖3(a)中,當檢測次數(shù)為20時,本文所提算法檢測出的節(jié)點自愈數(shù)量為300個,文獻[5]算法檢測出的節(jié)點自愈數(shù)量為290個,文獻[6]算法檢測出的節(jié)點自愈數(shù)量為265個,隨著檢測的進行,三種算法檢測出的自愈節(jié)點數(shù)量被逐漸拉開,本文所提算法的檢測結果逐漸高于其他兩種算法,當檢測次數(shù)為100時,本文所提算法檢測出的節(jié)點自愈數(shù)量為280個,文獻[5]算法檢測出的節(jié)點自愈數(shù)量為230個,文獻[6]算法檢測出的節(jié)點自愈數(shù)量為175個。而在圖3(b)中,受網(wǎng)絡拓撲結構偏移的影響,三種算法的自愈節(jié)點效果均低于圖3(a)的檢測效果。由此來看,本文所提方法在進行網(wǎng)絡通信故障節(jié)點自愈時的自愈性能較為理想,文獻[5]算法略低于本文所提算法,文獻[6]算法的自愈性能最差。
②自愈能力測試
算法自愈能力的優(yōu)劣,會影響節(jié)點的拓撲移動距離。采用本文算法、文獻[5]算法以及文獻[6]算法進行節(jié)點自愈時,對自愈后的網(wǎng)絡節(jié)點拓撲移動距離進行測試,在節(jié)點覆蓋密度為200個/m2時,測試結果如圖5所示。
圖5 不同自愈算法的自愈能力測試結果
分析圖5可知,節(jié)點自愈后的拓撲移動距離會隨著節(jié)點覆蓋密度的增加而出現(xiàn)上升趨勢。本文所提方法在通信節(jié)點自愈后檢測出的節(jié)點拓撲移動距離要遠低于其他兩種算法,平均值為175 m,文獻[5]算法和文獻[6]算法自測試初期檢測出的節(jié)點拓撲移動距離就高于本文所提方法,證明了本文算法的節(jié)點自愈能耗較小,自愈能力較強。這主要是因為本文所提算法在通信節(jié)點自愈前,使用了質心算法對無線傳感網(wǎng)絡中的節(jié)點進行了定位,所以本文所提算法進行節(jié)點自愈時的自愈能力要優(yōu)于其他兩種算法。
③網(wǎng)絡傳輸性能測試
通信節(jié)點自愈后,網(wǎng)絡傳輸性能的好壞會側面表明自愈算法的自愈效果。采用本文算法、文獻[5]算法以及文獻[6]算法對節(jié)點進行自愈,對三種算法自愈后的網(wǎng)絡流量出口帶寬進行測試,測試結果如圖6所示。
網(wǎng)絡通信節(jié)點密度越大,節(jié)點自愈后檢測出的網(wǎng)絡流量出口帶寬就會越高。分析圖6可知,本文所提算法在節(jié)點自愈后檢測出的網(wǎng)絡流量出口帶寬要高于其他兩種算法,平均值為550 Mbyte/s,因此本文所提算法的自愈效果好。
圖6 不同算法的網(wǎng)絡流量出口帶寬測試結果
綜上所述,本文所提算法進行網(wǎng)絡通信節(jié)點自愈時,自愈節(jié)點數(shù)量多、自愈能力強、網(wǎng)絡流量出口帶寬高。
當無線傳感網(wǎng)絡結構越來越復雜時,傳統(tǒng)的節(jié)點自愈算法無法高效完成通信節(jié)點的自愈,針對傳統(tǒng)算法中出現(xiàn)的各類問題,提出基于Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法。該算法首先通過質心算法完成節(jié)點的定位計算,通過提出的通信反饋機制建立網(wǎng)絡模型,最后使用Q-learning反饋機制的無線傳感網(wǎng)絡通信節(jié)點自愈算法完成無線傳感網(wǎng)絡的節(jié)點自愈。該算法在建立網(wǎng)路模型時,還可進一步對模型參數(shù)進行優(yōu)化,今后會針對這一問題繼續(xù)優(yōu)化該節(jié)點自愈算法。