周天香,夏瑋瑋,燕鋒
(東南大學(xué)移動通信國家重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210096)
隨著海上活動的增加,海洋環(huán)境中的無線通信需求顯著增加[1]。為了滿足這一不斷增長的需求,需要在海上建立有效的通信,傳統(tǒng)的通信方式包括衛(wèi)星通信和岸基通信[2]。然而,衛(wèi)星通信的傳輸距離長,信號的時延大,且傳輸速率有限。至于岸基基站,雖然能提供較高的傳輸速率,但是基站的通信范圍有限,難以覆蓋到較遠(yuǎn)距離的船只[3]。
相比之下,無人機(jī)具有更高的靈活性和可移動性[4]。無人機(jī)部署在三維空間中,可以擴(kuò)展視距傳輸范圍。無人機(jī)可以充當(dāng)空中中繼,進(jìn)一步擴(kuò)大信號傳輸范圍[5]。因此,無人機(jī)輔助海面通信具有很大潛力。為了給無人機(jī)輔助的海面通信網(wǎng)絡(luò)提供可靠和高效的信息傳輸保障,需要設(shè)計一種路由算法,能夠快速適應(yīng)網(wǎng)絡(luò)拓?fù)涞淖兓?,減少數(shù)據(jù)包的傳輸時延,提高數(shù)據(jù)包投遞率。
近年來,針對海面自組網(wǎng)和FANETs(Flying Ad Hoc Networks,飛行自組網(wǎng))的路由算法進(jìn)行了許多研究。在海面自組網(wǎng)方面,大部分研究集中在驗(yàn)證現(xiàn)有經(jīng)典路由算法的性能上。文獻(xiàn)[6] 和[7] 中基于NS3 平臺通過仿真驗(yàn)證了,在海面自組網(wǎng)中,相比于DSR(Dynamic Source Routing,動態(tài)源路由)、DSDV(Destination Sequence Distance Vector,目的序列距離向量)和OLSR(Optimized Link State Routing,優(yōu)化鏈路狀態(tài)路由)算法,AODV(Ad Hoc On Demand Distance Vector,自組網(wǎng)按需距離向量)算法具有最佳性能。除此之外,有大量研究致力于改進(jìn)現(xiàn)有路由算法。文獻(xiàn)[1] 提出了航道和機(jī)會路由圖來模擬船只的相遇機(jī)會。然而,該算法需要完整的網(wǎng)絡(luò)位置信息,且具有較高的時間復(fù)雜度,使其難以在海洋大區(qū)域內(nèi)實(shí)現(xiàn)。
針對FANETs,GPSR(Greedy Perimeter Stateless Routing,貪心周邊無狀態(tài)路由)算法是最常用的[8]。改進(jìn)GPSR 性能的主要研究集中在位置預(yù)測、路由決策和恢復(fù)策略方面。首先,為了減少無人機(jī)移動性的影響,在文獻(xiàn)[9]和[10]中使用勻速直線運(yùn)動模型描述無人機(jī)的移動。但在實(shí)際場景中,無人機(jī)不太可能直線移動。文獻(xiàn)[11]和[12]使用高斯分布描述無人機(jī)移動概率密度函數(shù),提供低誤差和平滑的預(yù)測結(jié)果。在路由決策方面,做貪婪決策時應(yīng)考慮各種因素。文獻(xiàn)[13]和[14]考慮了距離、車輛方向、偏轉(zhuǎn)角度、速度變化和鄰居密度。此外,在恢復(fù)策略方面,文獻(xiàn)[14]使用有限洪泛來跳出路由空洞,可能會導(dǎo)致不必要的帶寬浪費(fèi)。文獻(xiàn)[15]提出了3種恢復(fù)策略,包括重試、轉(zhuǎn)發(fā)到最遠(yuǎn)的鄰居和最佳移動節(jié)點(diǎn)等方法。
然而,單純的海面和無人機(jī)自組織網(wǎng)絡(luò)的路由算法并不適用于異構(gòu)的無人機(jī)輔助海上通信網(wǎng)絡(luò)。無人機(jī)輔助的車聯(lián)網(wǎng)是一種無人機(jī)作為中繼輔助通信的異構(gòu)網(wǎng)絡(luò),網(wǎng)絡(luò)中同時考慮車輛和無人機(jī)兩類節(jié)點(diǎn)。文獻(xiàn)[16]、[17]和[18] 中都提出了一種基于十字路口結(jié)構(gòu)的反應(yīng)式路由算法來廣播路線發(fā)現(xiàn)請求,目的地節(jié)點(diǎn)基于請求消息中封裝的信息來計算路徑得分,基于得分進(jìn)行路徑選擇。文獻(xiàn)[19] 中使用蟻群方法改進(jìn)了反應(yīng)路由算法。然而無人機(jī)輔助的車聯(lián)網(wǎng)中的路由算法大多是針對特殊的交通場景進(jìn)行設(shè)計的,算法依賴于十字路口的構(gòu)造,并不適合節(jié)點(diǎn)可以任意移動的海面自組網(wǎng)。
針對無人機(jī)輔助的海面通信網(wǎng)絡(luò)場景,本文提出了一種基于位置預(yù)測的地理位置路由(Location Prediction Based Routing,LPGR)算法。該算法將預(yù)測模型和多因素路由決策相結(jié)合。本文的主要研究思路如下:
首先,所提算法采用高斯馬爾科夫預(yù)測模型來獲得節(jié)點(diǎn)的準(zhǔn)確位置?;陬A(yù)測位置,轉(zhuǎn)發(fā)節(jié)點(diǎn)進(jìn)行多因素的路由決策。如果節(jié)點(diǎn)轉(zhuǎn)發(fā)失敗,則陷入路由空洞,失敗節(jié)點(diǎn)將發(fā)起兩跳轉(zhuǎn)發(fā)過程來跳出路由空洞。
其次,所提算法在路由決策中考慮多個因素,包括距離、偏轉(zhuǎn)角度、速度差、運(yùn)動方向角、鄰居數(shù)量和路徑有效期。之后采用主成分分析法來得到各個因素的權(quán)重并做出精確的路由決策。
最后,本文搭建了一個基于OMNeT++平臺的仿真環(huán)境,對比了AODV、GPSR 和LPGR 三種算法的性能,驗(yàn)證了所提算法在端到端時延和數(shù)據(jù)包投遞率方面的良好性能。
如圖1所示,為了簡化分析,假設(shè)無人機(jī)在三維空間中移動,船舶在二維海面上移動,節(jié)點(diǎn)的移動模型采用隨機(jī)路點(diǎn)模型,其中所有無人機(jī)和船舶都在網(wǎng)絡(luò)層運(yùn)行LPGR協(xié)議。每個節(jié)點(diǎn)都配備有全球定位系統(tǒng)(Global Position System,GPS)模塊,并周期性地向鄰居廣播信標(biāo),每個信標(biāo)包括了鄰居的一些運(yùn)動信息。在接收到來自鄰居的信標(biāo)后,本節(jié)點(diǎn)將鄰居的信息保存到其本地鄰居表中。其中,在多因素路由決策中,不僅需要位置信息,還需要速度和鄰居數(shù)量信息。因此,信標(biāo)字段包括當(dāng)前位置、速度和鄰居數(shù)量信息。
圖1 系統(tǒng)模型示意圖
本文提出了一種基于位置預(yù)測的地理位置路由算法,所提算法的完整流程如圖2所示。
圖2 基于位置預(yù)測的地理位置路由算法(LPGR)的流程圖
步驟1:當(dāng)一個節(jié)點(diǎn)接收到一個數(shù)據(jù)包時,它會檢查目的節(jié)點(diǎn)是否為其本身。如果是,則本次數(shù)據(jù)傳輸完成。如果不是,則轉(zhuǎn)到步驟2。
步驟2:節(jié)點(diǎn)檢查目的節(jié)點(diǎn)是否在自身通信范圍內(nèi)。如果是,則將數(shù)據(jù)包直接發(fā)送給目的節(jié)點(diǎn)。如果不是,則轉(zhuǎn)到步驟3。
步驟3:節(jié)點(diǎn)按照LPGR算法的規(guī)則計算下一跳節(jié)點(diǎn)。
步驟3.1:節(jié)點(diǎn)先進(jìn)行多因素貪婪轉(zhuǎn)發(fā)?;陬A(yù)測的位置信息,節(jié)點(diǎn)在其鄰居范圍內(nèi)計算每個鄰居的路由決策值,如果存在比自身決策值更低的鄰居,則將決策值最低的鄰居作為下一跳進(jìn)行數(shù)據(jù)包傳輸。如果不存在,則轉(zhuǎn)到步驟3.2。
步驟3.2:節(jié)點(diǎn)陷入路由空洞,發(fā)起兩跳轉(zhuǎn)發(fā)過程,在兩跳鄰居范圍內(nèi)尋找路由決策值低于自身的節(jié)點(diǎn)作為下一跳。如果不存在合適的兩跳鄰居,則傳輸失敗。
在多因素貪婪轉(zhuǎn)發(fā)過程中,當(dāng)前節(jié)點(diǎn)根據(jù)其本地表中最新更新的鄰居位置信息,進(jìn)行路由決策。由于節(jié)點(diǎn)的移動性,在當(dāng)前時刻鄰居的實(shí)際位置與本地表中記錄的位置不同,可能導(dǎo)致鏈路斷開。如圖3所示,在t0時刻,節(jié)點(diǎn)B廣播信標(biāo)給節(jié)點(diǎn)S,節(jié)點(diǎn)S將節(jié)點(diǎn)B的位置信息保存到本地鄰居表。經(jīng)過t1-t0時間后,在t1時刻,節(jié)點(diǎn)B移動到了B′位置,超出了節(jié)點(diǎn)S的通信范圍。如果節(jié)點(diǎn)S在t1時刻選擇數(shù)據(jù)包轉(zhuǎn)發(fā)給節(jié)點(diǎn)B,則會導(dǎo)致鏈路中斷,數(shù)據(jù)丟失。
圖3 節(jié)點(diǎn)移動性造成的鏈路中斷問題
為了減輕移動性對節(jié)點(diǎn)通信性能的影響,有必要預(yù)測節(jié)點(diǎn)的移動性,在路由決策中使用預(yù)測位置進(jìn)行計算,從而提高網(wǎng)絡(luò)的連接性能和路由壽命。所提出的算法使用高斯分布來描述無人機(jī)移動概率密度函數(shù),進(jìn)而得到節(jié)點(diǎn)的預(yù)測位置[12]。移動性預(yù)測的目標(biāo)是基于tn-1時刻的過去位置和移動性特征,獲得tn時刻節(jié)點(diǎn)的預(yù)測位置分布。
本文假設(shè)Δt是tn-1和tn之間的單位步長時間,ΔT=tn-tn-1=mΔt,m表示單位時間的數(shù)量。節(jié)點(diǎn)的速度在時刻tn是隨機(jī)的。因此速度可以被視為勻速運(yùn)動,加速度是一系列在Δt期間具有恒定方差ε的高斯白噪聲。
對于tn-1和tn之間的第k個單位步長的節(jié)點(diǎn)i,x軸上的速度分量用表示,位置分量用x(k)表示,其表達(dá)式如下:
根據(jù)tn-1時刻的位置,tn時刻x軸的高斯分布的變量可以表示為:
y軸和z軸的變量表達(dá)式與x軸類似。
用(xn-1,yn-1,zn-1)表示tn-1時刻的位置,因此在ΔT=tn-tn-1=mΔt之后,到達(dá)位置(xn,yn,zn)的概率密度函數(shù)可以表示為:
此外,距離可能不是唯一影響路由決策的因素。如圖4所示,當(dāng)前轉(zhuǎn)發(fā)節(jié)點(diǎn)S的通信范圍內(nèi)存在2個鄰居節(jié)點(diǎn)A和B,節(jié)點(diǎn)A距離目的節(jié)點(diǎn)D的距離最近,但其運(yùn)動方向與節(jié)點(diǎn)D相反。如果根據(jù)傳統(tǒng)貪婪轉(zhuǎn)發(fā)考慮的因素,節(jié)點(diǎn)S選擇節(jié)點(diǎn)A作為下一跳,則數(shù)據(jù)包可能需要經(jīng)過更多跳或更大時延才能到達(dá)目的節(jié)點(diǎn)。
圖4 距離和速度因素對路由決策的影響
為避免做出次優(yōu)選擇,在決策中有必要考慮多種影響因素,包括距離、偏轉(zhuǎn)角、速度差、運(yùn)動方向角、鄰居數(shù)量和路徑有效期。對不同因素值進(jìn)行線性加權(quán)求和得到路由決策值,以改進(jìn)原有貪婪轉(zhuǎn)發(fā)策略。
所考慮的第一個因素是距離,指的是當(dāng)前節(jié)點(diǎn)選擇距離目的節(jié)點(diǎn)更近的鄰居節(jié)點(diǎn)。當(dāng)前節(jié)點(diǎn)用Nc表示,則Nc的鄰居Ni和目的節(jié)點(diǎn)Nd之間的距離f1可以表示為:
所考慮的第二個因素是偏轉(zhuǎn)角。為了減少路由跳數(shù),數(shù)據(jù)包應(yīng)該盡量沿著直線方向傳輸?shù)侥康墓?jié)點(diǎn),即如圖5所示,偏轉(zhuǎn)角希望盡可能小。偏轉(zhuǎn)角f2可以表示為:
圖5 路由決策中的多因素因子示意圖
表示當(dāng)前節(jié)點(diǎn)Nc的位置坐標(biāo),[·]表示矢量的點(diǎn)乘運(yùn)算。
所考慮的第三個和第四個因素分別是速率差和運(yùn)動方向角,指的是當(dāng)前節(jié)點(diǎn)會選擇在速率和移動方向上更接近目的節(jié)點(diǎn)的鄰居。鄰居Ni和目的節(jié)點(diǎn)Nd之間的速率差f3可以表示為:
所考慮的第五個因素是鄰居數(shù)量。具有更多鄰居的鄰居節(jié)點(diǎn)更有可能找到合適的下一跳。用di表示鄰居數(shù)量,則有f5=1/di。
所考慮的第六個因素是路徑有效期,有效期表示兩個節(jié)點(diǎn)保持連接的剩余時間[17]。對于路徑有效期,可分為兩種不同場景討論:(i)兩個節(jié)點(diǎn)分布在二維平面中,例如兩艘船只;(ii)兩個節(jié)點(diǎn)分布在三維空間中,例如兩架無人機(jī)。
場景(i)如圖6所示,在二維海平面中,考慮兩個速度非零的船只節(jié)點(diǎn)Nc和Ni,速率分別為vc和vi,視距通信范圍為R,(xc,yc)和(xi,yi)為對應(yīng)位置坐標(biāo),θc和θi為對應(yīng)速度方位角。則路徑有效期可表示為:
其中
場景(ii)如圖7所示,在三維空間中,考慮兩個速度非零的節(jié)點(diǎn)Nc和Ni,速率分別為vc和vi,視距通信范圍為R,(xc,yc,zc)和(xi,yi,zi)為對應(yīng)位置坐標(biāo),θc和θi為對應(yīng)速度方位角,φc和φi為對應(yīng)速度俯仰角。則路徑有效期可表示為:
圖7 三維空間的路徑有效期示意圖
其中
總的路由決策函數(shù)可以由上述因素線性加權(quán)計算得到
其中ωi(i=1,2,3,4,5,6)表示各個因素對應(yīng)的權(quán)重,滿足0 ≤ωi≤ 1,且ω1+ω2+ω3+ω4+ω5+ω6=1。路由決策值越小,該鄰居作為下一跳節(jié)點(diǎn)轉(zhuǎn)發(fā)的質(zhì)量越高。
路由決策中每個因素對于路由決策的貢獻(xiàn)可能不同,反映在對應(yīng)的權(quán)重。所提算法采用主成分分析方法來確定權(quán)重。主成分分析方法基于各個因素的方差來計算權(quán)重,方差大的因素波動越劇烈,可以提供越多的信息量,并對路由決策產(chǎn)生更顯著的影響。相反,方差小的因素波動較小,對于路由決策影響更弱。基于主成分分析法來得到各個因素的精確權(quán)重,當(dāng)前轉(zhuǎn)發(fā)節(jié)點(diǎn)可以做出更精確的路由決策。主成分分析法計算權(quán)重的過程如下:
(1)去中心化。求出每個因素的平均值,所有樣本減去每個因素的平均值。
(2)計算協(xié)方差矩陣C。協(xié)方差矩陣可以表示為
其中,cov[·]表示協(xié)方差運(yùn)算。對角線上是各個因素的方差,非對角線上是協(xié)方差值。cov(f1,f2) > 0表示如果f1和f2中的一個增加,另一個也會增加。cov(f1,f2) < 0表示如果f1和f2中的一個增加,另一個減小。cov(f1,f2)=0表示這兩個因素相互獨(dú)立。
(3)計算特征值λ和對應(yīng)的特征向量,其可以表示為:
其中,每個因素的貢獻(xiàn)可以通過降序排列的特征值得到。
(4)計算權(quán)重。每個因素的權(quán)重可以根據(jù)相應(yīng)的特征值,按照下列表達(dá)式計算得到:
如果貪婪轉(zhuǎn)發(fā)失敗,即當(dāng)前轉(zhuǎn)發(fā)節(jié)點(diǎn)的鄰居決策值中沒有比自身更小的,則會陷入路由空洞。在二維平面中,使用構(gòu)造平面圖的方法來從路由空洞中恢復(fù),但利用右手定則的方法不再適用于三維空間。因此所提算法采用兩跳轉(zhuǎn)發(fā)作為恢復(fù)策略。如果陷入路由空洞,貪婪失敗節(jié)點(diǎn)會在其兩跳鄰居范圍內(nèi)尋找合適的節(jié)點(diǎn)。兩跳轉(zhuǎn)發(fā)的具體步驟如下:
步驟1:如果貪婪轉(zhuǎn)發(fā)失敗,失敗節(jié)點(diǎn)會向其鄰居廣播兩跳請求。兩跳請求消息包含的字段如表1所示。
表1 兩跳請求的字段
步驟2:每個鄰居節(jié)點(diǎn)在收到兩跳請求后,會根據(jù)以下規(guī)則選擇合適的兩跳鄰居節(jié)點(diǎn)。
步驟2.1:基于GPS模塊獲得最新時刻的位置和速度,每個鄰居計算自身的路由決策值。如果該決策值小于貪婪失敗節(jié)點(diǎn)的決策值,則鄰居節(jié)點(diǎn)將返回自身作為下一跳節(jié)點(diǎn)。如果不是,則轉(zhuǎn)到步驟2.2。
步驟2.2:每個鄰居依次計算其兩跳鄰居的路由決策值。如果存在兩跳鄰居的路由決策值小于貪婪失敗節(jié)點(diǎn)的決策值,則選擇其中具有最小決策值的兩跳鄰居作為兩跳節(jié)點(diǎn)。如果不存在,則當(dāng)前鄰居不能提供合適的兩跳鄰居,將返回貪婪失敗節(jié)點(diǎn)本身。
步驟3:每個鄰居節(jié)點(diǎn)將計算得到的下一跳節(jié)點(diǎn)信息放進(jìn)兩跳響應(yīng)的字段中,將其發(fā)回給貪婪失敗節(jié)點(diǎn)。兩跳響應(yīng)消息的字段如表2所示。
表2 兩跳響應(yīng)的字段
步驟4:貪婪失敗節(jié)點(diǎn)在收到兩跳響應(yīng)后,會檢查所有響應(yīng)中的下一跳字段,選擇其中決策值最小的節(jié)點(diǎn)來完成數(shù)據(jù)包轉(zhuǎn)發(fā)。
在本節(jié)中,基于OMNeT++模擬器,實(shí)現(xiàn)LPGR算法,并將所提算法與AODV算法和GPSR算法進(jìn)行性能驗(yàn)證,性能指標(biāo)包括端到端時延與數(shù)據(jù)包投遞率。
本仿真考慮數(shù)量級為幾十到上百個節(jié)點(diǎn)的異構(gòu)自組網(wǎng)場景,根據(jù)被廣泛引用的文獻(xiàn)[21]中的參數(shù)設(shè)置,本仿真的關(guān)鍵參數(shù)如表3所示。無人機(jī)和船只的移動模型為隨機(jī)路點(diǎn)移動模型,無人機(jī)和船只的位置和速度在給定范圍內(nèi)隨機(jī)生成,每架無人機(jī)的高度在50 m到100 m范圍內(nèi)隨機(jī)生成。采用隨機(jī)模型可以表示節(jié)點(diǎn)移動的平均特征,可以反映出節(jié)點(diǎn)的平均移動特征,得到的性能指標(biāo)也能代表路由算法的平均性能。為研究海面自組網(wǎng)路由算法的性能,僅考慮船只有收發(fā)數(shù)據(jù)包業(yè)務(wù),在船只中隨機(jī)指定源和目的節(jié)點(diǎn)發(fā)送UDP數(shù)據(jù)報文,船只既可以作為收發(fā)節(jié)點(diǎn),也可以作為中繼節(jié)點(diǎn),無人機(jī)僅作為中繼節(jié)點(diǎn)進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)。
表3 關(guān)鍵參數(shù)設(shè)置
圖8表示不同無人機(jī)數(shù)量下平均端到端時延的變化趨勢。如圖8中所示,端到端時延隨著無人機(jī)數(shù)量的增加而波動。可以看出,與AODV和GPSR算法相比,所提的LPGR算法具有更低的端到端時延,這可能是由于所提算法使用了預(yù)測模型得到了準(zhǔn)確的鄰居位置,并基于主成分分析法計算的精確權(quán)重進(jìn)行路由決策,更有可能選擇高質(zhì)量的下一跳節(jié)點(diǎn),從而減少了傳輸跳數(shù)和時延。
圖8 不同無人機(jī)數(shù)量下端到端時延示意圖(船只數(shù)量為40)
圖9描述了不同船只數(shù)量下的平均端到端時延。從圖9可以看出,由于采用了預(yù)測位置、多因素路由決策和合適的因素權(quán)重,所提出的LPGR算法比其他算法具有更低的時延。此外,從圖9可以觀察到,所有端到端時延都隨著船只數(shù)量的增加而上升。產(chǎn)生這種趨勢的原因可能是,隨著收發(fā)節(jié)點(diǎn)數(shù)量的增加,中繼節(jié)點(diǎn)的負(fù)載更大,需要更多時間來處理數(shù)據(jù)包并做出路由決策。
圖9 不同船只數(shù)量下端到端時延示意圖(無人機(jī)數(shù)量為50)
圖10顯示了在不同無人機(jī)數(shù)量下三種路由算法的數(shù)據(jù)包投遞率對比情況。如圖10所示,相比AODV和GPSR算法,由于所提算法利用預(yù)測模型的精確位置信息,并且通過基于優(yōu)化權(quán)重的多因素路由決策中選擇下一跳節(jié)點(diǎn),LPGR算法可以提供更高的數(shù)據(jù)包投遞率。基于預(yù)測位置做決策,可以減少鏈路中斷的可能性。此外,轉(zhuǎn)發(fā)節(jié)點(diǎn)以精確的權(quán)重做多因素路由決策,更有可能選擇合適的下一跳。此外,貪婪失敗節(jié)點(diǎn)在陷入路由空洞后會發(fā)起兩跳轉(zhuǎn)發(fā)流程,顯著提高了數(shù)據(jù)包的傳遞率。
圖10 不同無人機(jī)數(shù)量下數(shù)據(jù)包投遞率示意圖(船只數(shù)量為40)
圖11描述了不同船只數(shù)量下的數(shù)據(jù)包投遞率變化趨勢。從圖11可以看出,由于預(yù)測位置和精確的路由決策,相比于AODV和GPSR算法,所提出的LPGR算法獲得了最高數(shù)據(jù)包投遞率。此外,收發(fā)節(jié)點(diǎn)數(shù)量越多,網(wǎng)絡(luò)負(fù)載越大,擁塞越嚴(yán)重,因此數(shù)據(jù)包投遞率隨著船只數(shù)量的增加而降低。同時,隨著發(fā)射節(jié)點(diǎn)數(shù)量的增加,中繼節(jié)點(diǎn)必須處理更多的數(shù)據(jù)包,如果中繼節(jié)點(diǎn)的處理能力不能滿足要求,則可能發(fā)生丟包。
圖11 不同船只數(shù)量下數(shù)據(jù)包投遞率示意圖(無人機(jī)數(shù)量為50)
本文提出了一種基于位置預(yù)測的無人機(jī)輔助海上自組織網(wǎng)絡(luò)地理路由算法。為了減少節(jié)點(diǎn)移動性的影響,該算法使用高斯馬爾科夫預(yù)測模型來獲得準(zhǔn)確的定位。轉(zhuǎn)發(fā)節(jié)點(diǎn)根據(jù)預(yù)測的位置進(jìn)行多因素路由決策。當(dāng)陷入路由空洞時,轉(zhuǎn)發(fā)節(jié)點(diǎn)將發(fā)起兩跳轉(zhuǎn)發(fā)流程以從空洞中恢復(fù)。該算法采用多因素貪婪轉(zhuǎn)發(fā)策略,包括距離、偏轉(zhuǎn)角、速度、移動方向、鄰居數(shù)量和路徑有效期。此外,通過主成分分析法計算出各個因素的權(quán)重用于做出精確的路由決策。所提算法應(yīng)用在數(shù)量級為幾十到上百個節(jié)點(diǎn)的無人機(jī)輔助海面自組網(wǎng)場景,仿真結(jié)果表明,與AODV 和GPSR 算法相比,所提算法可以顯著降低端到端時延,提高數(shù)據(jù)包投遞率,為數(shù)據(jù)傳輸提供可靠高效的轉(zhuǎn)發(fā)機(jī)制。但是所提算法假設(shè)每個節(jié)點(diǎn)周期性的廣播信標(biāo),對于移動性強(qiáng)的節(jié)點(diǎn)而言,如果周期偏長,可能會導(dǎo)致其鄰居中存儲的節(jié)點(diǎn)位置與實(shí)際位置存在較大誤差,而周期偏短,會導(dǎo)致網(wǎng)絡(luò)控制開銷過大,影響網(wǎng)絡(luò)性能。在未來研究中,節(jié)點(diǎn)可以根據(jù)預(yù)測位置和實(shí)際位置之間的誤差,自適應(yīng)地發(fā)送信標(biāo),在降低網(wǎng)絡(luò)開銷的同時保證位置的精確性。