亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于狼群優(yōu)化的改進(jìn)DV_Hop定位算法

        2021-08-06 05:41:12黃達(dá)勝
        關(guān)鍵詞:狼群適應(yīng)度距離

        宋 玲,黃達(dá)勝

        (廣西大學(xué)計(jì)算機(jī)與電子信息學(xué)院,廣西 南寧 530004)

        1 引言

        無(wú)線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Network)研究涉及廣泛,是一種獲取、處理信息的全新技術(shù),廣泛應(yīng)用在國(guó)防、醫(yī)療、環(huán)境、目標(biāo)跟蹤和入侵檢測(cè)等領(lǐng)域。在無(wú)線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)所監(jiān)測(cè)到的信息,如壓力、溫度、濕度等,如果沒(méi)有相對(duì)應(yīng)的位置信息是毫無(wú)研究?jī)r(jià)值的,因此,位置信息對(duì)監(jiān)測(cè)活動(dòng)至關(guān)重要[1],節(jié)點(diǎn)定位也成為WSN的研究熱點(diǎn)之一。

        通常情況下,無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位技術(shù)可以分為2類:基于測(cè)距的定位技術(shù)和無(wú)需測(cè)距的定位技術(shù)[2]。在WSN節(jié)點(diǎn)定位中,最常用的是基于無(wú)需測(cè)距的定位方法,而DV_Hop(Distance Vector Hop)算法又是無(wú)需測(cè)距的方法中最常用的算法之一,其在WSN節(jié)點(diǎn)定位中的地位不言而喻。因?yàn)橐讓?shí)現(xiàn)、花費(fèi)低,而且可以滿足大多數(shù)應(yīng)用對(duì)于節(jié)點(diǎn)定位的要求,所以DV_Hop算法在無(wú)需測(cè)距的方法中得到了廣泛使用[3],但其也有一些不足:在實(shí)際應(yīng)用中,傳感器節(jié)點(diǎn)是隨機(jī)分布的,所以網(wǎng)絡(luò)節(jié)點(diǎn)平均每跳距離與實(shí)際的距離是有偏差的;傳感器節(jié)點(diǎn)的密度也會(huì)影響定位的精度;在最后的定位計(jì)算階段,最小二乘法雖然計(jì)算簡(jiǎn)單,但是對(duì)誤差比較敏感[4]。

        由于參數(shù)簡(jiǎn)單,計(jì)算方便,在高密度的節(jié)點(diǎn)分布情況下有很好的定位準(zhǔn)確度,所以從提出至今,DV_Hop算法都是無(wú)線傳感器網(wǎng)絡(luò)定位中最常采用的方法之一。但是,又因?yàn)榈?階段平均跳數(shù)產(chǎn)生的距離誤差和第3階段的計(jì)算誤差,使得國(guó)內(nèi)外學(xué)者一直在對(duì)其進(jìn)行研究與改進(jìn)。

        DV_Hop算法是Dragos等人[5]于2003年提出的,是一種利用距離矢量路由和GPS定位思想提出的定位算法。文獻(xiàn)[6]將RSSI(Received Signal Strength Indicator)與DV_Hop算法相結(jié)合,改進(jìn)了DV_Hop算法,提高了定位的精度,但其只優(yōu)化了第1跳的距離,精度上并未提高許多。文獻(xiàn)[7]在DV_Hop算法中引入了閾值M,利用M跳數(shù)內(nèi)錨節(jié)點(diǎn)的加權(quán)平均跳距計(jì)算未知節(jié)點(diǎn)的平均跳距,從而提高了定位精度。但是,有時(shí)遠(yuǎn)的錨節(jié)點(diǎn)距離更接近實(shí)際距離,閾值將這些節(jié)點(diǎn)篩選掉了,所以精度并未得到很大提高。文獻(xiàn)[8]利用錨節(jié)點(diǎn)的移動(dòng)形成多個(gè)虛擬錨節(jié)點(diǎn),有效減少了錨節(jié)點(diǎn)的使用數(shù)量;并在原算法基礎(chǔ)上修正平均跳距,使其更接近真實(shí)值。但是,這種方法需要提前按照規(guī)定布置錨節(jié)點(diǎn),且節(jié)點(diǎn)間的路徑是事先規(guī)劃好的,對(duì)能耗與覆蓋問(wèn)題還欠考慮。文獻(xiàn)[9]將人工魚群算法引入DV_Hop算法,提高了定位精度,然而將魚群算法引入節(jié)點(diǎn)計(jì)算增加了復(fù)雜度,對(duì)能耗有一定的要求。文獻(xiàn)[10]運(yùn)用加權(quán)質(zhì)心方法改進(jìn)DV_Hop算法并將其與GSO(Glowworm Swarm Optimization)算法相結(jié)合,提高了定位精度,但是僅采用經(jīng)典粒子群優(yōu)化PSO(Particle Swarm Optimization)算法,易陷入局部最優(yōu)。文獻(xiàn)[11]在傳統(tǒng)DV-Hop算法中,融合人工蜂群算法和差分進(jìn)化算法,提出了一種HDV-Hop算法。該算法優(yōu)化了搜索過(guò)程,提高了定位精度,實(shí)現(xiàn)了對(duì)未知節(jié)點(diǎn)的定位,收斂速度有所提高,但仍有待進(jìn)一步改進(jìn)。文獻(xiàn)[12]通過(guò)將蟻群算法和粒子群優(yōu)化算法相結(jié)合來(lái)改進(jìn)DV-Hop算法,相比于基于遺傳算法優(yōu)化的節(jié)點(diǎn)定位,定位精度又有所提高,但在未知節(jié)點(diǎn)數(shù)量超過(guò)200時(shí),改進(jìn)的定位精度和原始的定位精度相差不大,有時(shí)甚至更差,這一點(diǎn)有待改進(jìn)。

        狼群算法WCA(Wolf Colony Algorithm)是近些年來(lái)新出現(xiàn)的算法,與粒子群優(yōu)化算法和遺傳算法相比,它具有更高的尋優(yōu)精度且參數(shù)較少,將其用于節(jié)點(diǎn)位置的計(jì)算階段會(huì)得到更好的定位效果。但是,因?yàn)樵祭侨核惴ㄒ紫萑刖植孔顑?yōu),所以將模擬退火與混沌映射相結(jié)合對(duì)其進(jìn)行改進(jìn)。

        為滿足對(duì)定位精度越來(lái)越高的要求,本文提出一種基于改進(jìn)狼群算法的DV_Hop算法IWCADV_Hop(Improved Wolf Colony Algorithm DV_Hop),以提升定位精度。與錨節(jié)點(diǎn)間跳數(shù)為1的節(jié)點(diǎn)距離直接利用RSSI計(jì)算,這樣能降低部分節(jié)點(diǎn)的距離誤差,在計(jì)算節(jié)點(diǎn)位置階段用改進(jìn)的狼群算法代替原來(lái)的最小二乘法,進(jìn)一步減小了計(jì)算誤差。

        2 DV_Hop算法與狼群算法

        2.1 DV_Hop算法

        DV_Hop 算法的主要思想是用未知節(jié)點(diǎn)到錨節(jié)點(diǎn)的最小跳數(shù)乘以距離未知節(jié)點(diǎn)最近的錨節(jié)點(diǎn)的平均每跳距離,之后再計(jì)算未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離,進(jìn)而計(jì)算未知節(jié)點(diǎn)的位置,主要分為以下3個(gè)階段[4]:

        第1階段:節(jié)點(diǎn)獲得與錨節(jié)點(diǎn)的最小跳數(shù)。錨節(jié)點(diǎn)向所有鄰居節(jié)點(diǎn)發(fā)送跳數(shù)信息,所有節(jié)點(diǎn)接受到信息之后再繼續(xù)轉(zhuǎn)發(fā)給自身的鄰居節(jié)點(diǎn),并使跳數(shù)加1,直到所有節(jié)點(diǎn)都接收到所有錨節(jié)點(diǎn)發(fā)送的跳數(shù)信息,并取最小的跳數(shù)。

        第2階段:計(jì)算錨節(jié)點(diǎn)與未知節(jié)點(diǎn)的距離。所有錨節(jié)點(diǎn)在第1階段中獲取到與其他錨節(jié)點(diǎn)的最小跳數(shù),然后通過(guò)自身的定位功能可得知相互之間的距離,通過(guò)跳數(shù)和距離計(jì)算出平均每跳距離。計(jì)算公式如式(1)所示:

        (1)

        其中,Hope為平均跳距,(xai,yai)為第i個(gè)錨節(jié)點(diǎn)的坐標(biāo),(xaj,yaj)為第j個(gè)錨節(jié)點(diǎn)的坐標(biāo),hij為第i個(gè)錨節(jié)點(diǎn)到第j個(gè)錨節(jié)點(diǎn)的最小跳數(shù)。

        第3階段:計(jì)算未知節(jié)點(diǎn)的位置。所有未知節(jié)點(diǎn)在第1階段中接收到了所有錨節(jié)點(diǎn)到自身的最小跳數(shù),通過(guò)第2階段的平均每跳距離可計(jì)算出自身與所有錨節(jié)點(diǎn)的距離,通過(guò)距離可計(jì)算出未知節(jié)點(diǎn)的位置。距離計(jì)算公式如式(2)所示:

        (2)

        根據(jù)每個(gè)錨節(jié)點(diǎn)的坐標(biāo)和與錨節(jié)點(diǎn)的距離,未知節(jié)點(diǎn)的坐標(biāo)可由解方程(3)得出。

        (3)

        其中,(xa1,ya1)為第1個(gè)錨節(jié)點(diǎn)的位置;(xui,yui)為第i個(gè)未知節(jié)點(diǎn)的位置;(xaj,yaj)為第j個(gè)錨節(jié)點(diǎn)的位置,1≤j≤M,M是錨節(jié)點(diǎn)個(gè)數(shù);dij為第i個(gè)未知節(jié)點(diǎn)到第j個(gè)錨節(jié)點(diǎn)的距離。

        2.2 狼群算法

        狼群算法(WCA)通過(guò)模擬自然界中狼群的行為來(lái)對(duì)目標(biāo)函數(shù)進(jìn)行尋優(yōu),求出最優(yōu)解。WCA具有并行性,能同時(shí)對(duì)多個(gè)點(diǎn)進(jìn)行尋優(yōu),與其他智能群算法相比,具有更高的尋優(yōu)精度和更好的魯棒性。狼群算法分為探狼游走、頭狼召喚和猛狼圍攻3種行為,以及勝者為王、優(yōu)勝劣汰2種規(guī)則。狼群中一共包含3種狼:頭狼、探狼和猛狼[13]。頭狼:適應(yīng)度函數(shù)最優(yōu)的狼,每次迭代對(duì)其他猛狼進(jìn)行召喚,使猛狼向其移動(dòng)。探狼:除頭狼外適應(yīng)度函數(shù)最優(yōu)的B匹狼,每次迭代過(guò)程中向自身h個(gè)方向進(jìn)行游走,并向函數(shù)值優(yōu)于當(dāng)前位置的方向移動(dòng)。猛狼,除頭狼與探狼外的所有狼,每次迭代受頭狼召喚,朝著頭狼奔走,當(dāng)與頭狼距離小于圍攻距離時(shí)進(jìn)行猛狼圍攻[14]。

        狼群算法的主要步驟如下所示:

        步驟1隨機(jī)生成N匹人工狼。

        步驟2計(jì)算每匹狼的目標(biāo)函數(shù)值,最優(yōu)的作為頭狼,除頭狼外最優(yōu)的B匹狼作為探狼,剩下的作為猛狼,跳到步驟3。當(dāng)頭狼函數(shù)值達(dá)到要求或者滿足最大迭代次數(shù),跳到步驟7。

        步驟3探狼游走。每次迭代,每匹探狼朝自身h個(gè)方向游走,選出函數(shù)值最大的方向所對(duì)應(yīng)的函數(shù)值,如果函數(shù)值優(yōu)于當(dāng)前函數(shù)值,則探狼朝該方向前進(jìn),所以第i匹探狼的位置如式(4)所示:

        (4)

        步驟4頭狼召喚。每次迭代,頭狼對(duì)所有猛狼進(jìn)行召喚,每匹猛狼朝頭狼靠近,第i匹猛狼第t次迭代的位置計(jì)算如式(5)所示:

        (5)

        奔襲過(guò)程中,如果猛狼的函數(shù)值優(yōu)于頭狼的函數(shù)值,則該猛狼晉升為頭狼,并在此后的迭代過(guò)程中進(jìn)行召喚。

        步驟5猛狼圍攻。若猛狼與頭狼的距離小于圍攻距離,猛狼進(jìn)入圍攻階段,設(shè)頭狼位置為獵物所在位置,對(duì)獵物進(jìn)行圍攻,第i匹猛狼第t次迭代圍攻的位置由式(6)計(jì)算得出。

        (6)

        步驟6依據(jù)“勝者為王”規(guī)則,按照每匹狼的適應(yīng)度,即所求函數(shù)在每匹狼所在位置的函數(shù)值重新選出頭狼、探狼和猛狼;依據(jù)“優(yōu)勝劣汰”規(guī)則淘汰掉函數(shù)值最差的c匹狼。跳到步驟2。

        步驟7輸出頭狼的位置。

        3 IWCADV_Hop算法設(shè)計(jì)

        3.1 DV-Hop算法的不足及改進(jìn)思路

        DV_Hop產(chǎn)生誤差的原因主要有2點(diǎn):(1)跳數(shù)帶來(lái)的誤差,這是因?yàn)楣?jié)點(diǎn)分布不均勻造成的;(2)計(jì)算帶來(lái)的誤差,因?yàn)楫?dāng)方程數(shù)量過(guò)多時(shí),最小二乘法的計(jì)算易使誤差加大。針對(duì)這2點(diǎn)對(duì)DV_Hop算法進(jìn)行改進(jìn)。首先對(duì)于與錨節(jié)點(diǎn)只有1跳的未知節(jié)點(diǎn),直接使用RSSI來(lái)計(jì)算它與錨節(jié)點(diǎn)的距離,這樣能使一部分未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離誤差減小,從而減小定位誤差。另一方面,在計(jì)算節(jié)點(diǎn)位置時(shí),將模擬退火和混沌映射與WCA結(jié)合,以提高WCA跳出局部最優(yōu)的能力,再利用狼群尋優(yōu)精度高的優(yōu)勢(shì),用優(yōu)化后的狼群算法替代最小二乘法,從而減小因最小二乘法計(jì)算帶來(lái)的誤差。

        3.2 RSSI測(cè)距

        對(duì)于與錨節(jié)點(diǎn)跳距為1的未知節(jié)點(diǎn),計(jì)算它和錨節(jié)點(diǎn)之間的距離時(shí),可以采用RSSI的測(cè)距方法,這樣會(huì)使得一部分節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離更加準(zhǔn)確[6]。RSSI測(cè)距如式(7)所示:

        (7)

        其中,dist為2節(jié)點(diǎn)間的距離;Pt(dist)是在經(jīng)過(guò)距離dist后接收到的信號(hào)強(qiáng)度,即接收到的RSSI值;Pt(dist0)是在經(jīng)過(guò)距離1 m后接收到的信號(hào)強(qiáng)度;dist0為單位距離,X0為噪聲變量,服從均值為零的高斯分布,取值在4 ~ 10;δ是路徑損耗衰減因子,取值在2~5。

        3.3 狼群算法的優(yōu)化

        3.3.1 狼群算法的不足

        狼群算法與粒子群優(yōu)化算法、遺傳算法等相比,求解精度更高,收斂速度更快,控制參數(shù)更少。但是,探狼的游走行為采取的是貪婪式游走策略,始終朝著適應(yīng)度函數(shù)更優(yōu)的位置游走。 當(dāng)探狼在游走范圍內(nèi)沒(méi)有更優(yōu)的位置時(shí),容易陷入局部最優(yōu)位置,從而無(wú)法繼續(xù)游走,降低了算法全局搜索能力[15]。本文將模擬退火算法和混沌映射算法與狼群算法結(jié)合,使狼群算法具有跳出局部最優(yōu)的機(jī)會(huì),提高算法的魯棒性。

        3.3.2 基于模擬退火與混沌映射優(yōu)化狼群算法

        (1)IWCA算法步驟。

        步驟1引用模擬退火算法的思想,給定一個(gè)初始概率P0,概率P隨著迭代次數(shù)的增加而減小[16]。當(dāng)探狼嘗試k次游走但位置均未發(fā)生變化時(shí),認(rèn)為探狼陷入了局部最優(yōu),則根據(jù)概率P朝目標(biāo)函數(shù)值較差的方向游走,P的變化公式如式(8)所示。

        (8)

        其中,t是當(dāng)前迭代次數(shù),T是最大迭代次數(shù),P0為初始概率,Pl為最小概率。

        步驟2探狼進(jìn)行目標(biāo)函數(shù)值較差的游走時(shí),游走的方式為混沌映射。將探狼X=(x1,x2,…,xn)(xi是探狼第i維的位置)的每一維度的位置映射到混沌區(qū)間Y=(y1,y2,…,yn)[17]上(yi是探狼第i維映射到混沌區(qū)間上的位置),映射公式如式(9)所示,混沌映射的模型如式(10)所示:

        (9)

        yt+1=0.9-1.9×|yt|

        (10)

        式(9)中,UB、LB為探狼在第i維參數(shù)上的取值上下界,xij為第i匹探狼在第j維度的位置,yij為第i匹探狼映射到混沌區(qū)間上第j維度的位置。式(10)中,yt+1表示第t+1次迭代時(shí)的混沌變量值,t=0,1,…,m。

        將混沌變量Y=(y1,y2,…,yn)根據(jù)混沌模型迭代m次,迭代公式如式(10)所示,并將每次迭代后的混沌變量反映射回探狼游走區(qū)域中,反映射公式如式(11)所示,探狼在這m次反映射中,找到最優(yōu)的位置并進(jìn)行游走。

        xij=LB+yij(UB-LB)

        (11)

        其中,xij為第i匹探狼經(jīng)過(guò)反映射回到第j維度的位置,yij為第i匹探狼在混沌區(qū)間上第j維度的位置。

        步驟3在猛狼圍攻階段,采用灰狼算法GWO(Grey Wolf Optimizer)[18]的奔走方式,這樣具有更高的游走精確度,圍攻公式如式(12)所示:

        (12)

        D1=2×D3×(δ-0.5)

        (13)

        (14)

        (2)IWCA算法復(fù)雜度分析。

        對(duì)于WCA,最大迭代次數(shù)為T,每次迭代中先計(jì)算N匹狼(一共N匹狼)的目標(biāo)函數(shù)值,再對(duì)每一匹狼進(jìn)行游走遍歷,而每匹探狼朝h個(gè)方向嘗試游走,所以WCA的時(shí)間復(fù)雜度為O(T*N*h),因?yàn)?個(gè)變量是同一個(gè)數(shù)量級(jí),所以可化簡(jiǎn)為O(N3)。對(duì)于本文的IWCA,探狼進(jìn)行m次混沌映射與朝h個(gè)方向游走是相互獨(dú)立的,所以IWCA算法的時(shí)間復(fù)雜度為O(T*N*(h+m)),因?yàn)檫@4個(gè)變量是一個(gè)數(shù)量級(jí),故化簡(jiǎn)后的時(shí)間復(fù)雜度為O(N3),即IWCA與WCA算法的時(shí)間復(fù)雜度一致。

        3.4 IWCA仿真實(shí)驗(yàn)與分析

        3.4.1 實(shí)驗(yàn)場(chǎng)景與參數(shù)

        為了測(cè)試基于模擬退火與混沌映射的狼群算法(IWCA)的性能,本文選取了4個(gè)常見(jiàn)的適應(yīng)度函數(shù)進(jìn)行測(cè)試,函數(shù)如表1所示,每個(gè)函數(shù)的最優(yōu)值均為0,對(duì)5種算法進(jìn)行最優(yōu)值和平均值的比較。實(shí)驗(yàn)環(huán)境為:Intel Core i5,內(nèi)存8 GB,Windows 10專業(yè)版64位操作系統(tǒng),Matlab 2016a。

        Table 1 Test functions

        實(shí)驗(yàn)進(jìn)行50次,并記錄平均值和最優(yōu)值。IWCA的各項(xiàng)參數(shù)如表2所示,WCA算法的參數(shù)依據(jù)文獻(xiàn)[19]選取,DWPA算法的參數(shù)依據(jù)文獻(xiàn)[20]選取,PSO算法的參數(shù)依據(jù)文獻(xiàn)[21]選取,MCGSO算法的參數(shù)依據(jù)文獻(xiàn)[22]選取。4個(gè)測(cè)試函數(shù)中,Sphere為單峰函數(shù),即在定義域內(nèi)只有一個(gè)極值,同時(shí)也是全局最優(yōu)值。其余3個(gè)為多峰函數(shù),即在定義域內(nèi)有多個(gè)極值,其中的某個(gè)極值為全局最優(yōu)值,多峰函數(shù)可以用來(lái)測(cè)試算法應(yīng)對(duì)陷入局部最優(yōu)的能力。

        Table 2 Parameters of IWCA

        若算法尋優(yōu)結(jié)果滿足式(15),則說(shuō)明算法收斂:

        |F-fbest|<10-6

        (15)

        其中,F(xiàn)表示測(cè)試函數(shù)的理論最優(yōu)值,fbest表示算法對(duì)測(cè)試函數(shù)所求的最優(yōu)值。

        3.4.2 IWCA實(shí)驗(yàn)結(jié)果與分析

        各算法對(duì)于適應(yīng)度函數(shù)的尋優(yōu)結(jié)果如表3所示,其中Min表示最小值,Mean表示平均值。

        由表3可看出,PSO對(duì)4個(gè)測(cè)試函數(shù)都不收斂,WCA對(duì)f4不收斂,而其他算法對(duì)于4個(gè)測(cè)試函數(shù)均收斂。在4個(gè)算法中,IWCA收斂效果最好,其次是DWPA,MCGSO雖然最小值的收斂程度也很高,但是平均值與最小值的差距過(guò)大,尋優(yōu)效果不太穩(wěn)定,不能以最小值來(lái)看待。原始的WCA因?yàn)槿菀紫萑刖植孔顑?yōu),所以在f2~f4上表現(xiàn)不太好,特別是對(duì)于f4并未達(dá)到收斂條件。不管是對(duì)于單峰函數(shù)f1還是對(duì)于另外3個(gè)多峰函數(shù),相對(duì)于WCA,IWCA的精度都有很大的提升,且在處理多峰函數(shù)時(shí),IWCA更加不容易陷入局部最優(yōu),所以能得到更好的求解值。這是因?yàn)橐肽M退火和混沌映射的探狼具備了跳出局部最優(yōu)的能力,而圍攻階段引用灰狼算法的奔走方式,使得后期的尋優(yōu)能夠更接近最優(yōu)值。在以上5種智能群算法的比較中,顯然IWCA和DWPA的求解結(jié)果更好,而IWCA相比DWPA算法在處理多峰函數(shù)時(shí),效果要好些,而處理單峰函數(shù)f1時(shí),效果次于DWPA。因?yàn)閷?duì)于單峰函數(shù)而言,局部最小值就是全局最小值,IWCA在跳出局部最小值時(shí)就錯(cuò)過(guò)了全局最小值,所以對(duì)于單峰函數(shù)而言,IWCA尋優(yōu)效果相比DWPA要差一些。

        Table 3 Optimization results of each algorithm

        3.5 IWCADV_Hop算法

        3.5.1 適應(yīng)度函數(shù)

        在DV_Hop算法第2階段結(jié)束后,得到未知節(jié)點(diǎn)與所有錨節(jié)點(diǎn)的距離和所有錨節(jié)點(diǎn)的位置,未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離誤差如式(16)所示:

        (16)

        其中(xui,yui)為第i個(gè)未知節(jié)點(diǎn)的位置,(xaj,yaj)為第j個(gè)錨節(jié)點(diǎn)的位置,dij為第i個(gè)未知節(jié)點(diǎn)到第j個(gè)錨節(jié)點(diǎn)的距離,M是錨節(jié)點(diǎn)總數(shù)。當(dāng)距離誤差最小時(shí),則未知節(jié)點(diǎn)的位置與實(shí)際位置誤差最小,將距離誤差設(shè)為適應(yīng)度函數(shù)。則適應(yīng)度函數(shù)如式(17)所示:

        (17)

        用IWCA來(lái)計(jì)算適應(yīng)度函數(shù),當(dāng)適應(yīng)度函數(shù)取最小值時(shí),未知節(jié)點(diǎn)的定位誤差最小。

        3.5.2 IWCADV_Hop算法步驟

        IWCADV_Hop算法具體步驟如下所示:

        步驟1錨節(jié)點(diǎn)向周圍節(jié)點(diǎn)廣播跳數(shù)信息,所有節(jié)點(diǎn)接收、記錄跳數(shù)信息后轉(zhuǎn)發(fā)給周圍節(jié)點(diǎn),使每個(gè)節(jié)點(diǎn)獲得與每個(gè)錨節(jié)點(diǎn)之間最小跳數(shù)信息。

        步驟2錨節(jié)點(diǎn)之間直接通過(guò)相互間的距離與跳數(shù)計(jì)算出平均跳距,并將平均跳距廣播給所有未知節(jié)點(diǎn)。

        步驟3未知節(jié)點(diǎn)計(jì)算出自身到每個(gè)錨節(jié)點(diǎn)的距離。

        步驟4根據(jù)未知節(jié)點(diǎn)和錨節(jié)點(diǎn)位置,以及未知節(jié)點(diǎn)到所有錨節(jié)點(diǎn)的距離列出適應(yīng)度函數(shù),用IWCA來(lái)對(duì)適應(yīng)度函數(shù)進(jìn)行尋優(yōu)。

        步驟5執(zhí)行狼群算法,當(dāng)滿足尋優(yōu)條件或者達(dá)到最大迭代次數(shù)時(shí)停止尋優(yōu),輸出頭狼的位置,即所求未知節(jié)點(diǎn)的位置。

        步驟6當(dāng)求解完所有未知節(jié)點(diǎn)的位置時(shí),算法結(jié)束。

        IWCADV_Hop算法的流程圖如圖1所示。

        Figure 1 Flow chart of IWCADV_Hop algorithm圖1 IWCADV_Hop算法的流程圖

        3.5.3 IWCADV_Hop算法復(fù)雜度分析

        對(duì)于DV_Hop算法而言,為使每個(gè)節(jié)點(diǎn)得到與錨節(jié)點(diǎn)的距離,先遍歷每個(gè)節(jié)點(diǎn),再遍歷每個(gè)未知節(jié)點(diǎn)建立方程組,使用最小二乘法解方程組,得出未知節(jié)點(diǎn)位置。對(duì)于DV_Hop算法中建立的方程組,最小二乘法的時(shí)間復(fù)雜度為O(4n),n是待求解的方程數(shù)量,n與節(jié)點(diǎn)總數(shù)Ns和錨節(jié)點(diǎn)數(shù)M是同一個(gè)數(shù)量級(jí),所以DV_Hop算法的時(shí)間復(fù)雜度為O(Ns+(Ns-M)*4n),化簡(jiǎn),得出DV-Hop算法的時(shí)間復(fù)雜度為O(n2)。對(duì)于IWCADV_Hop而言,只是用優(yōu)化狼群算法代替了最小二乘法,所以IWCADV_Hop的時(shí)間復(fù)雜度為O(Ns+(Ns-M)*N3),3個(gè)變量是同一個(gè)數(shù)量級(jí),故化簡(jiǎn)可得O(N4)。故相對(duì)于DV_Hop而言,IWCADV_Hop增加了時(shí)間復(fù)雜度,在一定程度上增加了運(yùn)行時(shí)間。

        4 IWCADV_Hop仿真實(shí)驗(yàn)與分析

        4.1 實(shí)驗(yàn)場(chǎng)景與評(píng)價(jià)指標(biāo)

        4.1.1 實(shí)驗(yàn)場(chǎng)景

        為了驗(yàn)證IWCADV_Hop算法的定位性能,現(xiàn)將經(jīng)典DV_Hop算法、RABC算法[23]、GWOAASDV_Hop算法[24]與本文算法進(jìn)行定位誤差的比較。對(duì)比實(shí)驗(yàn)在Matlab 2016a上進(jìn)行,并以錨節(jié)點(diǎn)比例、節(jié)點(diǎn)通信半徑和節(jié)點(diǎn)總數(shù)作為變量來(lái)比較4種DV_Hop算法的定位誤差。實(shí)驗(yàn)在100 m*100 m的區(qū)域內(nèi)對(duì)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行仿真。每個(gè)節(jié)點(diǎn)的位置隨機(jī)生成,且實(shí)驗(yàn)結(jié)果取50次實(shí)驗(yàn)結(jié)果的平均值。IWCA各參數(shù)如表4所示,因?yàn)榇颂幍倪m應(yīng)度函數(shù)比較簡(jiǎn)單,且所需精度不需要精確到小數(shù)點(diǎn)后很多位,所以調(diào)整了狼群算法的參數(shù),以得到更好的運(yùn)行效果。

        Table 4 Parameters of IWCA in IWCADV_Hop algorithm

        4.1.2 評(píng)價(jià)指標(biāo)

        節(jié)點(diǎn)平均定位誤差的定義如式(18)所示:

        (18)

        其中,Ns為總節(jié)點(diǎn)數(shù),M為錨節(jié)點(diǎn)數(shù),(xie,yie)表示第i個(gè)未知節(jié)點(diǎn)的計(jì)算位置,(xit,yit)表示第i個(gè)未知節(jié)點(diǎn)的實(shí)際位置,R表示節(jié)點(diǎn)的通信半徑(本文假設(shè)所有節(jié)點(diǎn)通信半徑相同),平均誤差單位為%。錨節(jié)點(diǎn)數(shù)量M越大,計(jì)算未知節(jié)點(diǎn)到錨節(jié)點(diǎn)間的距離就越準(zhǔn)確,則式(18)中分子部分的差就越小,從而平均誤差也會(huì)越小。

        4.2 仿真實(shí)驗(yàn)

        4.2.1 以錨節(jié)點(diǎn)數(shù)量作為變量比較4種算法

        仿真實(shí)驗(yàn)中,錨節(jié)點(diǎn)的個(gè)數(shù)從20增加到50,遞增間隔為5,節(jié)點(diǎn)通信半徑為30 m,節(jié)點(diǎn)總數(shù)為100,其他參數(shù)不變,對(duì)4種算法進(jìn)行定位誤差的對(duì)比,定位誤差如圖2所示,橫坐標(biāo)表示錨節(jié)點(diǎn)數(shù)量,縱坐標(biāo)表示平均定位誤差。隨著錨節(jié)點(diǎn)數(shù)量的增加,定位誤差逐漸減小,但變化的幅度并不大。這是因?yàn)楫?dāng)錨節(jié)點(diǎn)的數(shù)量增加時(shí),更多未知節(jié)點(diǎn)能夠進(jìn)入到錨節(jié)點(diǎn)的覆蓋范圍內(nèi),這時(shí)的計(jì)算錨節(jié)點(diǎn)與未知節(jié)點(diǎn)的距離更接近于真實(shí)值。但是,當(dāng)錨節(jié)點(diǎn)過(guò)多時(shí),容易造成錨節(jié)點(diǎn)與未知節(jié)點(diǎn)距離過(guò)近,實(shí)際距離遠(yuǎn)小于計(jì)算距離,這又帶來(lái)了定位誤差,所以平均定位誤差隨著錨節(jié)點(diǎn)的增加浮動(dòng)并不大。而對(duì)于其他3種算法而言,IWCADV_Hop算法的定位誤差最小,相對(duì)于其他3種算法的定位誤差平均降低了21.13%,11.03%,7.5%。

        Figure 2 Comparison of location errors of four algorithms with different numbers of anchor nodes圖2 錨節(jié)點(diǎn)數(shù)量不同時(shí)4種算法定位誤差對(duì)比

        4.2.2 以節(jié)點(diǎn)通信半徑作為變量比較4種算法

        仿真實(shí)驗(yàn)中,節(jié)點(diǎn)通信半徑從20 m增加到50 m,遞增間隔為5 m,錨節(jié)點(diǎn)的個(gè)數(shù)為30個(gè),節(jié)點(diǎn)總數(shù)為100個(gè),其他參數(shù)不變,對(duì)4種算法進(jìn)行定位誤差的對(duì)比,定位誤差如圖3所示,橫坐標(biāo)表示節(jié)點(diǎn)的通信半徑,縱坐標(biāo)表示平均定位誤差??梢钥闯?,通信半徑在20~35 m時(shí),隨著半徑的增加,定位誤差逐漸較小,當(dāng)半徑大于35 m時(shí),誤差趨于平滑。這是因?yàn)楫?dāng)通信半徑較小時(shí),2個(gè)節(jié)點(diǎn)之間往往需要進(jìn)行多個(gè)節(jié)點(diǎn)轉(zhuǎn)發(fā)才能抵達(dá),因?yàn)槠骄啻嬖谝欢ㄕ`差,而2個(gè)節(jié)點(diǎn)跳數(shù)越大,則2個(gè)節(jié)點(diǎn)間的計(jì)算距離誤差就越大,所以定位效果越差。當(dāng)通信半徑增大時(shí),節(jié)點(diǎn)間的跳距變小,則定位誤差減小。當(dāng)通信半徑達(dá)到35 m時(shí),區(qū)域內(nèi)的2個(gè)節(jié)點(diǎn)的跳距都在3跳之內(nèi),所以隨著半徑的增大,定位誤差的浮動(dòng)也趨于平滑。而對(duì)于其他3種算法而言,IWCADV_Hop算法的定位誤差也在大多數(shù)情況下是最小的,相對(duì)于其他3種算法的定位誤差平均降低了23.29%,13.13%,7.5%。

        Figure 3 Comparison of location errors of four algorithms with different communication radius圖3 通信半徑不同時(shí)4種算法定位誤差對(duì)比

        4.2.3 以節(jié)點(diǎn)總數(shù)作為變量比較4種算法

        仿真實(shí)驗(yàn)中,節(jié)點(diǎn)的通信半徑為30 m,錨節(jié)點(diǎn)的個(gè)數(shù)為30,節(jié)點(diǎn)總數(shù)從100增加到200,遞增間隔為20,對(duì)4種算法進(jìn)行定位誤差的比較,對(duì)比結(jié)果如圖4所示,其中橫坐標(biāo)表示區(qū)域內(nèi)傳感器節(jié)點(diǎn)的總數(shù),縱坐標(biāo)表示平均定位誤差。由圖4可以看出,節(jié)點(diǎn)總數(shù)從100遞增到200對(duì)于定位的精度并沒(méi)有太大的影響,因?yàn)殡S著節(jié)點(diǎn)總數(shù)的增加,平均跳距和計(jì)算距離的計(jì)算并不會(huì)受到明顯的影響,所以對(duì)定位誤差也沒(méi)有太大的影響。但是,對(duì)比4種算法,IWCADV_Hop算法仍然是定位誤差最小的算法,相對(duì)于其他3種算法的定位誤差平均降低了22.7%,13.3%,8.2%。

        Figure 4 Comparison of location errors of four algorithms with different total numbers of nodes 圖4 節(jié)點(diǎn)總數(shù)不同時(shí)4種算法定位誤差對(duì)比

        綜上,在3個(gè)仿真實(shí)驗(yàn)中,不論是哪個(gè)變量對(duì)于定位誤差的影響,本文算法求出的定位誤差總是最小的,特別是隨著通信半徑的增加,本文算法的定位誤差能達(dá)到5%以下,這是因?yàn)橐环矫娓倪M(jìn)的狼群算法很大程度上減小了計(jì)算時(shí)產(chǎn)生的定位誤差,另一方面是因?yàn)椴捎昧薘SSI算法來(lái)計(jì)算1跳之內(nèi)的未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離,隨著通信半徑的增大,越來(lái)越多的未知節(jié)點(diǎn)都在錨節(jié)點(diǎn)的1跳范圍之內(nèi),所以距離產(chǎn)生的誤差也相對(duì)地減小了。

        5 結(jié)束語(yǔ)

        本文引用RSSI的思想優(yōu)化1跳內(nèi)的節(jié)點(diǎn)距離,并將優(yōu)化的狼群算法與DV_Hop算法相結(jié)合,不僅改進(jìn)了狼群算法,提高了狼群算法的魯棒性,還降低了DV_Hop算法的定位誤差。本文通過(guò)將模擬退火思想和混沌映射與狼群算法結(jié)合,再應(yīng)用到DV_Hop算法中,提出了基于優(yōu)化狼群算法的DV_Hop算法(IWCADV_Hop)。模擬實(shí)驗(yàn)表明,在不增加硬件要求的情況下,該算法具有更好的定位表現(xiàn)。本文算法雖然具有更好的定位效果,但是因?yàn)槔侨簲?shù)量和狼群迭代次數(shù)的增加,導(dǎo)致定位時(shí)間也有所增加(時(shí)間復(fù)雜度為O(N4)),后期將考慮如何降低算法的時(shí)間復(fù)雜度,提高定位速度。

        猜你喜歡
        狼群適應(yīng)度距離
        改進(jìn)的自適應(yīng)復(fù)制、交叉和突變遺傳算法
        德國(guó)老人 用40年融入狼群
        算距離
        狼群之爭(zhēng)
        《重返狼群》
        基于空調(diào)導(dǎo)風(fēng)板成型工藝的Kriging模型適應(yīng)度研究
        每次失敗都會(huì)距離成功更近一步
        山東青年(2016年3期)2016-02-28 14:25:55
        愛(ài)的距離
        母子健康(2015年1期)2015-02-28 11:21:33
        距離有多遠(yuǎn)
        少數(shù)民族大學(xué)生文化適應(yīng)度調(diào)查
        国产一区二区三区免费精品| 又大又粗欧美黑人aaaaa片| 精品卡一卡二卡3卡高清乱码| 国产亚洲精品久久777777| 少妇高潮喷水正在播放| 极品诱惑一区二区三区| 亚洲综合新区一区二区| 亚洲精品在线国产精品| 开心激情站开心激情网六月婷婷| 精品熟女av中文字幕| 高清少妇二区三区视频在线观看 | 日本一区二区高清视频| 国产一区二区三区视频网| 一边吃奶一边摸做爽视频| 亚洲av无码乱观看明星换脸va| 亚洲另类激情专区小说婷婷久| 麻豆激情视频在线观看| 精品国产一区二区三区三级| 欧美做受又硬又粗又大视频| 亚洲精品成人区在线观看| 精品国偷自产在线不卡短视频| 午夜国产精品视频免费看电影| av在线不卡一区二区| 人人爽人人爽人人片av| 欧洲精品免费一区二区三区| 亚洲AV无码精品色欲av| 一区二区三区精品亚洲视频| 中字乱码视频| 国产av一区二区精品久久凹凸| 精品久久久久久久久免费午夜福利| 国产精品嫩草影院午夜| 亚洲欧洲日产国码无码| 国产一级黄色片在线播放| 免费a级毛片18禁网站app| 国自产偷精品不卡在线| 亚洲午夜久久久久中文字幕久| 亚洲国产精一区二区三区性色| 手机在线观看日韩不卡av| 男女爽爽无遮挡午夜视频| 久久国产成人午夜av影院| 亚洲av无吗国产精品|