關志艷
(山西大學商務學院信息學院,山西 太原 030031)
近年來,信息技術和網(wǎng)絡技術的發(fā)展給人類社會和國民經(jīng)濟的各個領域帶來了巨大變化,尤其是物聯(lián)網(wǎng)的發(fā)展。無線傳感器網(wǎng)絡是物聯(lián)網(wǎng)的重要分支,被譽為“改變世界的十大技術之一”。[1]覆蓋控制是WSN中的一個基本問題,直接影響著監(jiān)控質量,不管是區(qū)域覆蓋、點覆蓋、柵欄覆蓋,只有傳感器節(jié)點將目標覆蓋,才能達到WSN的基本要求。
人工魚群算法由李曉磊[2]博士于2002年首次提出,近些年應用魚群算法解決實際工程優(yōu)化問題越來越多。李曉磊等[3]引入生存機制和競爭機制來對算法加以改進。王錫淮等[4]設計了基于競爭懲罰函數(shù)的適應值函數(shù)來改進人工魚群算法,算法的收斂速度和搜索效率都得到了提高。
本文將人工魚群算法應用于無線傳感器網(wǎng)絡覆蓋中,目的希望通過魚群的覓食行為,聚群行為來調(diào)整。仿真實驗證明,人工魚群算法對于隨機部署于WSN的節(jié)點有改善效果,從而提高有效覆蓋率。
人工魚描述可借助于面向對象方法,定義其是一個封裝了自身數(shù)據(jù)和行為的實體。人工魚所在的環(huán)境是問題的解空間和其他人工魚的狀態(tài)。這與WSN監(jiān)測環(huán)境下部署節(jié)點高度吻合,每一個節(jié)點類比一條人工魚,每個節(jié)點都封裝了自身屬性和移動行為,節(jié)點在下一刻的位置取決于問題當前解的優(yōu)劣和其他同伴的狀態(tài)。
如圖1所示,假設人工魚節(jié)點Si的當前位置在Xi,以Si的感知半徑RS為圓的區(qū)域可理解為人工魚的Visual視野范圍,在視野范圍內(nèi),若Xi位置狀態(tài)優(yōu)于當前狀態(tài)X;則step向前一步到達Xnext,否則巡視視野內(nèi)的其他位置。將節(jié)點Si的鄰居節(jié)點(兩節(jié)點間距離小于2RS)當作環(huán)境中的感知同伴,同伴影響對Si的狀態(tài)也會相應調(diào)整自身狀態(tài)。
圖1 人工魚感知模型示意圖
覓食行為一般認為人工魚通過視覺或味覺來感知水中食物量或濃度進而選擇下一時刻位置。在WSN環(huán)境中,由于隨機部署節(jié)點,必然會造成覆蓋盲區(qū)。覆蓋盲區(qū)吸引附近節(jié)點去填補,覆蓋盲區(qū)等價為食物濃度。
圖2 覓食行為示意圖
行為描述[5]:設人工魚節(jié)點Si當前狀態(tài)為Xi,在其感知范圍內(nèi)隨機選擇一個狀態(tài)Xj。
Xj=Xi+Visual·Rand()
.
(1)
其中,Rand()為[0,1]之間隨機數(shù),若Y(Xj)>Y(Xi),則向該方向前進一步。Y=f(x) ,Y為食物濃度目標函數(shù)值。
.(2)
反復嘗試Try-number以后,若仍不滿足Y(Xj)>Y(Xi),則保持原地不變。
偽代碼描述:
float fish_sensor:FS_prey()
{for(i=0;i {Xj=Xi+Rand()·Visual; if(Y(Xj)>Y(Xi)) else Xi/next=Xi+Rand()·step; } } (3) 其中:L、S分別為檢測區(qū)域的長與寬。 圖3 蜂窩節(jié)點分布 偽代碼描述: float fish_sensor:FS_ swarm() { nf=0;Xc=0; for(j=0;j {if(dij {nf++; Xc= Xc+Xj;} else FS_prey(); } } 1) 初始化人工魚節(jié)點規(guī)模N,人工魚節(jié)點移動最大步長step,感知半徑視野Visual RS,迭代次數(shù)Try-number,擁擠度因子δ; 2) 隨機部署人工魚節(jié)點,并自身獲取自動位置坐標; 3) 計算網(wǎng)絡有效覆蓋率; 4) 對每個人工魚節(jié)點進行評價,并根據(jù)鄰居節(jié)點間的覆蓋盲區(qū)和重疊區(qū)進行覓食行為和聚群行為判斷; 5) 執(zhí)行選擇的行為,更新人工魚節(jié)點位置; 6) 更新全局人工魚節(jié)點狀態(tài)。 在MATLAB環(huán)境下進行實驗仿真。在50 m×50 m的監(jiān)測區(qū)域,分布感知半徑視野Visual RS=10的人工魚節(jié)點,據(jù)公式(3)可計算將需人工魚節(jié)點60個,隨機分布人工魚節(jié)點,假設人工魚節(jié)點移動最大步長step=1,迭代次數(shù)Try-number=100,擁擠度因子δ=0.01,由于節(jié)點的初始部署對人工魚群算法有一定影響,因此取50次隨機部署經(jīng)過人工魚群以觀察結果,圖4為兩次隨機部署節(jié)點后,分別經(jīng)過人工魚群算法后的節(jié)點分布改善情況,圖中可以觀察到隨機分布后的節(jié)點經(jīng)過人工魚群算法后,節(jié)點的分布更均勻化,由于隨機初始化節(jié)點位置對算法有很大的影響,并不是每次算法都可以取得很好的效果,因此取了50次隨機初始化,每次算法內(nèi)都迭代100次,經(jīng)過對50次初始化取均值得出經(jīng)過算法作用后,網(wǎng)絡覆蓋有效率提高5.23%。 圖4 人工魚群算法分布對比圖 本文研究了基本人工魚群算法在同構無線傳感器網(wǎng)絡中的應用,將隨機部署的節(jié)點抽象成封裝了自身數(shù)據(jù)和行為的人工魚,可以根據(jù)自身及周邊環(huán)境的覆蓋盲區(qū)和重疊區(qū)為引導來指導人工魚節(jié)點的移動,人工魚節(jié)點規(guī)模,人工魚節(jié)點移動最大步長,感知半徑視野,迭代次數(shù),擁擠度因子是基本人工魚群算法中重要的參數(shù),從仿真實驗可以看出在常規(guī)參數(shù)設置后,人工魚算法對隨機部署的無線傳感器網(wǎng)絡有效覆蓋率有一定的提高,但也可以看出上述參數(shù)對算法效果的影響,并不是每一次算法都有改善作用,后續(xù)將深入對其中的擁擠度因子等參數(shù)的研究。2.2 聚群行為
3 算法流程
4 仿真性能
5 結束語