吳佳楠, 溫智皓, 賀曼利, 吳 劍, 李念峰
(長春大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院, 長春 130022)
以水下仿生機(jī)器魚為代表的水下航行器(autonomous underwater vehicle, AUV)因具有良好的自主性和靈活性, 已成為探索海洋復(fù)雜水下環(huán)境的有效工具, 具有良好的應(yīng)用前景[1-2]. 但海洋環(huán)境的特殊性對無人航行器的續(xù)航能力、 可靠性提出了更高要求. 由于水質(zhì)、 水流、 電導(dǎo)率、 壓強(qiáng)等水下環(huán)境因素的影響, 傳統(tǒng)的通信方式很難有效工作, 目前主要有水下光學(xué)通信、 水下聲學(xué)通信和水下電場通信等幾種通信方式[3]. 水下光學(xué)通信以光波作為信息載體, 具有近距離高速通信的特點(diǎn), 但其對使用環(huán)境要求較高[4]; 水聲通信是當(dāng)前應(yīng)用較廣泛的水下通信方法, 其技術(shù)成熟, 可實(shí)現(xiàn)水下遠(yuǎn)距離通信, 但會受環(huán)境和通信介質(zhì)的影響, 易出現(xiàn)盲區(qū), 發(fā)射器效率較低[5]; 水下電場通信是將電流形成的電場作為介質(zhì)進(jìn)行通信, 傳輸信號穩(wěn)定, 對環(huán)境限制少, 靈活性較高[6-7]. 相比于光學(xué)和水聲通信, 水下電場通信技術(shù)因其能耗低, 不受水域渾濁等因素影響的特點(diǎn), 對仿生魚在水下進(jìn)行組網(wǎng)通信有重要意義. 北京大學(xué)的仿生魚研究團(tuán)隊(duì)選取箱鲀魚為仿生對象, 設(shè)計(jì)出一種小型水下機(jī)器人的電場通信系統(tǒng), 該系統(tǒng)屬于多跳臨時(shí)性自治系統(tǒng), 由一組兼具主機(jī)和路由功能的移動終端組成, 實(shí)現(xiàn)了仿生魚在3~5 m的雙向通信[8-9]. 若能形成由多個(gè)仿生魚體組成的智能集群, 協(xié)同工作, 則可有效彌補(bǔ)單機(jī)器人系統(tǒng)的不足. 文獻(xiàn)[10]根據(jù)實(shí)際情況, 使用CSMA/CA協(xié)議減少了共享信道上通信碰撞問題的發(fā)生, 同時(shí)提出了基于無線自組網(wǎng)按需平面距離向量路由協(xié)議AODV (Ad hoc on-demand distance vector routing)的電場通信路由協(xié)議, 實(shí)現(xiàn)了多節(jié)點(diǎn)的電場通信組網(wǎng)和消息的多跳轉(zhuǎn)發(fā)[10-11]. AODV是一種典型的反應(yīng)式路由協(xié)議, 具有高響應(yīng)時(shí)間的特點(diǎn), 但不適用于大型、 高動態(tài)網(wǎng)絡(luò), 且對鏈路變化也不敏感, 很難應(yīng)對節(jié)點(diǎn)的失聯(lián)、 故障等意外情況[12-13]. 此外, 文獻(xiàn)[14]證明電場會隨著海水電導(dǎo)率增大而減小, 低電導(dǎo)率海水的電場幅度明顯高于高電導(dǎo)率海水, 所以在水下環(huán)境中, 電導(dǎo)率的變化對水下電場通信的距離和效果有一定影響.
本文以北京大學(xué)團(tuán)隊(duì)研發(fā)的基于水下電場通信的仿生箱鲀魚為物理載體, 設(shè)計(jì)一種考慮實(shí)際水域電導(dǎo)率影響的仿生魚群自組網(wǎng)算法. 算法主要根據(jù)節(jié)點(diǎn)間的通信時(shí)間計(jì)算節(jié)點(diǎn)優(yōu)先級, 確定節(jié)點(diǎn)角色, 形成集群協(xié)作網(wǎng)絡(luò), 實(shí)現(xiàn)小規(guī)模仿生魚群的快速組網(wǎng). 以目的坐標(biāo)為導(dǎo)向的子節(jié)點(diǎn)和失散節(jié)點(diǎn)自主巡航功能的設(shè)定, 不但能實(shí)現(xiàn)群體失散節(jié)點(diǎn)的尋回, 還間接優(yōu)化了網(wǎng)絡(luò)協(xié)作模型, 減少了節(jié)點(diǎn)間的路由維護(hù)信息, 有效節(jié)約了網(wǎng)絡(luò)能耗.
仿生魚群網(wǎng)絡(luò)中定義了6種節(jié)點(diǎn)角色: 臨時(shí)核心節(jié)點(diǎn)、 主核節(jié)點(diǎn)、 備份節(jié)點(diǎn)、 直連節(jié)點(diǎn)、 子節(jié)點(diǎn)和失散節(jié)點(diǎn). 各節(jié)點(diǎn)功能如下.
1) 臨時(shí)核心節(jié)點(diǎn): 用于主核節(jié)點(diǎn)和備份節(jié)點(diǎn)的選舉過渡.
2) 主核節(jié)點(diǎn): 群體的主控制節(jié)點(diǎn), 用于協(xié)調(diào)控制魚群.
3) 備份節(jié)點(diǎn): 主核節(jié)點(diǎn)失效時(shí), 作為新的群體控制節(jié)點(diǎn).
4) 直連節(jié)點(diǎn): 能與臨時(shí)核心節(jié)點(diǎn)建立直接通信, 輔助整合子節(jié)點(diǎn).
5) 子節(jié)點(diǎn): 僅能與直連節(jié)點(diǎn)通信.
6) 失散節(jié)點(diǎn): 與群體網(wǎng)絡(luò)失聯(lián)的節(jié)點(diǎn), 不在群體有效通信距離內(nèi).
仿生魚的內(nèi)部系統(tǒng)通信功能分為初始化、 事件生成器、 報(bào)文分類處理、 PID(priority ID)更新器、 計(jì)時(shí)器、 輸入/輸出6個(gè)模塊和一個(gè)PID信息數(shù)據(jù)庫, 如圖1所示. 其中, TD(TCP data)報(bào)文定義為TCP報(bào)文解析出的數(shù)據(jù)字段, PID表示節(jié)點(diǎn)優(yōu)先級. 為提高處理效率, 減輕系統(tǒng)負(fù)擔(dān), 算法設(shè)計(jì)為單進(jìn)程結(jié)構(gòu)[15], 模塊間的交互方式為函數(shù)調(diào)用和數(shù)據(jù)傳輸. 系統(tǒng)各部分功能如下.
圖1 系統(tǒng)工作模型Fig.1 System working model
1) 初始化模塊: 初始化算法使用的全部數(shù)據(jù)結(jié)構(gòu); 通過事件生成器產(chǎn)生開始事件, 啟動報(bào)文分類處理模塊, 開始運(yùn)行整個(gè)算法.
2) 事件生成器: 生成事件, 驅(qū)動算法正常執(zhí)行; 通過接收輸入模塊發(fā)送的TD報(bào)文, 生成報(bào)文處理事件, 轉(zhuǎn)發(fā)給報(bào)文分類處理模塊處理; 產(chǎn)生報(bào)文發(fā)送事件, 將報(bào)文分類處理模塊需發(fā)送的TD報(bào)文通過輸出模塊發(fā)送出, 同時(shí)負(fù)責(zé)維護(hù)報(bào)文隊(duì)列的正常使用, 提供數(shù)據(jù)結(jié)構(gòu)的函數(shù)接口.
3) 報(bào)文分類處理模塊: 從事件生成器模塊接收TD報(bào)文, 通過報(bào)文標(biāo)識判斷類型, 針對不同類型的報(bào)文進(jìn)行相應(yīng)的處理, 處理過程中需要查看PID數(shù)據(jù)庫信息, 從而更新自身PID和PID數(shù)據(jù)庫, 將此過程產(chǎn)生的事件添加到事件生成器模塊.
4) PID更新器: 計(jì)算和更新自身PID和PID數(shù)據(jù)庫.
5) 計(jì)時(shí)器: 根據(jù)TD報(bào)文的發(fā)送時(shí)間字段, 計(jì)算兩節(jié)點(diǎn)往返通信一次所需時(shí)間, 輔助PID更新器計(jì)算PID.
6) 輸入/輸出模塊: 直接調(diào)用操作系統(tǒng)提供的TCP服務(wù)接口, 完成TCP建立的連接和釋放; 將相鄰節(jié)點(diǎn)送來的TCP報(bào)文解析成TD報(bào)文, 提交給事件生成器; 接收事件生成器發(fā)來的TD報(bào)文, 封裝成TCP報(bào)文, 發(fā)給相應(yīng)的節(jié)點(diǎn).
7) PID信息數(shù)據(jù)庫: 存放算法執(zhí)行過程中產(chǎn)生的各種數(shù)據(jù), 包括與自身通信的上級節(jié)點(diǎn), 以及兩個(gè)相互獨(dú)立的直連節(jié)點(diǎn)信息表和子節(jié)點(diǎn)信息表, 表中含有ID和PID等信息.
算法運(yùn)行分為兩個(gè)階段: 選舉階段通過計(jì)算節(jié)點(diǎn)優(yōu)先級確定節(jié)點(diǎn)角色, 生成全網(wǎng)拓?fù)洌?網(wǎng)絡(luò)維護(hù)階段基于自主巡航功能優(yōu)化子節(jié)點(diǎn), 并通過發(fā)送探索報(bào)文尋回失散節(jié)點(diǎn). 算法主要流程如圖2所示.
圖2 算法流程Fig.2 Flow chart of algorithm
該階段包含選舉臨時(shí)核心節(jié)點(diǎn)、 整合子節(jié)點(diǎn)、 主備節(jié)點(diǎn)選舉3個(gè)子過程.
2.1.1 選舉臨時(shí)核心節(jié)點(diǎn)
步驟1) 所有節(jié)點(diǎn)廣播詢問報(bào)文M1, 發(fā)送時(shí)間字段為當(dāng)前時(shí)間t1, 數(shù)據(jù)字段h1為0;
步驟4) 所有節(jié)點(diǎn)PID更新完畢;
步驟5) 每個(gè)節(jié)點(diǎn)廣播報(bào)文M2, 發(fā)送自身PID;
步驟6) 節(jié)點(diǎn)收到M2, 建立自身直連節(jié)點(diǎn)信息表并排序;
步驟7) 排在直連節(jié)點(diǎn)信息表第一位的節(jié)點(diǎn), 發(fā)送臨時(shí)核心確認(rèn)報(bào)文M3;
步驟8) 節(jié)點(diǎn)收到M3, 判斷是否同意; 若是, 則單播M3y, 同意建立臨時(shí)核心節(jié)點(diǎn), 更新自身上級節(jié)點(diǎn)信息; 若否, 則單播M3n, 拒絕建立臨時(shí)核心節(jié)點(diǎn).
臨時(shí)核心節(jié)點(diǎn)選舉時(shí)序如圖3所示.
圖3 臨時(shí)核心節(jié)點(diǎn)選舉時(shí)序Fig.3 Sequence of temporary core node election
PID包括兩部分: 通信總個(gè)數(shù)(Number_Sum)和平均通信時(shí)間(Time_Average), 更新計(jì)算過程為
(1)
Number_Sum=Number_Sum+1,
(2)
其中Time_Twopoints表示兩節(jié)點(diǎn)進(jìn)行通信的時(shí)間. 通信總個(gè)數(shù)越多, PID越高; 通信總個(gè)數(shù)相同, 平均通信時(shí)間越短, PID越高.
2.1.2 整合子節(jié)點(diǎn)
步驟1) 臨時(shí)核心節(jié)點(diǎn)將自身直連節(jié)點(diǎn)信息表放進(jìn)M4報(bào)文, 廣播發(fā)送;
步驟4) 直連節(jié)點(diǎn)收到M5a報(bào)文, 向子節(jié)點(diǎn)單播報(bào)文M5b;
步驟5) 子節(jié)點(diǎn)收到M5b, 更新自身上級節(jié)點(diǎn)信息, 協(xié)作拓?fù)浣⑼戤?
子節(jié)點(diǎn)整合時(shí)序如圖4所示.
圖4 子節(jié)點(diǎn)整合時(shí)序Fig.4 Sequence of sub node integration
2.1.3 主備節(jié)點(diǎn)選舉
步驟1) 將臨時(shí)核心節(jié)點(diǎn)作為主核節(jié)點(diǎn);
步驟2) 主核廣播發(fā)送M6報(bào)文, 通知所有節(jié)點(diǎn)開始選舉備份節(jié)點(diǎn), 主核進(jìn)入備份選舉狀態(tài): 可正常接收報(bào)文, 但不進(jìn)行處理和回復(fù), 只有收到M7報(bào)文才進(jìn)行回復(fù);
步驟3) 節(jié)點(diǎn)收到M6報(bào)文, 刪除直連節(jié)點(diǎn)信息表中關(guān)于主核的信息, 執(zhí)行臨時(shí)核心選舉部分, 選出的臨時(shí)核心節(jié)點(diǎn)作為備份節(jié)點(diǎn);
步驟4) 備份節(jié)點(diǎn)單播發(fā)送M7報(bào)文, 通知主核, 備份節(jié)點(diǎn)已經(jīng)選舉完畢;
步驟5) 主核收到M7報(bào)文, 發(fā)送M8報(bào)文, 通知所有節(jié)點(diǎn)回歸主核控制狀態(tài);
步驟6) 節(jié)點(diǎn)收到M8報(bào)文, 開啟主核節(jié)點(diǎn)控制狀態(tài), 結(jié)束.
維護(hù)階段用于維護(hù)選舉階段建立的網(wǎng)絡(luò)拓?fù)? 主核節(jié)點(diǎn)負(fù)責(zé)協(xié)調(diào)魚群內(nèi)部通信, 定時(shí)發(fā)送維護(hù)報(bào)文, 通過節(jié)點(diǎn)的反饋, 判斷節(jié)點(diǎn)運(yùn)行情況, 更新網(wǎng)絡(luò)拓?fù)洌?備份節(jié)點(diǎn)在主核正常情況下, 定時(shí)備份主核節(jié)點(diǎn)所有的數(shù)據(jù), 一旦主核出現(xiàn)失聯(lián)、 故障問題, 立刻替代主核, 成為新的主核節(jié)點(diǎn), 同時(shí)控制魚群再次選舉.
2.2.1 自主巡航功能
步驟1) 網(wǎng)絡(luò)協(xié)作拓?fù)湫纬珊? 主核節(jié)點(diǎn)廣播封裝了目的坐標(biāo)的報(bào)文M9;
步驟2) 直連節(jié)點(diǎn)收到報(bào)文M9后, 隨同主核節(jié)點(diǎn)按到目標(biāo)坐標(biāo)的最短路徑移動;
步驟3) 子節(jié)點(diǎn)收到報(bào)文M9后, 獨(dú)立于主核節(jié)點(diǎn), 選擇到目標(biāo)坐標(biāo)的最短路徑自主移動;
步驟4) 主核節(jié)點(diǎn)在移動過程中, 定時(shí)廣播探索報(bào)文M10;
步驟5) 子節(jié)點(diǎn)未定時(shí)收到探索報(bào)文M10, 角色變?yōu)槭⒐?jié)點(diǎn), 同樣自行向目的坐標(biāo)移動.
2.2.2 群體拓?fù)鋬?yōu)化與失散節(jié)點(diǎn)尋回
根據(jù)自主巡航功能, 在移動過程中, 如果子節(jié)點(diǎn)或失散節(jié)點(diǎn)直接從主核節(jié)點(diǎn)收到報(bào)文M10, 此時(shí)若符合直連節(jié)點(diǎn)特征, 則進(jìn)行角色轉(zhuǎn)換, 加入網(wǎng)絡(luò).
用計(jì)算機(jī)軟件對復(fù)雜的網(wǎng)絡(luò)行為進(jìn)行仿真是一種行之有效的網(wǎng)絡(luò)分析方法[16], 本文利用MATLAB軟件對算法執(zhí)行結(jié)果進(jìn)行仿真模擬, 用NS-2軟件對仿生魚群間的通信情況進(jìn)行仿真運(yùn)算.
3.1.1 理想水域環(huán)境仿真
隨機(jī)模擬10條仿生魚下水的初始位置, 如圖5(A)所示, 由于目前水下電場的實(shí)際有效通信范圍是3~5 m, 因此本文將仿生魚的通信范圍設(shè)為3 m, 若超出該范圍將不能進(jìn)行直接通信. 算法執(zhí)行后, 每個(gè)節(jié)點(diǎn)將會確定自己的角色, 形成網(wǎng)絡(luò)拓?fù)? 其中紅色五角星表示主核節(jié)點(diǎn), 紫色三角形表示備份節(jié)點(diǎn), 綠色圓形表示直連節(jié)點(diǎn), 藍(lán)色正方形表示子節(jié)點(diǎn). 按本文算法運(yùn)行程序后, 由主核節(jié)點(diǎn)控制的網(wǎng)絡(luò)拓?fù)淙鐖D5(B)所示, 由備份節(jié)點(diǎn)控制的網(wǎng)絡(luò)拓?fù)淙鐖D5(C)所示.
本文算法具有丟失節(jié)點(diǎn)尋回功能, 如圖5(D)所示, 將群體行進(jìn)終點(diǎn)坐標(biāo)設(shè)為(5,5), 主核節(jié)點(diǎn)控制所有節(jié)點(diǎn)向終點(diǎn)移動, 紅色虛線表示節(jié)點(diǎn)移動的軌跡(為圖像更簡潔清晰, 只標(biāo)出主核節(jié)點(diǎn)和子節(jié)點(diǎn)的移動軌跡). 由圖5(D)可見, 經(jīng)仿真計(jì)算后, 左上角的藍(lán)色子節(jié)點(diǎn)經(jīng)過t時(shí)刻后與紅色主核節(jié)點(diǎn)之間的通信距離縮小為3 m, 達(dá)到了有效通信距離, 拓?fù)涓潞? 變?yōu)榫G色直連節(jié)點(diǎn). 該機(jī)制有效減少了群體網(wǎng)絡(luò)節(jié)點(diǎn)間的路由維護(hù)報(bào)文, 進(jìn)而節(jié)約網(wǎng)絡(luò)能耗. 該過程同樣適用于群體行進(jìn)過程中由于水下環(huán)境的意外風(fēng)險(xiǎn)因素導(dǎo)致出現(xiàn)失散節(jié)點(diǎn)的有效尋回, 從而間接提高了網(wǎng)絡(luò)可靠性.
3.1.2 電導(dǎo)率因素影響下的實(shí)際水域環(huán)境仿真
海水的電導(dǎo)率隨海水溫度、 壓力和鹽度等因素的改變而變化, 電導(dǎo)率變化會對水下電場通信產(chǎn)生影響. 為客觀地展現(xiàn)本文算法在該因素影響下的有效性, 在圖5(A)中設(shè)定電導(dǎo)率的影響區(qū)域, 以此模擬實(shí)際環(huán)境中的干擾因素, 如圖5(E)所示, 其中將陰影部分的電導(dǎo)率設(shè)為其余空白部分的1.2倍, 電導(dǎo)率的影響將會反映在節(jié)點(diǎn)間通信時(shí)間的相對改變上. 將電導(dǎo)率影響前后的網(wǎng)絡(luò)拓?fù)鋱D5(B)和圖5(F)進(jìn)行對比可見, 魚群的網(wǎng)絡(luò)拓?fù)浒l(fā)生了變化, 節(jié)點(diǎn)角色也發(fā)生了相應(yīng)的改變. 表明在實(shí)際水域環(huán)境發(fā)生變化的情況下, 本文算法能保持相對穩(wěn)定, 有一定的實(shí)用性.
圖5 MATLAB仿真拓?fù)銯ig.5 MATLAB simulation topology
下面用NS-2軟件對本文算法的網(wǎng)絡(luò)性能指標(biāo)進(jìn)行分析. AODV是應(yīng)用于無線隨意網(wǎng)絡(luò)中進(jìn)行路由選擇的路由協(xié)議, 能實(shí)現(xiàn)單播和多播路由, 是Ad Hoc網(wǎng)絡(luò)中按需生成路由方式的典型協(xié)議. 實(shí)驗(yàn)中通過測量AODV和本文算法在應(yīng)用中的吞吐量、 分組投遞率和平均端到端時(shí)延3個(gè)指標(biāo)衡量本文算法的網(wǎng)絡(luò)性能. 實(shí)驗(yàn)中的所有指標(biāo)均經(jīng)過10次計(jì)算取平均值, 仿真參數(shù)列于表1.
表1 網(wǎng)絡(luò)仿真參數(shù)Table 1 Network simulation parameters
3.2.1 吞吐量
吞吐量定義為整個(gè)數(shù)據(jù)傳輸期間節(jié)點(diǎn)接收并轉(zhuǎn)發(fā)的數(shù)據(jù)包總數(shù), 是協(xié)議有效性的度量[17]. 如圖6所示, 隨著節(jié)點(diǎn)數(shù)量的增加, 吞吐量逐步上升; 當(dāng)節(jié)點(diǎn)增長到一定數(shù)量后, 吞吐量增長速度減緩. 由于本文算法初期需要選舉主備節(jié)點(diǎn), 會增加額外的數(shù)據(jù)包, 但隨著網(wǎng)絡(luò)收斂, 吞吐量明顯降低. 與AODV相比, 當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量約大于40時(shí), 整體吞吐量更低.
圖6 吞吐量隨節(jié)點(diǎn)數(shù)量的變化曲線Fig.6 Change curves of throughput with number of nodes
3.2.2 分組投遞率
分組投遞率反應(yīng)網(wǎng)絡(luò)支持的最大吞吐量, 表明路由協(xié)議的完整性、 正確性和適應(yīng)網(wǎng)絡(luò)變化的能力, 是衡量協(xié)議效率的重要指標(biāo)[17-18], 其計(jì)算公式為
(3)
其中Rni為節(jié)點(diǎn)i成功接收的報(bào)文數(shù), Sni為節(jié)點(diǎn)i成功發(fā)送的報(bào)文數(shù).
本文算法和AODV的分組投遞率比較如圖7所示. 由圖7可見: 初期網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量較少, 通信數(shù)據(jù)不多, 分組投遞率接近1; 后期隨著節(jié)點(diǎn)的增加, 通信隊(duì)列逐漸達(dá)到上限, 分組投遞率下降; 隨著節(jié)點(diǎn)數(shù)量的增加, 本文算法的分組投遞率高于AODV.
圖7 兩種算法的分組投遞率比較Fig.7 Comparison of packet delivery ratios of two algorithms
3.2.3 平均端到端時(shí)延
平均端到端時(shí)延包含所有延時(shí), 如發(fā)送緩沖器等待時(shí)間、 接口隊(duì)列排隊(duì)時(shí)間、 MAC層重傳時(shí)間[18], 其計(jì)算公式為
(4)
其中N為成功傳輸?shù)臄?shù)據(jù)報(bào)文總數(shù), Rti為第i個(gè)報(bào)文的接收時(shí)間, Sti為第i個(gè)報(bào)文的發(fā)送時(shí)間.
本文算法和AODV的平均端到端時(shí)延如圖8所示. 網(wǎng)絡(luò)節(jié)點(diǎn)越多, 時(shí)延越大. 由于在選擇鏈路時(shí)本文算法和AODV都考慮了節(jié)點(diǎn)負(fù)載, 將節(jié)點(diǎn)負(fù)載作為影響因素納入節(jié)點(diǎn)穩(wěn)定度的計(jì)算中, 因而在節(jié)點(diǎn)個(gè)數(shù)較少時(shí), 能選擇到穩(wěn)定且負(fù)載低的鏈路進(jìn)行數(shù)據(jù)傳輸, 減少排隊(duì)時(shí)間, 降低端到端時(shí)延; 而當(dāng)節(jié)點(diǎn)個(gè)數(shù)持續(xù)增加時(shí), 可選路徑較多, 節(jié)點(diǎn)負(fù)載普遍降低, 節(jié)點(diǎn)負(fù)載對鏈路穩(wěn)定的影響力下降, 平均端到端時(shí)延上升. 本文算法在通信前需要進(jìn)行主備節(jié)點(diǎn)的選舉, 占用了信道, 增加了數(shù)據(jù)傳輸?shù)臅r(shí)間. 節(jié)點(diǎn)數(shù)量較少時(shí), 端到端時(shí)延要比AODV更大. 隨著節(jié)點(diǎn)增加, 本文算法通過主備節(jié)點(diǎn)調(diào)節(jié), 能降低時(shí)延的增長速率.
圖8 兩種算法的平均端到端時(shí)延比較Fig.8 Comparison of average end-to-end delay of two algorithms
綜上所述, 本文設(shè)計(jì)了一種考慮實(shí)際水域電導(dǎo)率影響的水下電場通信的仿生魚群自組網(wǎng)算法. 該算法基于通信時(shí)間計(jì)算節(jié)點(diǎn)優(yōu)先級, 能快速生成水下集群協(xié)作通信模型, 實(shí)現(xiàn)小規(guī)模仿生魚群組網(wǎng). 自主巡航功能及核心備份機(jī)制的設(shè)定, 不但能實(shí)現(xiàn)群體失散節(jié)點(diǎn)的尋回功能, 而且間接優(yōu)化了網(wǎng)絡(luò)協(xié)作模型, 減少了網(wǎng)絡(luò)節(jié)點(diǎn)間的路由維護(hù)信息, 有效節(jié)約網(wǎng)絡(luò)能耗的同時(shí)增強(qiáng)了系統(tǒng)的安全性.