彭 鐸,張 倩,張騰飛,陳江旭
(蘭州理工大學(xué) 計(jì)算機(jī)與通信學(xué)院,甘肅 蘭州 730050)
無線傳感器網(wǎng)絡(luò)[1-2](Wireless Sensor Networks,WSN)是由數(shù)量眾多的無線傳感器節(jié)點(diǎn)構(gòu)成,這些節(jié)點(diǎn)以自組織的方式相互協(xié)調(diào)工作,傳感器節(jié)點(diǎn)之間可以傳輸信息并協(xié)作感知環(huán)境。無線傳感器網(wǎng)絡(luò)在軍事偵察、環(huán)境監(jiān)測、搶險救災(zāi)、醫(yī)療保障等許多領(lǐng)域都有著廣泛的應(yīng)用[3]。在這些應(yīng)用中,獲取的數(shù)據(jù)必須要有相應(yīng)的位置信息,如果沒有位置信息,相互傳遞的數(shù)據(jù)就毫無價值,失去了采集數(shù)據(jù)的意義,因此節(jié)點(diǎn)定位也是WSN的關(guān)鍵支撐技術(shù)之一[4-5]。近些年來,諸多學(xué)者對距離無關(guān)的定位算法展開研究,希望提高定位精度,使得未知節(jié)點(diǎn)在定位過程中能獲得更為準(zhǔn)確的位置信息[6]。
Amorphous算法定位精度不高,諸多學(xué)者對其進(jìn)行了數(shù)學(xué)優(yōu)化,或者加入改進(jìn)后的群體智能算法力求有效降低未知節(jié)點(diǎn)的定位誤差。文獻(xiàn)[7]提出了一種新的算法來優(yōu)化Amorphous定位算法。首先,通過傳統(tǒng)算法得到未知節(jié)點(diǎn)位置的初始解;然后,利用遺傳禁忌搜索算法優(yōu)化初始解,從而得到未知節(jié)點(diǎn)的最優(yōu)位置。文獻(xiàn)[8]分析Amorphous定位算法的缺點(diǎn),對節(jié)點(diǎn)間跳數(shù)進(jìn)行修正,引用質(zhì)心算法加權(quán),提出改進(jìn)的算法模型,仿真結(jié)果表明該算法可獲得較為精確的定位結(jié)果。文獻(xiàn)[9]提出了基于KNN算法的指紋室內(nèi)定位技術(shù),解決了基于距離相關(guān)的RSSI定位算法中定位節(jié)點(diǎn)遺漏問題。文獻(xiàn)[10]提出基于RSS閾值模型的Amorphous算法,在Amorphous算法離線計(jì)算網(wǎng)絡(luò)平均連通度的基礎(chǔ)上,建立了四種RSS閾值模型來抑制Amorphous算法在不同通信模型下的定位誤差。文獻(xiàn)[11]引用了雙通信半徑對節(jié)點(diǎn)之間最小跳數(shù)進(jìn)行細(xì)化,修正平均跳距則引入了最小均方差準(zhǔn)則以及歸一化加權(quán)因子,最后,采用優(yōu)化的麻雀搜索算法估算未知節(jié)點(diǎn)的位置。
文獻(xiàn)[12]通過增加通信半徑,將距離信標(biāo)節(jié)點(diǎn)較近的未知節(jié)點(diǎn)獲得的最小跳數(shù)更新為較小的跳數(shù),并保持距離較遠(yuǎn)的未知節(jié)點(diǎn)的最小跳數(shù)信息。該方法以跳數(shù)的形式反映了實(shí)際距離之間的差距,在一定程度上解決了跳數(shù)相同但實(shí)際距離差異較大的問題。因此,可以估計(jì)更準(zhǔn)確的平均跳躍距離,計(jì)算出它們之間更精確的距離,得到未知節(jié)點(diǎn)更精確的坐標(biāo)。文獻(xiàn)[13]提出了一種基于粒子群優(yōu)化(PSO)的DV-Hop定位算法。在所提出的算法中,錨節(jié)點(diǎn)的跳數(shù)使用校正因子進(jìn)行修改,通過更新校正因子,提高了節(jié)點(diǎn)之間距離測量的準(zhǔn)確性。為了進(jìn)一步提高準(zhǔn)確性,使用PSO算法,因?yàn)閃SN中的定位是一個優(yōu)化問題。在有界種群可行域的幫助下,使用PSO對未知節(jié)點(diǎn)的定位更加準(zhǔn)確,收斂速度相對較高。仿真結(jié)果表明,該算法的定位誤差顯著降低。
上述研究通過不同的方法對傳統(tǒng)算法的不足之處進(jìn)行了不同程度的改進(jìn),但改進(jìn)算法仍然存在定位誤差較大或算法復(fù)雜度高等問題。針對這些不足,該文提出了一種基于坐標(biāo)優(yōu)化的FOA-Amorphous節(jié)點(diǎn)定位算法。該算法在計(jì)算跳數(shù)值時用多通信半徑細(xì)化跳數(shù),利用網(wǎng)絡(luò)平均連通度對節(jié)點(diǎn)的平均跳距進(jìn)行重算,果蠅優(yōu)化算法將極大似然估計(jì)法計(jì)算得到的未知節(jié)點(diǎn)坐標(biāo)作為每個果蠅的初始位置,通過此初始位置產(chǎn)生每個果蠅的初始種群,代入適應(yīng)度函數(shù)對解進(jìn)行更新迭代,直到找到具有最佳適應(yīng)度的解,將此解作為未知節(jié)點(diǎn)的坐標(biāo)。
Amorphous算法[14]是基于非測距的定位算法,該算法通過以下三步實(shí)現(xiàn)對未知節(jié)點(diǎn)的定位:
步驟1:計(jì)算未知節(jié)點(diǎn)距各錨節(jié)點(diǎn)的最小跳數(shù)。
每個錨節(jié)點(diǎn)將含有其位置坐標(biāo)信息的數(shù)據(jù)包廣播到全網(wǎng),錨節(jié)點(diǎn)的初始跳數(shù)為0,數(shù)據(jù)包每經(jīng)過一個節(jié)點(diǎn),跳數(shù)加1,當(dāng)一個節(jié)點(diǎn)收到多個跳數(shù)信息時,保存跳數(shù)值最小的一條信息。
步驟2:計(jì)算未知節(jié)點(diǎn)到各錨節(jié)點(diǎn)的距離。
在第一階段,每個錨節(jié)點(diǎn)記錄了到其他錨節(jié)點(diǎn)的最小跳數(shù),通過公式(1)計(jì)算它和錨節(jié)點(diǎn)之間的距離di,j:
di,j=R×hopi,j
(1)
其中,di,j表示錨節(jié)點(diǎn)i和未知節(jié)點(diǎn)j之間的距離,R為節(jié)點(diǎn)的通信半徑,hopi,j表示錨節(jié)點(diǎn)i和未知節(jié)點(diǎn)j之間的最小跳數(shù)。
步驟3:利用極大似然估計(jì)法計(jì)算自身位置。
通過前兩個步驟的計(jì)算可以得到未知節(jié)點(diǎn)到錨節(jié)點(diǎn)之間的距離,因此,可以得到以下方程組:
(2)
其中,(x,y)為未知節(jié)點(diǎn)的坐標(biāo),(xi,yi)為信標(biāo)節(jié)點(diǎn)的坐標(biāo),di為估計(jì)距離。通過解上式方程組可以得到未知節(jié)點(diǎn)的坐標(biāo)。
Amorphous算法與DV-Hop算法在某些方面具有相似性,均是通過計(jì)算出的最小跳數(shù)乘以平均跳距來估計(jì)未知節(jié)點(diǎn)至錨節(jié)點(diǎn)的距離。不同之處是,Amorphous算法將通信半徑作為錨節(jié)點(diǎn)的平均跳距來估算節(jié)點(diǎn)間的距離,而DV-Hop算法中錨節(jié)點(diǎn)的平均跳距是由兩個錨節(jié)點(diǎn)間的距離除以跳數(shù)得到。
下面將分析Amorphous算法定位誤差產(chǎn)生的主要原因:
①算法在計(jì)算節(jié)點(diǎn)間的最小跳數(shù)時,結(jié)果都是整數(shù),但是現(xiàn)有的實(shí)驗(yàn)證明這大約增加了0.5個平均跳數(shù)的誤差,導(dǎo)致算法的定位誤差增大。
②由于網(wǎng)絡(luò)節(jié)點(diǎn)分布的不規(guī)則性,兩節(jié)點(diǎn)之間的距離或大或小,以節(jié)點(diǎn)通信半徑來估算兩節(jié)點(diǎn)間的距離會導(dǎo)致定位誤差過大。
③利用極大似然估計(jì)法求解未知節(jié)點(diǎn)坐標(biāo)時,受初始值測量誤差影響較大,小的測量誤差就會導(dǎo)致較大的位置估計(jì)誤差。
果蠅優(yōu)化算法(Fruit Fly Optimization Algorithm,FOA)是由潘文超博士[15]提出的一種演化式群智能優(yōu)化算法,其基本思想來自于果蠅在自然界中的覓食行為。相較于其他物種,果蠅在嗅覺和視覺上更為敏感。因此,在覓食過程中,果蠅可以利用自身獨(dú)特的嗅覺發(fā)現(xiàn)食物氣味,并分享給周圍的果蠅,比較后可以得到氣味最優(yōu)的果蠅個體位置,同時其他果蠅均會向該位置飛去,通過不斷地迭代更新最后得到果蠅群體中的最佳位置。
由文獻(xiàn)[15]可知果蠅優(yōu)化算法是一種更簡單、更魯棒的優(yōu)化算法;該算法不僅具有易于理解的特點(diǎn),而且易于寫入程序代碼。同時,與其他算法相比,程序代碼不會太長,很容易用于處理各種優(yōu)化問題。其算法步驟如下:
(1)給定果蠅種群規(guī)模(Sizepop)、群體最大迭代次數(shù)(Maxgen),隨機(jī)初始化果蠅個體初始位置X_axis、Y_axis。
(2)根據(jù)式(3)確定每個果蠅個體尋找食物的隨機(jī)距離和方向。
(3)
式中,RValue為果蠅隨機(jī)搜索距離和方向的隨機(jī)數(shù)。
(3)計(jì)算果蠅個體與原點(diǎn)距離Di和果蠅個體的味道濃度判定值Si,Si為距離Di的倒數(shù)。
(4)
Si=1/Di
(5)
(4)將味道濃度判定值Si代入適應(yīng)度函數(shù),求解出該種群中果蠅個體的味道濃度Smell(i)。
Smell(i)=Function(Si)
(6)
(5)找出種群當(dāng)前味道濃度最優(yōu)個體(即味道濃度最小值),記錄其坐標(biāo)和味道濃度值。
[bestSmell,bestIndex]=min(Smell)
(7)
(6)記錄最優(yōu)味道濃度值及對應(yīng)的橫縱坐標(biāo),群體中的其他果蠅均利用視覺向該位置飛去,形成新的果蠅群體。
X-axis=X(bestIndex)
(8)
Y-axis=Y(bestIndex)
(9)
bestSmell=Smellbest
(10)
(7)迭代尋優(yōu)階段,重復(fù)執(zhí)行步驟(2)~步驟(5),判斷當(dāng)前迭代次數(shù)是否小于最大迭代次數(shù),當(dāng)前味道濃度是否優(yōu)于所記錄的最優(yōu)味道濃度,若成立,執(zhí)行步驟(6)。
FOA迭代尋優(yōu)時,由式(3)可知,每只果蠅個體移動的距離是固定范圍的隨機(jī)值,在接近最優(yōu)果蠅時,果蠅的搜索范圍具有局限性,易陷入局部最優(yōu),收斂精度低,出現(xiàn)早熟收斂。該文借鑒文獻(xiàn)[16]中粒子群優(yōu)化算法的認(rèn)知因子和引導(dǎo)因子,在算法迭代過程中引入了個體認(rèn)知因子c1和群體引導(dǎo)因子c2,其中,個體認(rèn)知因子控制著果蠅個體對自己和其他果蠅個體位置的認(rèn)知,群體引導(dǎo)因子控制著整個果蠅群體目前的最優(yōu)位置對果蠅個體的引導(dǎo)。這將有助于算法迅速收斂于全局最優(yōu),避免算法早熟,提高了算法的收斂精度。
(11)
迭代尋優(yōu)階段,將式(3)可更換為:
(12)
其中,mean(X)和mean(Y)表示上次迭代中所有果蠅個體的平均值,(X(i,:),Y(i,:))表示上次迭代中果蠅的位置。
在相同實(shí)驗(yàn)條件下,選取了與式(18)維度一致的基測函數(shù)對FOA-c算法和FOA算法進(jìn)行了尋優(yōu)性能的對比,如圖1所示。從圖中不難看出,FOA-c算法相比較FOA算法,收斂速度更快,尋優(yōu)精度更高。
圖1 算法收斂曲線
FOA-Amorphous算法首先通過多通信半徑對最小跳數(shù)進(jìn)行細(xì)化;接著采用網(wǎng)絡(luò)平均連通度對平均每跳距離進(jìn)行重算;最后將極大似然估計(jì)法計(jì)算到的未知節(jié)點(diǎn)坐標(biāo)作為每個果蠅的初始位置,利用FOA-c算法求得最佳未知節(jié)點(diǎn)的位置坐標(biāo)。
2.2.1 多通信半徑細(xì)化跳數(shù)
如圖2所示,假設(shè)在錨節(jié)點(diǎn)A的通信半徑范圍內(nèi)有B、C、D三個未知節(jié)點(diǎn),由Amorphous算法可知,錨節(jié)點(diǎn)A到B、C、D之間的跳數(shù)均為1跳,若用Amorphous算法的實(shí)現(xiàn)步驟來計(jì)算節(jié)點(diǎn)間的距離,則AB=AC=AD,但從圖中來看,未知節(jié)點(diǎn)B、C、D到錨節(jié)點(diǎn)A的實(shí)際距離卻不相同。
圖2 通信半徑內(nèi)節(jié)點(diǎn)分布
因此,該文利用多通信半徑來細(xì)化跳數(shù):
(13)
其中,R為節(jié)點(diǎn)的通信半徑,h為跳數(shù);d為錨節(jié)點(diǎn)與其鄰居節(jié)點(diǎn)的實(shí)際距離。
(14)
2.2.2 重新計(jì)算平均每跳距離
由于網(wǎng)絡(luò)節(jié)點(diǎn)分布的隨機(jī)性,兩節(jié)點(diǎn)之間的跳段距離通常不是兩者的直線距離,用通信半徑乘以最小跳數(shù)過大地估計(jì)了跳段距離。
FOA-Amorphous算法先用式(15)計(jì)算網(wǎng)絡(luò)平均連通度:
nlocal=NπR2/S
(15)
式中,N為網(wǎng)絡(luò)節(jié)點(diǎn)總數(shù),R為節(jié)點(diǎn)的通信半徑,S為網(wǎng)絡(luò)區(qū)域面積。
用式(16)計(jì)算平均每跳距離:
(16)
2.2.3 定位計(jì)算優(yōu)化
由于節(jié)點(diǎn)間的距離都是通過跳數(shù)乘以平均跳距估計(jì)出來的,由Amorphous算法的誤差分析得知估計(jì)距離與節(jié)點(diǎn)間的實(shí)際距離有較大誤差。假設(shè)未知節(jié)點(diǎn)(x,y)與錨節(jié)點(diǎn)(xi,yi)之間的距離為di,估計(jì)誤差為τi,則有以下約束條件:
(17)
越小的τi將使得未知節(jié)點(diǎn)的估計(jì)坐標(biāo)與實(shí)際值更加接近。因此,將節(jié)點(diǎn)定位問題轉(zhuǎn)化為求最優(yōu)值問題,則有以下適應(yīng)度函數(shù):
(18)
通過FOA-c算法迭代尋優(yōu)找到使得函數(shù)值F(即估計(jì)誤差τi)趨近于0的適應(yīng)度值的坐標(biāo),此坐標(biāo)更接近未知節(jié)點(diǎn)的實(shí)際坐標(biāo),提高了算法的定位精度。
算法將極大似然估計(jì)法計(jì)算到的未知節(jié)點(diǎn)位置坐標(biāo)作為每個果蠅的初始位置,利用式(3)產(chǎn)生每個未知節(jié)點(diǎn)的初始種群,代入適應(yīng)度函數(shù)得到初始適應(yīng)度值,再用式(12)產(chǎn)生的新種群進(jìn)行更新迭代,直到找到具有最佳適應(yīng)度的解,將此解作為未知節(jié)點(diǎn)的位置。
算法的具體步驟如下:
Step1:利用多通信半徑的方法細(xì)化跳數(shù);
Step2:利用公式(16)重新計(jì)算節(jié)點(diǎn)的平均每跳距離;
Step3:由平均跳距乘以細(xì)化跳數(shù)得到未知節(jié)點(diǎn)與錨節(jié)點(diǎn)之間的跳距;
Step4:利用極大似然估計(jì)法計(jì)算每個未知節(jié)點(diǎn)的坐標(biāo),將此坐標(biāo)作為每個果蠅的初始位置;
Step5:利用式(3)產(chǎn)生每個果蠅(即每個未知節(jié)點(diǎn))的初始種群,代入適應(yīng)度函數(shù)得到個體的初始適應(yīng)度值;
Step6:利用式(12)產(chǎn)生新的種群代入適應(yīng)度函數(shù),通過迭代找到最佳適應(yīng)度的解,將輸出的最佳解作為未知節(jié)點(diǎn)的坐標(biāo);
Step7:循環(huán)多次步驟5和步驟6,直到找到所有的最佳未知節(jié)點(diǎn)的坐標(biāo)為止。
為了驗(yàn)證算法的定位性能,利用MATLAB2016b對文中算法(FOA-Amorphous)、Amorphous算法、文獻(xiàn)[12]提出的雙通信半徑算法以及文獻(xiàn)[13]提出的PSO-IDV-Hop算法,從錨節(jié)點(diǎn)個數(shù)、通信半徑大小、總節(jié)點(diǎn)個數(shù)以及時間復(fù)雜度等四個方面進(jìn)行仿真實(shí)驗(yàn)分析。在100 m×100 m的仿真區(qū)域內(nèi),隨機(jī)產(chǎn)生一定數(shù)量的網(wǎng)絡(luò)節(jié)點(diǎn)。
算法的參數(shù)設(shè)置如表1所示。
表1 算法相關(guān)參數(shù)設(shè)置
算法中每個未知節(jié)點(diǎn)的定位誤差計(jì)算公式如下:
(19)
算法的歸一化定位誤差計(jì)算公式如下:
(20)
設(shè)置總節(jié)點(diǎn)個數(shù)為100,錨節(jié)點(diǎn)個數(shù)為20,通信半徑為30。該文提出的算法與傳統(tǒng)算法的定位效果如圖3所示,從圖中不難看出,該文提出的算法估計(jì)的節(jié)點(diǎn)位置與傳統(tǒng)算法相比更加靠近真實(shí)位置。
圖3 算法的定位效果
3.2.1 未知節(jié)點(diǎn)平均定位誤差比較
在監(jiān)測區(qū)域內(nèi)隨機(jī)部署100個節(jié)點(diǎn),其中錨節(jié)點(diǎn)個數(shù)為20,未知節(jié)點(diǎn)個數(shù)為80個,通信半徑為30,四種算法各運(yùn)行100次后的平均定位誤差如圖4所示, PSO-IDV-Hop算法和文獻(xiàn)[12]的算法的平均定位誤差大約分別為13.4 m和6.5 m,該文提出算法的未知節(jié)點(diǎn)的平均定位誤差大約為4.3 m,與其他三種算法相比,定位誤差更低。
圖4 四種算法每個未知節(jié)點(diǎn)的定位誤差對比
3.2.2 錨節(jié)點(diǎn)對定位誤差的影響
圖5是節(jié)點(diǎn)總數(shù)為100,通信半徑為30時,錨節(jié)點(diǎn)比例變化對未知節(jié)點(diǎn)定位誤差的影響。
圖5 錨節(jié)點(diǎn)個數(shù)對定位誤差的影響
由圖5可知,四種算法定位誤差均隨錨節(jié)點(diǎn)所占比例的增大而減小,是因?yàn)樵诳偣?jié)點(diǎn)個數(shù)不變的情況下,錨節(jié)點(diǎn)的個數(shù)增加,則其密度增大,一個未知節(jié)點(diǎn)可以獲得的錨節(jié)點(diǎn)的位置信息增多,使其定位誤差降低。在相同的條件下,文中算法的誤差一直都是最小的,與PSO-IDV-Hop算法相比,其歸一化定位誤差降低了30%左右,與文獻(xiàn)[12]改進(jìn)的算法相比,其歸一化定位誤差降低7%左右,與Amorphous算法相比,歸一化誤差降低了53%左右。從整體來看,無論錨節(jié)點(diǎn)的比例是多是少,該文提出的算法都具有更好的定位效果。
3.2.3 通信半徑對定位誤差的影響
圖6是在總節(jié)點(diǎn)個數(shù)為100,錨節(jié)點(diǎn)個數(shù)為30的條件下,通信半徑從25變化到50的誤差變化圖。
圖6 通信半徑對定位誤差的影響
由圖6可見,文中算法與文獻(xiàn)[12]中算法的定位誤差均隨通信半徑的增大而穩(wěn)定減小,而PSO-IDV-Hop算法在通信半徑大于45之后定位誤差略有增加,這是由于隨著通信半徑增大,一跳范圍內(nèi)的節(jié)點(diǎn)數(shù)增多,導(dǎo)致算法的跳數(shù)誤差增大,而文中算法和文獻(xiàn)[12]的算法對跳數(shù)進(jìn)行了細(xì)化,使誤差隨著通信半徑的增加平穩(wěn)減小。與其他三種算法相比,文中算法的歸一化定位誤差始終最低,相比較文獻(xiàn)[12]的算法、PSO-IDV-Hop算法和Amorphous算法歸一化定位誤差分別降低了8%、24%和44%左右。
3.2.4 節(jié)點(diǎn)總數(shù)對定位誤差的影響
圖7是在錨節(jié)點(diǎn)比例為30%,通信半徑為30的條件下,定位誤差隨節(jié)點(diǎn)總數(shù)的變化圖。
圖7 節(jié)點(diǎn)總數(shù)對定位誤差的影響
從圖中可以看出,隨著節(jié)點(diǎn)總數(shù)的增加,Amorphous算法的定位誤差呈現(xiàn)上升的趨勢,這是因?yàn)楫?dāng)仿真區(qū)域面積不變的情況下,節(jié)點(diǎn)個數(shù)增加,節(jié)點(diǎn)密度增大,則節(jié)點(diǎn)的平均鄰居節(jié)點(diǎn)數(shù)增多,用通信半徑代替平均跳距計(jì)算距離時本來就有誤差產(chǎn)生,當(dāng)鄰居節(jié)點(diǎn)增多,這種誤差將會累積增大。然而,文中算法與PSO-IDV-Hop算法以及文獻(xiàn)[12]算法的定位誤差穩(wěn)定下降,是因?yàn)樗惴▽μ鴶?shù)進(jìn)行了優(yōu)化,且文中算法和PSO-IDV-Hop算法加入了智能優(yōu)化算法,優(yōu)化了未知節(jié)點(diǎn)的坐標(biāo)。與其他三種算法相比,文中算法的歸一化定位誤差最低,低于文獻(xiàn)[12]算法7%左右,低于PSO-IDV-Hop算法和Amorphous算法分別為23%和66%左右。
時間復(fù)雜度反映了算法執(zhí)行的時間長短。假設(shè)未知節(jié)點(diǎn)個數(shù)為n,錨節(jié)點(diǎn)的個數(shù)為m(m 將算法的平均運(yùn)行時間作為算法開銷指標(biāo)進(jìn)行分析。圖8為相同實(shí)驗(yàn)條件下所統(tǒng)計(jì)的四種算法的運(yùn)行時間比較。 圖8 四種算法的平均運(yùn)行時間 由實(shí)驗(yàn)結(jié)果可知,文中算法的運(yùn)行時間比Amorphous算法和文獻(xiàn)[12]算法的運(yùn)行時間大,是因?yàn)槲闹兴惴尤肓酥悄軆?yōu)化算法,使得算法的運(yùn)行時間增加;但比PSO-IDV-Hop算法的運(yùn)行時間小,這是因?yàn)镕OA算法比PSO算法更簡單、更魯棒[10],且文中算法加入了個體認(rèn)知因子和群體引導(dǎo)因子,使算法快速收斂到全局最優(yōu),提高了算法的收斂精度。從整體來說,文中算法的運(yùn)行時間略有增加,但算法的定位精度得到了很好的提升。 主要針對Amorphous算法存在的誤差分析,提出了一種新的FOA-Amorphous算法。該算法通過對通信半徑劃分實(shí)現(xiàn)了跳數(shù)的細(xì)化,利用網(wǎng)絡(luò)平均連通度對錨節(jié)點(diǎn)的平均跳距進(jìn)行重算,然后用極大似然估計(jì)法計(jì)算得到的未知節(jié)點(diǎn)坐標(biāo)值作為果蠅算法中每個果蠅的的初始位置,通過此初始位置產(chǎn)生每個果蠅的初始種群,代入適應(yīng)度函數(shù)對解進(jìn)行更新迭代,直到找到具有最佳適應(yīng)度的值,將此解作為未知節(jié)點(diǎn)的最終位置坐標(biāo)。仿真實(shí)驗(yàn)表明,雖然算法的運(yùn)行時間略有增加,但從整體來看,無論錨節(jié)點(diǎn)、通信半徑、總節(jié)點(diǎn)數(shù)如何變化,該算法都具有更好的定位性能。未來主要的研究熱點(diǎn)可能是移動節(jié)點(diǎn)、不規(guī)則拓?fù)渚W(wǎng)絡(luò)和三維地形中的研究。4 結(jié)束語