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