摘要:目的:針對(duì)無線傳感器網(wǎng)絡(luò)隨機(jī)部署節(jié)點(diǎn)的區(qū)域覆蓋和傳感器節(jié)點(diǎn)能量消耗問題,提出一種基于慣性權(quán)重余弦自適應(yīng)調(diào)整策略的改進(jìn)果蠅優(yōu)化算法。方法:該算法在果蠅優(yōu)化算法基礎(chǔ)上,通過引入慣性權(quán)重的學(xué)習(xí)因子調(diào)整策略,在線調(diào)整算法的搜索步長(zhǎng)。結(jié)果:增強(qiáng)了果蠅個(gè)體的自適應(yīng)性及全局搜索能力,從而實(shí)現(xiàn)全局最優(yōu)。結(jié)論:仿真實(shí)驗(yàn)表明,提出的改進(jìn)果蠅優(yōu)化算法不僅提高了收斂速度和全局搜索能力,還顯著提升了WSN的覆蓋率。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);改進(jìn)果蠅優(yōu)化算法;慣性權(quán)重余弦自適應(yīng)調(diào)整策略;學(xué)習(xí)因子調(diào)整策略;覆蓋率
中圖分類號(hào):TP31" " " 文獻(xiàn)標(biāo)志碼:A" " " 文章編號(hào):1008-4657(2024)04-0015-11
0" " " " 引言
無線傳感器網(wǎng)絡(luò)(Wireless" Sensor" Networks,WSN)是一種遠(yuǎn)距離、分布式的多跳自組織的傳感網(wǎng)絡(luò),主要由一組可以合作感知和采集檢測(cè)的傳感器組成。這些傳感器采用無線通信方式,實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)傳輸、監(jiān)測(cè)和共享。由于良好的擴(kuò)展性和靈活性,WSN技術(shù)被廣泛使用物聯(lián)網(wǎng)系統(tǒng)中[ 1 ]。
WSN在實(shí)際應(yīng)用時(shí)存在許多問題,如監(jiān)測(cè)面積大、環(huán)境惡劣、能量有限、成本高、網(wǎng)絡(luò)連接不穩(wěn)定、效率低、傳感器覆蓋不全面等[ 2 ]。針對(duì)這些問題,學(xué)者們利用智能算法進(jìn)行了大量的研究,取得了豐碩的成果。史振興等[ 3 ]對(duì)于WSN中較為重要的能耗較高問題,提出一種能使能量均衡分配的分層式分簇單跳和多跳的無線傳感器網(wǎng)絡(luò)路由算法(LEACHC),可以將網(wǎng)絡(luò)分為兩層,調(diào)節(jié)傳輸數(shù)據(jù)的跳數(shù)和簇頭,最大限度地均勻化能耗,使網(wǎng)絡(luò)生命周期延長(zhǎng)。陳玲君[ 4 ]針對(duì)如何能夠減少傳感器節(jié)點(diǎn)定位誤差,提出一種基于改進(jìn)粒子群優(yōu)化算法修正DV-Hop誤差的傳感器節(jié)點(diǎn)定位方法,該算法通過分析粒子之間的間距、雙變異因子和權(quán)重設(shè)置,提高了傳感器節(jié)點(diǎn)定位精度。武娟等[ 5 ]針對(duì)WSN節(jié)點(diǎn)隨機(jī)分布導(dǎo)致覆蓋不充分的問題,提出了一種改進(jìn)麻雀搜索-覆蓋率增量(ISSA-ICR)算法,該算法改進(jìn)了搜索者的位置更新方式,采用了以迭代次數(shù)為自由度的t分度擾動(dòng)和動(dòng)態(tài)調(diào)整策略平衡了算法全局搜索能力,又引入隨機(jī)回歸的越界處理策略解決節(jié)點(diǎn)部署位置的問題。Mo Yuanbin等[ 6 ]對(duì)WSN的覆蓋和部署問題設(shè)計(jì)了一種基于粒子群算法、優(yōu)化信息共享和人工免疫系統(tǒng)(AIS)多樣性維持機(jī)制的新型SI算法,在給定傳感器節(jié)點(diǎn)數(shù)和最小傳感器節(jié)點(diǎn)數(shù)下獲得了WSN中要求的最大覆蓋概率,仿真結(jié)果表明該算法具有實(shí)用性。吉珊珊[ 7 ]為了降低移動(dòng)sink無線傳感器網(wǎng)絡(luò)的能耗和sink移動(dòng)距離,提出了一種基于增強(qiáng)蟻群算法的傳感網(wǎng)絡(luò)移動(dòng)sink路徑規(guī)劃算法,該算法在人工蟻群算法的基礎(chǔ)上引入了遺傳算子,可以避免算法過早收斂。同時(shí)將不均勻的數(shù)據(jù)量作為網(wǎng)絡(luò)的約束條件,采用增強(qiáng)的人工蟻群算法選擇匯集點(diǎn)的帕累托次優(yōu)集,有效的降低了網(wǎng)絡(luò)能耗,提高了網(wǎng)絡(luò)能耗的均勻性。
上述文獻(xiàn)中的算法雖然在從節(jié)點(diǎn)移動(dòng)距離、能耗優(yōu)化、節(jié)點(diǎn)個(gè)數(shù)等方面優(yōu)化了WSN的覆蓋和部署問題,但由于這些算法中引入的參數(shù)較多,運(yùn)算復(fù)雜,增加了系統(tǒng)的運(yùn)算負(fù)擔(dān),這也限制了上述算法在實(shí)際中的應(yīng)用。相較于蟻群算法、ISSA-ICR和粒子群算法,果蠅優(yōu)化算法由于系統(tǒng)參數(shù)較少,運(yùn)算簡(jiǎn)單,是解決WSN覆蓋問題更為有效的方法。尹向兵等[ 8 ]對(duì)傳統(tǒng)節(jié)點(diǎn)部署中的覆蓋面積小,速度慢的問題,提出將果蠅優(yōu)化算法與WSN覆蓋模型結(jié)合,可得到更好的覆蓋率,但是沒有避免早熟收斂。寧劍平等[ 9 ]對(duì)支持向量機(jī)回歸模型的優(yōu)化問題,提出一種遞減步長(zhǎng)的果蠅優(yōu)化算法,該算法使果蠅的搜索步長(zhǎng)隨著算法迭代進(jìn)程逐漸減少,使算法前期有較強(qiáng)的全局搜索能力,后期增強(qiáng)其局部搜索能力,但對(duì)于前期搜索速度沒有提高?;艋刍鄣龋?10 ]提出了一種離散果蠅優(yōu)化算法改善WSN中的節(jié)點(diǎn)浪費(fèi)、覆蓋率不高的問題。該算法引入了嗅覺分類搜索和移民操作種群協(xié)同進(jìn)化機(jī)制,使算法精度和效率得到了提高,但是算法融合較多,過于復(fù)雜。王越群等[ 11 ]對(duì)于礦井無線傳感器網(wǎng)絡(luò)中能量有限、傳輸距離長(zhǎng)的問題,提出簇內(nèi)通信優(yōu)化機(jī)制,構(gòu)建簇首和節(jié)點(diǎn)剩余能量的適應(yīng)度函數(shù)來優(yōu)化果蠅算法,尋找能量最小的通信路徑,但對(duì)覆蓋率沒有改進(jìn)。
以上文獻(xiàn)中主要使用果蠅優(yōu)化算法解決了WSN中的覆蓋率小、算法陷入局部最優(yōu)的問題,使算法具有更大的搜索范圍,提高了算法的精度,并使通信的能量最小化,但是并沒有充分考慮算法在前期搜索尋優(yōu)中存在的速度快慢問題。前期較快的搜索速度可以加快傳感器網(wǎng)絡(luò)形成的速度,節(jié)約時(shí)間成本。
1" " " " WSN覆蓋模型
假設(shè)監(jiān)測(cè)區(qū)域內(nèi)的每個(gè)傳感器節(jié)點(diǎn)的感知半徑Rs和通信半徑Rc都相同,且通信半徑大于等于兩倍的感知半徑,則認(rèn)定WSN能夠?qū)崿F(xiàn)監(jiān)測(cè)區(qū)域全覆蓋,傳感器節(jié)點(diǎn)也能全部相連通,這樣傳感器數(shù)據(jù)才能穩(wěn)定傳輸[ 12 ]。將WSN的覆蓋情況簡(jiǎn)化成網(wǎng)格覆蓋模型,監(jiān)測(cè)區(qū)域分成M" ×" N的網(wǎng)格點(diǎn)。
在這個(gè)二維的區(qū)域內(nèi),有n個(gè)傳感器節(jié)點(diǎn)隨機(jī)分布,每個(gè)節(jié)點(diǎn)的位置可以表示為Wi" =" (xi,yi),(i = 1,2,…,n)。則傳感器節(jié)點(diǎn)的集可以表示為W = {ω1,ω2,…,ωi,…,ωn}。這時(shí),網(wǎng)格點(diǎn)q = (x,y)和每個(gè)傳感器節(jié)點(diǎn)Wi之間的距離可以用歐氏距離表示:
diq" =" (1)
在傳感器感知模型里,分為二元檢測(cè)感知模型和概率感知模型,本文選用二元感知模型,公式為:
pi = 1" " " diq ≤ r0" " " diq" > r(2)
式中的r是傳感器的傳感半徑(即r = Rs - Rc);diq是歐氏距離。
下一個(gè)傳感器節(jié)點(diǎn)能接收到上一個(gè)傳感器節(jié)點(diǎn)發(fā)送信號(hào)的概率則為:
P = 1 - (1 - pi)(3)
為了求得最大覆蓋率,并使傳感器節(jié)點(diǎn)分布更均勻,因此將WSN網(wǎng)絡(luò)覆蓋優(yōu)化模型設(shè)置為算法的目標(biāo)函數(shù)(Fitness function)。為了得到目標(biāo)監(jiān)控區(qū)域內(nèi)的節(jié)點(diǎn)覆蓋率,其判斷模型為:
Scov = Fitness function (4)
其中,M" ×" N為監(jiān)控區(qū)域范圍內(nèi)設(shè)置的網(wǎng)格點(diǎn),如果網(wǎng)格節(jié)點(diǎn)能被傳感器節(jié)點(diǎn)覆蓋,則該節(jié)點(diǎn)就能被監(jiān)測(cè)到;ΣP 為成功覆蓋的網(wǎng)格點(diǎn)總數(shù)。
2" " 果蠅優(yōu)化算法
2.1" " 果蠅算法簡(jiǎn)介
果蠅優(yōu)化算法(Fruit" Fly" Optimization" Algorithm,F(xiàn)OA)是Pan" Wen" Tsao提出的一種新興群體優(yōu)化算法[ 13 ],該算法是模仿果蠅的覓食過程,如圖1所示。圖中的圓為果蠅群體,它們的初始位置在一個(gè)搜索區(qū)域里隨機(jī)分布,食物即尋優(yōu)目標(biāo)在距離坐標(biāo)原點(diǎn)較遠(yuǎn)的位置,這時(shí)果蠅群體會(huì)通過嗅覺判斷自身與原點(diǎn)間的距離,隨機(jī)搜索固定范圍內(nèi)的食物信號(hào),當(dāng)接近食物的位置時(shí),群體會(huì)根據(jù)味道濃度進(jìn)行位置判定,向味道濃度最大的個(gè)體移動(dòng),最后再通過視覺一起朝著食物飛去,最終實(shí)現(xiàn)整個(gè)算法的運(yùn)算。
FOA可以實(shí)現(xiàn)對(duì)求解空間的群體迭代搜索,且原理簡(jiǎn)單,操作易于實(shí)現(xiàn),具有較強(qiáng)的局部搜索能力[ 14 ]。各類算法與FOA算法的對(duì)比,如表1所示[ 15 ]。
從表1中可以明顯看出FOA算法的優(yōu)勢(shì),如計(jì)算量較小、復(fù)雜度比較簡(jiǎn)單、精度較高等,但存在穩(wěn)定性較差的問題。
2.2" " FOA算法的主要步驟及分析
果蠅群體迭代尋優(yōu)的主要步驟有以下幾步。
1)首先初始化果蠅群體規(guī)模Sizepop、迭代次數(shù)最大值Maxgen,然后隨機(jī)初始果蠅群體所在位置。初始化果蠅算法的基本參數(shù)和WSN覆蓋模型的相關(guān)參數(shù)。
X _axisY _axis(5)
2)初始化果蠅群體位置后,為了讓果蠅能夠利用嗅覺搜尋食物,再賦值給每個(gè)果蠅隨機(jī)的距離和方向:
Xi = X _axis + 2*step*rand - stepYi = Y _axis + 2*step*rand - step(6)
式中,i代表第i個(gè)果蠅的個(gè)體,step代表果蠅的搜索步長(zhǎng),rand為[0,1]之間的隨機(jī)數(shù)。而step的數(shù)值在FOA算法中為1。
3)但因?yàn)榫唧w食物的位置果蠅群體無法直接獲知。所以算法中先計(jì)算第i個(gè)果蠅與初始原點(diǎn)間的距離Dist,再通過算出味道濃度的判定值Si確定與食物的距離,該值設(shè)定為距離的倒數(shù)。
Disti = Si = (7)
4)把得出的氣味濃度判定值Si代入判定氣味濃度值的函數(shù)(適應(yīng)度函數(shù))中,找到果蠅個(gè)體味道濃度(Smelli)。在無線傳感器網(wǎng)絡(luò)模型里,公式(4)為FOA算法的優(yōu)化函數(shù),即濃度判斷函數(shù)。
Smelli = Fitness function(Si)(8)
5)找出果蠅群體中氣味濃度最大的果蠅個(gè)體(即尋找最優(yōu)個(gè)體)和其對(duì)應(yīng)的濃度值。
[bestSmell" bestIndex] = max Smell(9)
6)保留果蠅個(gè)體中最佳的味道濃度值和對(duì)應(yīng)的X _axis,Y _axis坐標(biāo),判斷是否這次迭代的最佳味道濃度值比上次最佳味道濃度值好,如果是,那么果蠅群體則通過視覺飛向該位置。
Smell = bestSmellX _axis = X(bestIndex)Y _axis = Y(bestIndex)(10)
7)重復(fù)執(zhí)行步驟2)至步驟5),進(jìn)行迭代尋優(yōu)過程,可以得到當(dāng)前位置果蠅個(gè)體的最佳味道濃度值bestSmelli,分析該值是否優(yōu)于上次迭代的最佳味道濃度值,同時(shí)判斷當(dāng)前迭代次數(shù)是否小于最大迭代次數(shù)Maxgen,若是,則繼續(xù)執(zhí)行步驟6),否則,算法結(jié)束。
對(duì)于FOA算法的整個(gè)計(jì)算步驟可以看出,該算法比較簡(jiǎn)單,計(jì)算所需要的參數(shù)較少,因此計(jì)算量不大,運(yùn)算處理時(shí)間較短,且能夠?qū)崿F(xiàn)的尋優(yōu)結(jié)果較為精確。整個(gè)算法編寫的過程邏輯清晰,易于實(shí)現(xiàn)。但是,該算法在初期存在果蠅個(gè)體搜尋速度慢、易陷入局部最優(yōu)等問題,導(dǎo)致算法后期收斂速度減慢。針對(duì)這些不足,本文結(jié)合慣性權(quán)重調(diào)整和可變步長(zhǎng)的策略,對(duì)FOA算法進(jìn)行了一定的改進(jìn)。
3" " " " 改進(jìn)FOA算法
受到一種改進(jìn)粒子群算法中改進(jìn)收斂算法速度的啟發(fā),為避免FOA算法在初期個(gè)體搜尋速度較慢的情況,在FOA算法的基本輸入?yún)?shù)上引入一個(gè)最大速度Vmax和一個(gè)最小速度Vmin,為防止果蠅個(gè)體盲目搜索,將輸入的速度定在[Vmin,Vmax]范圍內(nèi),公式如下:
V _ x(t) = r1(t).*(Vmax - Vmin) + VminV _ y(t) = r2(t).*(Vmax - Vmin) + Vmin(11)
r1和r2表示為[0,1]之間的隨機(jī)數(shù),最大、最小速度Vmax、Vmin取自參考文獻(xiàn)[ 16 ],以下未說明的常量都引自該參考文獻(xiàn),其余是實(shí)驗(yàn)中的隨機(jī)變量。通過公式(11)可得到關(guān)于果蠅個(gè)體的初始隨機(jī)速度分量,分別是X軸方向上的速度分量V_ x和Y軸方向上的速度分量V_ y。
隨后引入慣性權(quán)重并分析其變化,提出一種慣性權(quán)重余弦自適應(yīng)調(diào)整策略,將改進(jìn)慣性權(quán)重公式定義如下:
w(t)" =" 0.1 +" 0.9 cos(12)
Maxgen為最大迭代次數(shù)。通過余弦公式對(duì)慣性權(quán)重進(jìn)行調(diào)整,改變果蠅個(gè)體的行為,使搜索過程更適應(yīng)算法的各個(gè)階段。在算法初期,增大慣性權(quán)重,分散果蠅個(gè)體的搜索過程,擴(kuò)大搜索的空間,使算法免于陷入局部最優(yōu),增加算法前期的全局搜索能力;隨著算法運(yùn)行到后期,減小慣性權(quán)重,這時(shí)會(huì)縮小果蠅個(gè)體搜尋范圍,導(dǎo)致搜索空間減少,使局部尋優(yōu)能力得到提升,加快算法收斂。
同時(shí)為加強(qiáng)果蠅個(gè)體的學(xué)習(xí)能力,引入基于慣性權(quán)重的學(xué)習(xí)因子調(diào)整策略,慣性權(quán)重、學(xué)習(xí)因子取值和以下未說明的變量都引自參考文獻(xiàn)[ 17 ]。根據(jù)果蠅個(gè)體行為的穩(wěn)定性條件進(jìn)行修正,經(jīng)式(13)得出學(xué)習(xí)因子h1,h2。
h1(t) = 1.3 + 1.2cos(πw(t))h2(t) =" 2 - 1.2cos(πw(t))(13)
w(t)為改進(jìn)后的慣性權(quán)重,在迭代過程中,給予每個(gè)果蠅一個(gè)隨機(jī)初始速度,即X軸方向的速度分量和Y軸方向的速度分量,改進(jìn)FOA算法的速度和位置更新公式為:
vi _ x(t + 1) = w(t)vi _ x(t ) + h1(t)r1(t)[Xbestindex - xi(t)]vi _ y(t + 1) = w(t)vi _ y(t ) + h2(t)r2(t)[Ybestindex - yi(t)](14)
其中,X(bestindex)和Y(bestindex)表示最優(yōu)味道濃度果蠅個(gè)體的位置坐標(biāo)。之后對(duì)速度分量限定范圍,使迭代后的速度分量不超過[Vmin,Vmax]的范圍:
V _ x(t + 1) >" Vmax = VmaxV _ y(t + 1) <" Vmin = Vmin(15)
FOA算法中的果蠅個(gè)體每次迭代都從同一個(gè)起點(diǎn)開始獲得隨機(jī)的速度,并向著隨機(jī)方向搜索,但FOA算法中初始搜索步長(zhǎng)s是已經(jīng)設(shè)定好的,自適應(yīng)性較差。而針對(duì)于上述情況,再引入可變步長(zhǎng)Hi,將整個(gè)搜索的迭代過程分成若干個(gè)周期,將任意迭代次數(shù)看成是一個(gè)周期T,且周期內(nèi)的步長(zhǎng)通過正弦函數(shù)Sin(x)表示跌宕變化[ 18 ]。公式如下:
α = mod(i,T)" " " " " " " " " " i∈[1,Maxgen](16)
Hi" = L × (sin(i) + 1)a" " " " " "Hi" < LL" " " " " " " " " " " " " " " " " " "Hi" > L(17)
公式(16)中,T表示單位周期中的迭代次數(shù),而mod(i,T)為第i次迭代相對(duì)于T取余數(shù)。公式(17)中,L表示算法參數(shù)中設(shè)置的搜索區(qū)域長(zhǎng)度。
從公式中可以看出,可變步長(zhǎng)可以增加整個(gè)搜索過程的自適應(yīng)性,能夠較容易地脫離局部最優(yōu),減少局部收斂的可能性,其次在迭代周期中使用Sin(x)函數(shù),可以使的步長(zhǎng)產(chǎn)生正弦變化。在Sin(x)單調(diào)遞增的過程中,步長(zhǎng)呈現(xiàn)指數(shù)性增大,使算法的全局搜索能力增強(qiáng),收斂速度加快,且不容易出現(xiàn)陷入局部最優(yōu)解,同時(shí)增大步長(zhǎng)還可以解決在上一個(gè)單調(diào)區(qū)間內(nèi)Sin(x)函數(shù)可能會(huì)出現(xiàn)的局部收斂問題。當(dāng)處在Sin(x)單調(diào)遞減的函數(shù)區(qū)間內(nèi)時(shí),步長(zhǎng)指數(shù)性下降,使得算法可以完成小范圍內(nèi)的高精度搜索,結(jié)果可以呈現(xiàn)更好的收斂效果。
接下來將可變步長(zhǎng)和速度向量融入到FOA算法的位置迭代中來,并依次迭代下去:
Xi = X _axis + V _ x(t) + Hi Yi = Y _axis + V _ y(t) + Hi(18)
經(jīng)過數(shù)次的迭代,在得到每次迭代的果蠅個(gè)體位置后,根據(jù)味道濃度判定函數(shù)(適應(yīng)度函數(shù)Fitness function),得出果蠅個(gè)體的味道濃度,找到味道濃度最好的果蠅位置,并將位置和最佳味道濃度值bestSmelli保留,判斷這次最佳氣味濃度是否大于上一代,否則繼續(xù)迭代,直至最大迭代次數(shù)Maxgen,算法結(jié)束。
具體的算法偽代碼如下:
具體的改進(jìn)FOA算法流程圖如圖2所示,算法先設(shè)定基本參數(shù),后引入學(xué)習(xí)因子和可變步長(zhǎng),更新果蠅速度向量,開始果蠅迭代搜索,得出每次迭代的最佳味道濃度和最佳味道個(gè)體,與上一代的最佳味道濃度對(duì)比,如果優(yōu)于上一次,則保存位置信息,最后判斷迭代是否結(jié)束,得到最終的覆蓋率。
4" " 試驗(yàn)仿真與結(jié)果分析
4.1" " 仿真參數(shù)的設(shè)置
為了驗(yàn)證改進(jìn)后的FOA算法在WSN應(yīng)用中能否增大傳感器節(jié)點(diǎn)的覆蓋率以及實(shí)現(xiàn)傳感器的部署過程中的最優(yōu)化問題,本文設(shè)計(jì)了仿真實(shí)驗(yàn)。仿真平臺(tái)選擇Matlab R2022b,對(duì)改進(jìn)前后FOA的部分參數(shù)進(jìn)行如下設(shè)置:部署監(jiān)測(cè)區(qū)域?yàn)長(zhǎng) × L = 40 m × 40 m,試驗(yàn)網(wǎng)格點(diǎn)為0.4 × 0.4,傳感器節(jié)點(diǎn)數(shù)為25,果蠅之間的離散度設(shè)置為0.4,果蠅個(gè)體的搜索步長(zhǎng)設(shè)為0.2,果蠅的種群規(guī)模設(shè)置為30,最大迭代次數(shù)設(shè)為250,Rs = 5 m為傳感器的感知半徑,通信半徑Rc = 10 m。對(duì)于改進(jìn)后的果蠅算法引入的速度最大值Vmax和最小值Vmin,分別設(shè)置為0.3和-0.3。
4.2" " 改進(jìn)FOA算法與FOA算法對(duì)比
根據(jù)上面設(shè)定的參數(shù),編寫改進(jìn)后的FOA算法代碼,建立相應(yīng)的數(shù)學(xué)模型,運(yùn)行得出結(jié)果如圖3所示。
由圖3可以明顯看出,在同樣的區(qū)域搜索面積、無線傳感器節(jié)點(diǎn)個(gè)數(shù)和傳感器節(jié)點(diǎn)感知半徑下,經(jīng)過250次迭代搜尋后,改進(jìn)后的FOA算法的覆蓋面積要優(yōu)于FOA算法,且仿真圖中的傳感器節(jié)點(diǎn)分布也更均勻,未監(jiān)測(cè)到的空白區(qū)域更少,感知圓的疊加區(qū)域很小,覆蓋率更高。改進(jìn)FOA算法和FOA算法的算法訓(xùn)練過程對(duì)比,如圖4所示。
從圖4中可以看出,F(xiàn)OA算法的初始位置覆蓋率為66%左右,而改進(jìn)FOA算法初始覆蓋率為69%,且隨著迭代次數(shù)的推進(jìn),改進(jìn)FOA算法的曲線斜率要大于FOA算法的斜率。在算法運(yùn)行的初期,即迭代次數(shù)達(dá)到50次的時(shí)候,F(xiàn)OA算法覆蓋率僅為82%左右,而改進(jìn)后的FOA算法覆蓋率已達(dá)到89%左右;在算法運(yùn)行的后期即迭代次數(shù)為250次時(shí),F(xiàn)OA算法的區(qū)域覆蓋率最大僅為93.109%,而改進(jìn)后的FOA算法的區(qū)域覆蓋率最大達(dá)到97.03%。由此可見,改進(jìn)后的FOA算法比起FOA算法的全局搜索能力有很大提高,搜索速度也有所加快,能使傳感器節(jié)點(diǎn)更快形成全覆蓋,減少無線傳感器網(wǎng)絡(luò)的形成時(shí)間。
4.3" " 改進(jìn)FOA算法與其他算法對(duì)比
為進(jìn)行有效對(duì)比驗(yàn)證,將改進(jìn)的FOA算法與粒子群算法(PSO)、均勻粒子群算法(UPSO)、混沌粒子群優(yōu)化算法(CPSO)進(jìn)行對(duì)比仿真實(shí)驗(yàn)。仿真設(shè)置了相同的參數(shù),仿真環(huán)境則模擬WSN布局。仿真實(shí)驗(yàn)的基本參數(shù)設(shè)置如下:空間設(shè)置為40 m × 40 m的方形搜索區(qū)域,選擇隨機(jī)部署25個(gè)同構(gòu)傳感器節(jié)點(diǎn)在該區(qū)域內(nèi),每個(gè)節(jié)點(diǎn)的感知半徑Rs = 5 m,通信半徑Rc = 10 m,感知誤差半徑Re = 0.1 m。各種算法的輸入?yún)?shù)如下:各算法的種群規(guī)模Sizepop統(tǒng)一設(shè)置為30,迭代次數(shù)Maxgen統(tǒng)一設(shè)置為250,粒子群算法和UPSO算法慣性權(quán)重設(shè)置為1,學(xué)習(xí)因子h = h1 = h2 = 2.5。CPSO算法的慣性權(quán)重、學(xué)習(xí)因子與改進(jìn)FOA算法設(shè)置一致,采用相同的節(jié)點(diǎn)覆蓋模型即適應(yīng)度函數(shù)。
以下為覆蓋對(duì)比仿真結(jié)果,如圖5所示。
圖中“+”表示傳感器節(jié)點(diǎn),不同圖中的圓形代表不同算法的覆蓋范圍。從圖中可以看出,在40 m ×40 m的搜索區(qū)域內(nèi),改進(jìn)后的FOA算法的區(qū)域覆蓋率要優(yōu)于PSO算法和改進(jìn)PSO算法,且傳感器節(jié)點(diǎn)分布更加均勻,各個(gè)節(jié)點(diǎn)的感知圓半徑一致,感知圓間的重疊面積能達(dá)到最小,在整個(gè)區(qū)域面積里,能在有限的傳感器節(jié)點(diǎn)個(gè)數(shù)下使覆蓋率達(dá)到最大。從而減少傳感器節(jié)點(diǎn)個(gè)數(shù),節(jié)約成本。
算法訓(xùn)練仿真對(duì)比結(jié)果如圖6所示。
從上圖的算法訓(xùn)練過程中可以看出,在250次迭代過程中,改進(jìn)FOA算法(實(shí)線)比起另外三個(gè)算法具有很大優(yōu)勢(shì)。其中,PSO(帶“*”的實(shí)線)、UPSO(帶“○”的實(shí)線)、CPSO算法(帶“▲”的實(shí)線)的初始覆蓋率都是76.389%,在0~85次迭代時(shí),三種算法長(zhǎng)勢(shì)平緩。PSO和UPSO算法在85~150次迭代中,覆蓋率漲幅依然沒有變化,而在迭代次數(shù)分別為150次和161次時(shí)覆蓋率開始上升,但覆蓋率增長(zhǎng)速度較低,最終的覆蓋率分別為82.738%和87.657%,UPSO相較于PSO算法覆蓋率略有提高;CPSO算法從85~250次迭代覆蓋率開始增大,最終達(dá)到95.309%,且曲線斜率較之UPSO和PSO算法都有增大,搜索速度得到提升;而改進(jìn)FOA的算法訓(xùn)練曲線整體上升得很穩(wěn)定,斜率在迭代初期很大,在0~50次迭代過程中,覆蓋率已從69%左右提升到89%左右,搜索速度很快,全局搜索能力較強(qiáng),后期斜率變小,從50次往后迭代,搜索速度減慢,局部搜索能力變強(qiáng),最終覆蓋率達(dá)到97.03%,相較于PSO算法及其改進(jìn)算法具有更好的覆蓋效果和搜索速度。
為避免隨機(jī)性的影響,將多種算法各做了10次仿真,并使用Monte Carlo算法對(duì)輸出的10次覆蓋率結(jié)果進(jìn)行均化處理,取其中的最大值和最小值得到最好覆蓋率和最差覆蓋率,再通過Monte Carlo算法對(duì)輸出的10次覆蓋率結(jié)果計(jì)算平均覆蓋率、標(biāo)準(zhǔn)差。最后總結(jié)如表2所示。
根據(jù)表2中數(shù)據(jù)可以直觀發(fā)現(xiàn),四種比較方式中,改進(jìn)FOA算法的所有覆蓋率都超過了PSO相關(guān)算法的覆蓋率,在WSN覆蓋率的應(yīng)用中具有更快的搜索速度,在WSN覆蓋率方面也超過了其他算法,在WSN傳感器覆蓋中更有優(yōu)勢(shì)。
5" " 結(jié)論
本文基于WSN覆蓋模型,在FOA算法的基礎(chǔ)上,提出了改進(jìn)FOA算法。經(jīng)過Matlab實(shí)驗(yàn)仿真,與FOA算法、PSO算法、UPSO、CPSO算法對(duì)比,可見在迭代次數(shù)不高的情況下,改進(jìn)后的FOA算法在前期全局搜索能力加快,顯著提升了WSN節(jié)點(diǎn)的部署效率,整體提高了WSN的覆蓋率,還可減少傳感器節(jié)點(diǎn)數(shù)量,縮減成本。仿真結(jié)果也表明,改進(jìn)算法能夠提高WSN的部署效率,增大了傳感器的覆蓋率,有一定的優(yōu)越性和先進(jìn)性。
總而言之,總結(jié)出以下四點(diǎn):第一,該算法引入了慣性權(quán)重余弦自適應(yīng)調(diào)整策略,在果蠅個(gè)體迭代時(shí)的位置判定上加入了速度向量參數(shù),由改進(jìn)后的慣性權(quán)重公式,通過余弦調(diào)整慣性權(quán)重,給予果蠅個(gè)體在X軸和Y軸上的速度向量,增強(qiáng)果蠅個(gè)體的自適應(yīng)性,使得改進(jìn)后的算法運(yùn)行初期,慣性權(quán)重增大,果蠅個(gè)體有較好的全局搜索能力,而運(yùn)行后期,慣性權(quán)重減少,算法局部搜索能力增強(qiáng),加快收斂速度。同時(shí)再加入學(xué)習(xí)因子,從而避免出現(xiàn)局部最優(yōu)的情況。同時(shí)對(duì)于果蠅搜索步長(zhǎng)也做了調(diào)整,引入了可變步長(zhǎng)Hi,增加了算法搜索過程中的多樣性和自身調(diào)整能力,能夠有效跳出局部收斂。第二,但對(duì)于迭代次數(shù)較多的情況下,改進(jìn)FOA算法的尋優(yōu)速度會(huì)變慢,效果不盡如人意。而且由于節(jié)點(diǎn)的分布隨機(jī),每次迭代的結(jié)果好壞參半。第三,在算法的改進(jìn)過程中,主要通過在原算法的過程中引入其他改進(jìn)因子,從而達(dá)到改進(jìn)的效果,這些改進(jìn)因子大多來源于其他算法和公式,但參數(shù)的選取不同。第四,對(duì)于改進(jìn)FOA算法,還有許多可以優(yōu)化的方面,如本改進(jìn)算法的感知圓半徑是固定值,但現(xiàn)實(shí)中往往節(jié)點(diǎn)感知半徑并不相同,通過傳感器的可變感知半徑可以優(yōu)化能量損耗問題。同時(shí)本文改進(jìn)算法在多次迭代后的效果不佳,也有待后續(xù)研究。
參考文獻(xiàn):
[1]王澤華.無線傳感器網(wǎng)絡(luò)發(fā)展應(yīng)用[J].電腦知識(shí)與技術(shù),2020,16(14):252-253.
[2]馬世登.物聯(lián)網(wǎng)中的感知環(huán)境安全機(jī)制[J].數(shù)字技術(shù)與應(yīng)用,2023,41(2):228-230.
[3]史振興,范秀娟,姜瑩,等.一種能量均衡化分層式分簇單跳和多跳混合的WSN路由算法研究[J].制造業(yè)自動(dòng)化,2013,35(15):53-56.
[4]陳玲君.基于改進(jìn)的粒子群算法在WSN節(jié)點(diǎn)定位中的研究[J].微型機(jī)與應(yīng)用,2016,35(24):70-72.
[5]武娟,李洪兵,羅磊,等.WSN中基于改進(jìn)麻雀搜索算法的多目標(biāo)覆蓋優(yōu)化[J].電子測(cè)量技術(shù),2022,45(15):48-56.
[6]Mo Yuanbin,Liu Jizhong,Wang Baolei,et al. A novel swarm intelligence algorithm and its application in solving wireless sensor networks coverage problems[J]. Journal of Networks,2012,7(12):2037-2043.
[7]吉珊珊.基于增強(qiáng)蟻群算法的傳感網(wǎng)移動(dòng)sink路徑規(guī)劃[J].系統(tǒng)仿真學(xué)報(bào),2019,31(11):2543-2552.
[8]尹向兵,吳良超.基于周期果蠅算法的無線傳感網(wǎng)覆蓋優(yōu)化[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2017,33(16):15-17.
[9]寧劍平,王冰,李洪儒,等.遞減步長(zhǎng)果蠅優(yōu)化算法及應(yīng)用[J].深圳大學(xué)學(xué)報(bào)(理工版),2014,31(4):367-373.
[10]霍慧慧,李國(guó)勇.改進(jìn)的離散果蠅優(yōu)化算法在WSNs覆蓋中的應(yīng)用[J].傳感器與微系統(tǒng),2016,35(2):157-160.
[11]王越群,湯麗娟.基于果蠅優(yōu)化算法的礦井WSN路由協(xié)議研究[J].電子制作,2021(24):33-36.
[12]Zhu Hairong,Li Ping,Cheng Jian. Optimization method for wireless sensor network coverage based on improved PSO algorithm[J].Computer Engineering,2011,37(8):82-84.
[13]Pan Wen Tsao. A new fruit fly optimization algorithm:taking the financial distress model as an example[J]. Knowledge-Based Systems,2012,26(2):69-74.
[14]王楚柯,陸安江,吳意樂.自適應(yīng)果蠅優(yōu)化算法在WSN節(jié)點(diǎn)覆蓋優(yōu)化中的應(yīng)用[J].微電子學(xué)與計(jì)算機(jī),2019,36(2):11-15.
[15]吳小文,李擎.果蠅算法和5種群智能算法的尋優(yōu)性能研究[J].火力與指揮控制,2013,38(4):17-20.
[16]張俊溪,張嘉桐,張玉梅.一種改進(jìn)的粒子群優(yōu)化算法[J].陜西師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,44(2):15-20.
[17]趙遠(yuǎn)東,方正華.帶有權(quán)重函數(shù)學(xué)習(xí)因子的粒子群算法[J].計(jì)算機(jī)應(yīng)用,2013,33(8):2265-2268.
[18]吳良超,郭星.基于改進(jìn)果蠅算法的無線傳感網(wǎng)絡(luò)布局研究[J].微電子學(xué)與計(jì)算機(jī),2016,33(12):152-155.
The Application of Fruit Fly Optimization Algorithm
Based on Inertia Weight Adjustment in WSN
SUN Ruopenga, QUAN Yueb, LIU Shuaishuaia, GUO Haib, YU Xueqianb
(a. School of Mechanical Engineering;b. School of Electrical and Electronic Engineering,
Anhui Science and Technology University, Bengbu 233030, China)
Abstract: Objective:An improved fruit fly optimization algorithm based on an inertia weight cosine adaptive adjustment strategy is proposed for the area coverage and sensor node energy consumption problems of randomly deployed nodes in wireless sensor networks. Methods:The algorithm adjusts the search step of the algorithm online based on the fruit fly optimization algorithm by introducing a learning factor adjustment strategy for inertia weights. Results:The adaptivity of individual fruit fly and the global search ability are enhanced so as to achieve global optimality. Conclusions:Simulation experiments show that the proposed improved fruit fly optimization algorithm not only improves the convergence speed and global search capability, but also significantly improves the coverage of WSN.
Key words: wireless sensor network;improved fruit fly optimization algorithm;inertia weight cosine adaptive adjustment strategy;learning factor adjustment strategy;coverage