王 超,宋荷慶
(1. 福建師范大學(xué),福建 福州 350001;2. 福建省圖書館籌建辦,福建 福州 350001;3. 浙江工商大學(xué)計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
無(wú)線傳感器網(wǎng)絡(luò)是將無(wú)線通信技術(shù)、微型機(jī)電系統(tǒng)等眾多技術(shù)結(jié)合的信息傳輸與處理技術(shù)。無(wú)線傳感器網(wǎng)絡(luò)利用傳感器節(jié)點(diǎn)所采集信息以及不同節(jié)點(diǎn)之間信息的交互實(shí)現(xiàn)感知對(duì)象信息的處理[1]。無(wú)線傳感器網(wǎng)絡(luò)包含眾多由無(wú)線通信模塊、傳感器模塊組成的微型傳感器節(jié)點(diǎn)。
依據(jù)節(jié)點(diǎn)位置的確定情況,可將無(wú)線傳感器網(wǎng)絡(luò)劃分為人工部署以及導(dǎo)航設(shè)備部署的節(jié)點(diǎn)。相比于其它的未定位節(jié)點(diǎn),錨節(jié)點(diǎn)的部署成本明顯高于其它節(jié)點(diǎn)。無(wú)線傳感器網(wǎng)絡(luò)中存在利用飛機(jī)等移動(dòng)設(shè)備隨機(jī)設(shè)置的不具備具體定位信息的節(jié)點(diǎn),此類節(jié)點(diǎn)部署成本較低[2],但由于并不清楚其具體坐標(biāo),因此應(yīng)用性較差。利用精準(zhǔn)的定位精度提升無(wú)線傳感器網(wǎng)絡(luò)中全部節(jié)點(diǎn)的應(yīng)用性能。測(cè)距定位具有定位成本過高的缺陷,測(cè)距定位算法需與微波發(fā)射硬件設(shè)備結(jié)合,雖提升了定位精度,但成本過高[3]。DV-Hop定位算法無(wú)需將節(jié)點(diǎn)硬件設(shè)施加入定位過程中,利用不同節(jié)點(diǎn)間跳數(shù)與節(jié)點(diǎn)坐標(biāo)信息實(shí)現(xiàn)節(jié)點(diǎn)定位[4],該定位算法采用估算方法獲取最終定位結(jié)果,因此定位精度較低。
數(shù)字式圖書館中包含海量文獻(xiàn)數(shù)據(jù),通常將傳感器節(jié)點(diǎn)設(shè)置于數(shù)字圖書館中,利用傳感器節(jié)點(diǎn)實(shí)現(xiàn)文獻(xiàn)數(shù)據(jù)的有效采集。目前各學(xué)科領(lǐng)域中包含的數(shù)據(jù)量呈現(xiàn)與日俱增趨勢(shì)[5],海量文獻(xiàn)數(shù)據(jù)應(yīng)用于網(wǎng)絡(luò)中,為人們應(yīng)用增加了難度,人們利用無(wú)線傳感器網(wǎng)絡(luò)選取所需文獻(xiàn)數(shù)據(jù)具有較高難度,利用DV-Hop定位算法從海量文獻(xiàn)數(shù)據(jù)中定位所需文獻(xiàn)數(shù)據(jù),提升海量文獻(xiàn)數(shù)據(jù)的應(yīng)用性能。文獻(xiàn)數(shù)據(jù)具有較高相關(guān)性,選取DV-Hop定位算法應(yīng)用于海量文獻(xiàn)數(shù)據(jù)定位中,提升海量文獻(xiàn)數(shù)據(jù)的應(yīng)用性。
目前針對(duì)無(wú)線傳感器網(wǎng)絡(luò)定位的研究較多,孫博文以及錢開國(guó)等人分別利用校正因子以及可靠信標(biāo)實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)定位[6,7],但是這兩種方法無(wú)法獲取錨節(jié)點(diǎn)與待定位節(jié)點(diǎn)之間的最小跳數(shù),導(dǎo)致定位偏差較大,且可應(yīng)用的網(wǎng)絡(luò)環(huán)境單一。為此,面對(duì)海量文獻(xiàn)數(shù)據(jù),設(shè)計(jì)新的無(wú)線傳感DV-Hop定位算法,提升海量文獻(xiàn)數(shù)據(jù)于無(wú)線傳感器網(wǎng)絡(luò)中的精準(zhǔn)定位性能。通過實(shí)驗(yàn)驗(yàn)證該方法具有較高的文獻(xiàn)數(shù)據(jù)定位有效性,可應(yīng)用于海量文獻(xiàn)數(shù)據(jù)的定位應(yīng)用中。
DV-Hop定位算法選取最大似然估計(jì)法利用節(jié)點(diǎn)間距獲取所需節(jié)點(diǎn)的具體位置信息。DV-Hop定位算法運(yùn)算具體過程如下:
1)求解最小跳數(shù)
無(wú)線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)接收信息包時(shí),在初始跳數(shù)0基礎(chǔ)上加1,將位置信息以及跳數(shù)信息存儲(chǔ)于位置信息表內(nèi)[8]。通過位置信息表獲取該節(jié)點(diǎn)至錨節(jié)點(diǎn)的最短跳數(shù)。
2)獲取每跳平均距離
無(wú)線傳感器網(wǎng)絡(luò)中的錨節(jié)點(diǎn)傳送海量文獻(xiàn)數(shù)據(jù)時(shí),接收跳數(shù)信息以及位置信息時(shí),計(jì)算平均每跳距離公式如下
(1)
式(1)中,gj表示節(jié)點(diǎn)j的跳數(shù),(xi,yi)與(xj,yj)均表示無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)。
位置節(jié)點(diǎn)獲取HopSize后,將所獲取的HopSize與最小跳數(shù)值相乘,所獲取間距選取極大似然估計(jì)法獲取未知節(jié)點(diǎn)定位結(jié)果。
3)最大似然估計(jì)法
設(shè)無(wú)線傳感器網(wǎng)絡(luò)中存在節(jié)點(diǎn)數(shù)量為n,全部節(jié)點(diǎn)的原始坐標(biāo)為(x1,y1)…(xn,yn),用(x,y)表示其中所包含節(jié)點(diǎn)D的坐標(biāo),其余節(jié)點(diǎn)與該節(jié)點(diǎn)之間的間距用d1,d2,…,dn表示。
各節(jié)點(diǎn)間距需滿足以下公式
(2)
求解式(2),可得表達(dá)式如下
(3)
利用線性方程表示式(3),將式(3)轉(zhuǎn)化為Ax=b,其中
(4)
(5)
(6)
無(wú)線傳感器網(wǎng)絡(luò)定位海量文獻(xiàn)數(shù)據(jù)過程中容易形成誤差[9],將誤差項(xiàng)加入其中,獲取模型表達(dá)式如下
Ax+N=b
(7)
式(7)中,N為誤差向量,其維度為n-1。
將式(7)的最大似然估計(jì)選取最小二乘法進(jìn)行。此時(shí)需令x符合N=b-Ax結(jié)果為最小,獲取x估計(jì)值表達(dá)式如下
(8)
式(8)中,Q(x)表示x的估計(jì)值。求導(dǎo)式(8)中的Q(x),令Q(x)輸出結(jié)果為0,獲取無(wú)線傳感器網(wǎng)絡(luò)中未知節(jié)點(diǎn)的最小二乘位置結(jié)果表達(dá)式如下
=(ATA)-1ATb
(9)
DV-Hop定位算法利用未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的間距實(shí)現(xiàn)節(jié)點(diǎn)定位[10],該算法利用網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)獲取距離信息。通過不同節(jié)點(diǎn)間距提升節(jié)點(diǎn)定位精度。
2.2.1 修正錨節(jié)點(diǎn)間跳數(shù)
設(shè)置無(wú)線傳感器網(wǎng)絡(luò)的通信半徑為兩個(gè)錨節(jié)點(diǎn)間距,當(dāng)無(wú)線傳感器網(wǎng)絡(luò)跳數(shù)與通信半徑存在較大差距時(shí),用于定位海量文獻(xiàn)數(shù)據(jù)的錨節(jié)點(diǎn)間距存在與實(shí)際距離偏離情況,此時(shí)海量文獻(xiàn)數(shù)據(jù)定位節(jié)點(diǎn)容易存在較大的誤差。
無(wú)線傳感器網(wǎng)絡(luò)中錨節(jié)點(diǎn)間的理想跳數(shù)表達(dá)式如下:
(10)
式(10)中,R表示節(jié)點(diǎn)通信半徑,dij表示錨節(jié)點(diǎn)間距。
用γij表示錨節(jié)點(diǎn)偏離因子,其表達(dá)式如下
γij=(gij-Gij)/gij
(11)
式(11)中,Gij表示理想跳數(shù),gij表示實(shí)際跳數(shù)。
偏離因子越小,表示錨節(jié)點(diǎn)運(yùn)行過程中與理想跳數(shù)偏離較小。
設(shè)置跳數(shù)修正系數(shù)公式如下
(12)
式(12)中,n表示正整數(shù)。
將0.6倍通信距離誤差加入計(jì)算中,修正通信半徑跳數(shù)。
選取修正系數(shù)修正錨節(jié)點(diǎn)跳數(shù),獲取完成修正后跳數(shù)表達(dá)式如下
g′ij=βij·gij-0.6
(13)
2.2.2 修正未知節(jié)點(diǎn)跳數(shù)
用g′ui表示待定位文獻(xiàn)數(shù)據(jù)節(jié)點(diǎn)u與其相近的錨節(jié)點(diǎn)i的修正后的跳數(shù),其表達(dá)式如下
(14)
式(14)中,βij與n分別表示修正系數(shù)以及錨節(jié)點(diǎn)總數(shù)量,gui表示錨節(jié)點(diǎn)i與未知節(jié)點(diǎn)u的實(shí)際跳數(shù)。
用g′uj表示海量文獻(xiàn)數(shù)據(jù)無(wú)線傳感未知節(jié)點(diǎn)u與海量文獻(xiàn)數(shù)據(jù)無(wú)線傳感錨節(jié)點(diǎn)j的跳數(shù),其表達(dá)式如下
g′uj=βij·guj-0.5
(15)
式(15)中,guj與βij分別表示實(shí)際跳數(shù)以及修正系數(shù)。通過式(15)可知,將修正因子加入待定位的未知節(jié)點(diǎn)與錨節(jié)點(diǎn)跳數(shù)修正中,考慮全部錨節(jié)點(diǎn)跳數(shù)信息。定位海量文獻(xiàn)數(shù)據(jù)時(shí),可以更加直接地體現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)的整體特性。
2.2.3 修正未知節(jié)點(diǎn)平均跳距
當(dāng)數(shù)量為n的錨節(jié)點(diǎn)以平均跳距傳送至未知節(jié)點(diǎn)u時(shí),將權(quán)值wi加入平均跳距運(yùn)算中,可得權(quán)值計(jì)算公式如下
(16)
式(16)中,hopi表示完成修正后錨節(jié)點(diǎn)i至未知節(jié)點(diǎn)u的跳數(shù)。
利用式(16)對(duì)各節(jié)點(diǎn)跳數(shù)實(shí)施歸一化加權(quán)處理,保障未知的待定位節(jié)點(diǎn)所獲取全部錨節(jié)點(diǎn)間距權(quán)值總和等于1。依據(jù)未知節(jié)點(diǎn)相應(yīng)各跳距離值HopSize以及錨節(jié)點(diǎn)各跳間距加權(quán)值,獲取待定位海量文獻(xiàn)數(shù)據(jù)未知節(jié)點(diǎn)的平均跳距公式如下:
(17)
待定位海量文獻(xiàn)數(shù)據(jù)的未知節(jié)點(diǎn)利用加權(quán)處理時(shí)充分考慮錨節(jié)點(diǎn)跳距情況,令平均各跳間距與無(wú)線傳感器網(wǎng)絡(luò)實(shí)際各跳距離更加接近,降低海量文獻(xiàn)數(shù)據(jù)在無(wú)線傳感器網(wǎng)絡(luò)中的定位誤差。
為驗(yàn)證所研究算法定位無(wú)線傳感器網(wǎng)絡(luò)中海量文獻(xiàn)數(shù)據(jù)有效性,選取Matlab R2019b軟件建立無(wú)線傳感器網(wǎng)絡(luò)環(huán)境,無(wú)線傳感器網(wǎng)絡(luò)任務(wù)區(qū)域大小為800m×800m,設(shè)置傳感器節(jié)點(diǎn)共500個(gè)。采用該無(wú)線傳感器網(wǎng)絡(luò)實(shí)現(xiàn)海量文獻(xiàn)數(shù)據(jù)傳輸。實(shí)驗(yàn)的傳感器節(jié)點(diǎn)分別以均勻隨機(jī)分布、非均勻分布以及包含覆蓋洞三種場(chǎng)景設(shè)置。實(shí)驗(yàn)過程中設(shè)置不同錨節(jié)點(diǎn)覆蓋率以及錨節(jié)點(diǎn)通信半徑,統(tǒng)計(jì)不同錨節(jié)點(diǎn)覆蓋率以及通信半徑對(duì)文獻(xiàn)數(shù)據(jù)定位的影響。
利用海量文獻(xiàn)數(shù)據(jù)定位精度衡量無(wú)線傳感器網(wǎng)絡(luò)中海量文獻(xiàn)數(shù)據(jù)的定位性能,定位精度計(jì)算公式如下
(18)
式(18)中,N與R分別表示無(wú)線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量以及節(jié)點(diǎn)通信半徑,(x0i,y0i)與(xi,yi)分別表示待定位文獻(xiàn)數(shù)據(jù)節(jié)點(diǎn)的實(shí)際坐標(biāo)以及本文算法定位坐標(biāo)。
統(tǒng)計(jì)海量文獻(xiàn)數(shù)據(jù)無(wú)線傳感節(jié)點(diǎn)通信半徑存在差異時(shí)的最佳修正系數(shù),統(tǒng)計(jì)結(jié)果如表1所示。
表1 修正系數(shù)統(tǒng)計(jì)結(jié)果
表1實(shí)驗(yàn)結(jié)果可以看出,錨節(jié)點(diǎn)覆蓋率為5%-50%時(shí),節(jié)點(diǎn)通信半徑為15m~45m時(shí),最佳修正系數(shù)均處于1.96~2.09之間。不同節(jié)點(diǎn)通信半徑時(shí),最佳修正系數(shù)均伴隨錨節(jié)點(diǎn)覆蓋率的提升而有所降低。差異節(jié)點(diǎn)通信半徑以及錨節(jié)點(diǎn)覆蓋率情況下,采用本文算法定位無(wú)線傳感器網(wǎng)絡(luò)中的海量文獻(xiàn)數(shù)據(jù)時(shí),最佳修正系數(shù)處于1.95~2.10區(qū)間。
設(shè)置無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)為均勻隨機(jī)分布情況,統(tǒng)計(jì)修正系數(shù)β分別為1.95、2.00、2.05、2.10時(shí)的定位精度,統(tǒng)計(jì)結(jié)果如圖1所示。
圖1 修正系數(shù)確定結(jié)果
圖1實(shí)驗(yàn)結(jié)果可以看出,不同修正系數(shù)時(shí),采用本文算法定位無(wú)線傳感器網(wǎng)絡(luò)中的文獻(xiàn)數(shù)據(jù),定位精度均伴隨錨節(jié)點(diǎn)覆蓋率的增加而有所降低。修正系數(shù)為2.05時(shí),本文算法在不同錨節(jié)點(diǎn)覆蓋率時(shí)的文獻(xiàn)數(shù)據(jù)定位精度均為最高;修正系數(shù)為2.10時(shí),本文算法的文獻(xiàn)數(shù)據(jù)定位精度為0.91~0.67之間;修正系數(shù)為1.95以及2.10時(shí),本文算法的文獻(xiàn)數(shù)據(jù)定位精度均低于修正系數(shù)為2.05時(shí)。綜合以上實(shí)驗(yàn)結(jié)果設(shè)置采用本文算法定位無(wú)線傳感器網(wǎng)絡(luò)文獻(xiàn)數(shù)據(jù)的修正系數(shù)結(jié)果為2.05。
設(shè)置節(jié)點(diǎn)為均勻隨機(jī)分布情況,海量文獻(xiàn)數(shù)據(jù)定位過程中的修正系數(shù)設(shè)置為2.05。統(tǒng)計(jì)不同錨節(jié)點(diǎn)覆蓋率時(shí),節(jié)點(diǎn)通信半徑分別為15m、25m、35m、45m時(shí)的海量文獻(xiàn)數(shù)據(jù)定位精度,統(tǒng)計(jì)結(jié)果如圖2所示。
圖2 不同錨節(jié)點(diǎn)覆蓋率時(shí)的定位精度
分析圖2實(shí)驗(yàn)結(jié)果,節(jié)點(diǎn)通信半徑為15m時(shí),錨節(jié)點(diǎn)覆蓋率為5%時(shí),采用本文算法定位無(wú)線傳感器網(wǎng)絡(luò)中的海量文獻(xiàn)數(shù)據(jù),定位精度高達(dá)99%。采用本文算法定位無(wú)線傳感器網(wǎng)絡(luò)中的海量文獻(xiàn)數(shù)據(jù),節(jié)點(diǎn)通信半徑越大時(shí),定位精度越低。不同節(jié)點(diǎn)通信半徑時(shí)的定位精度均伴隨錨節(jié)點(diǎn)覆蓋率的提升而有所降低。圖2實(shí)驗(yàn)結(jié)果表明,為了保障文獻(xiàn)數(shù)據(jù)定位精度,文獻(xiàn)數(shù)據(jù)定位實(shí)際應(yīng)用過程中,應(yīng)設(shè)置無(wú)線傳感器網(wǎng)絡(luò)中定位海量文獻(xiàn)數(shù)據(jù)時(shí)通信半徑較小,提升所研究算法的應(yīng)用性能。
統(tǒng)計(jì)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)均勻隨機(jī)分布、非均勻分布以及包含覆蓋洞三種場(chǎng)景時(shí)的文獻(xiàn)數(shù)據(jù)定位精度,統(tǒng)計(jì)結(jié)果如圖3所示。
圖3 不同場(chǎng)景定位精度對(duì)比
分析圖3實(shí)驗(yàn)結(jié)果可以看出,相比于節(jié)點(diǎn)非均勻分布情況以及節(jié)點(diǎn)布置過程中包含覆蓋洞情況,節(jié)點(diǎn)均勻分布時(shí)無(wú)線傳感器網(wǎng)絡(luò)海量文獻(xiàn)數(shù)據(jù)定位精度更加優(yōu)越。不同節(jié)點(diǎn)布置場(chǎng)景時(shí),本文算法定位無(wú)線傳感器網(wǎng)絡(luò)海量文獻(xiàn)數(shù)據(jù)的定位精度均高于0.94。不同節(jié)點(diǎn)布置場(chǎng)景下,采用本文算法定位文獻(xiàn)數(shù)據(jù)均伴隨錨節(jié)點(diǎn)覆蓋率的提升而有所下降,定位無(wú)線傳感器網(wǎng)絡(luò)中包含的海量文獻(xiàn)數(shù)據(jù)時(shí),可通過選取合適的錨節(jié)點(diǎn)提升海量文獻(xiàn)數(shù)據(jù)定位精度。
針對(duì)采用DV-Hop定位算法實(shí)現(xiàn)無(wú)線傳感器網(wǎng)絡(luò)海量文獻(xiàn)數(shù)據(jù)定位時(shí),所具有的距離模糊、距離估計(jì)精準(zhǔn)性較差造成定位精度低的缺陷,本研究通過算法的改進(jìn)降低定位誤差。通過修正節(jié)點(diǎn)間的跳數(shù),令無(wú)線傳感器網(wǎng)絡(luò)傳輸文獻(xiàn)數(shù)據(jù)時(shí)的跳數(shù)與理想跳數(shù)更加接近。通過實(shí)驗(yàn)驗(yàn)證,所研究算法可有效定位文獻(xiàn)數(shù)據(jù),在節(jié)點(diǎn)為均勻分布、非均勻分布以及無(wú)線傳感器網(wǎng)絡(luò)中包含覆蓋洞時(shí),均具有較高的文獻(xiàn)數(shù)據(jù)定位水平,不同節(jié)點(diǎn)布置場(chǎng)景時(shí),采用該定位算法定位無(wú)線傳感器網(wǎng)絡(luò)海量文獻(xiàn)數(shù)據(jù)的定位精度均高于0.94。所研究算法具有極高的定位精度,將該算法應(yīng)用于海量文獻(xiàn)中,同樣具有較高的應(yīng)用性。可有效提升海量文獻(xiàn)數(shù)據(jù)的實(shí)際應(yīng)用性能,避免海量文獻(xiàn)數(shù)據(jù)存在利用率較差的缺陷。