羅 劍,畢曉東
(浙江經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院數(shù)字信息技術(shù)學(xué)院,杭州310018)
無線傳感器網(wǎng)絡(luò)(WSNs),是由隨機(jī)投放在監(jiān)測區(qū)域內(nèi)的大量低成本且擁有傳感、計(jì)算、數(shù)據(jù)處理和通信能力的微型節(jié)點(diǎn)構(gòu)成的自組織網(wǎng)絡(luò),具有部署迅速、實(shí)時性強(qiáng)等優(yōu)點(diǎn)。通過感知、收集和融合目標(biāo)對象的觀測數(shù)據(jù),將預(yù)處理后的信息發(fā)送回基站,擴(kuò)展了人們洞悉外部世界的能力[1-2]。根據(jù)節(jié)點(diǎn)計(jì)算能力、內(nèi)存容量、通信帶寬和初始能量等的差異,WSNs可以分為同構(gòu)型WSNs和異構(gòu)型WSNs。因?yàn)橥饨绛h(huán)境的制約,傳感器節(jié)點(diǎn)通常由電池供電,自身攜帶能量有限,無法得到及時補(bǔ)充。僅初始能量不同的節(jié)點(diǎn)所組成的能量異構(gòu)型WSNs在維持網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量不變、降低成本開銷的前提下增加了網(wǎng)絡(luò)能量,特別具有研究價值[3]。
在傳感器節(jié)點(diǎn)中動態(tài)均衡地分配通信和計(jì)算負(fù)載、從而節(jié)約能耗是WSNs路由算法需要解決的關(guān)鍵問題,很大程度決定了整個網(wǎng)絡(luò)的生命周期[4-5]。分簇路由算法綜合考量節(jié)點(diǎn)發(fā)送、接收數(shù)據(jù)的固定能耗和跟隨傳輸距離遠(yuǎn)近改變的發(fā)送端無線功放能耗,將網(wǎng)絡(luò)劃分為若干本地簇,簇頭消耗額外能量負(fù)責(zé)從簇成員接收數(shù)據(jù)并發(fā)往基站。分簇結(jié)構(gòu)使得網(wǎng)絡(luò)整體擴(kuò)展性良好,相比節(jié)點(diǎn)與基站直接通信和節(jié)點(diǎn)間最小傳輸能量路由(MTE)性能更優(yōu),已經(jīng)成為WSNs路由算法的研究重心,得到國內(nèi)外學(xué)者的廣泛關(guān)注[6]。LEACH算法是最早提出的WSNs分簇路由算法,利用合適的閾值概率公式,保持網(wǎng)絡(luò)節(jié)點(diǎn)在運(yùn)行周期內(nèi)的各個輪次擁有同樣的競爭簇頭概率以平衡節(jié)點(diǎn)間能耗,但該算法只適用于節(jié)點(diǎn)初始能量相同的WSNs[7]。根據(jù)高級節(jié)點(diǎn)相對全體節(jié)點(diǎn)的數(shù)量占比和高級節(jié)點(diǎn)多于普通節(jié)點(diǎn)初始能量的比例,SEP算法修改閾值概率公式,按照初始能量的差異維持節(jié)點(diǎn)成比例地消耗能量,有效地延長了異構(gòu)WSNs的穩(wěn)定期(第1個節(jié)點(diǎn)死亡前)[8]。DEEC算法通過預(yù)測節(jié)點(diǎn)每個輪次的殘余能量,修正不同節(jié)點(diǎn)競爭簇頭的概率,比較SEP算法獲得了更長的網(wǎng)絡(luò)生命期[9]。
上述分布式隨機(jī)分簇算法無須了解節(jié)點(diǎn)的具體位置,本地化自適應(yīng)簇生成過程計(jì)算簡單,減少了網(wǎng)絡(luò)控制流量。然而隨機(jī)算法存在兩個問題:首先,每個輪次的簇頭數(shù)圍繞最優(yōu)簇頭數(shù)波動,加大了網(wǎng)絡(luò)通信負(fù)載;其次,隨機(jī)選擇的簇頭位置可能集中于局部區(qū)域,造成部分簇頭與成員間距離過遠(yuǎn),不利于平衡節(jié)點(diǎn)能耗。許多WSNs應(yīng)用中節(jié)點(diǎn)位置預(yù)知,如果依據(jù)最優(yōu)簇頭數(shù)采用聚類算法獲得更為緊密的本地簇,同時算法改進(jìn)減少的網(wǎng)絡(luò)能耗大于網(wǎng)絡(luò)控制包負(fù)載和聚類計(jì)算的多余能耗,完全可能大幅度地提升網(wǎng)絡(luò)能效。
螢火蟲算法是一種仿生螢火蟲個體的種群趨光性特征的群智能優(yōu)化算法,起初用于求解非線性數(shù)值優(yōu)化問題[10]。為了將該算法引入聚類分析領(lǐng)域,定義目標(biāo)函數(shù)為聚類中心與簇成員間距離和,目標(biāo)函數(shù)值越小螢火蟲亮度越高。使用UCI機(jī)器學(xué)習(xí)庫的13類典型基準(zhǔn)數(shù)據(jù)集與其他11種聚類算法進(jìn)行比較,結(jié)果表明螢火蟲算法擁有良好的整體性能[11]。該算法進(jìn)一步改善聚類效果、提高穩(wěn)定性和降低計(jì)算負(fù)載的研究,圍繞著螢火蟲移動位置的選取策略和最優(yōu)類中心擾動的快速收斂展開[12-13]。
綜上所述,本文提出的IFCEER算法的基本思路是:WSNs初始化階段節(jié)點(diǎn)將位置坐標(biāo)一次性發(fā)往基站,使用改進(jìn)螢火蟲算法完成對全體高能節(jié)點(diǎn)的第1次聚類。隨后運(yùn)行的每個輪次分為簇形成和數(shù)據(jù)傳輸兩個階段。簇形成階段向全網(wǎng)廣播主副簇頭消息,節(jié)點(diǎn)加入臨近的簇。數(shù)據(jù)傳輸階段簇頭接收和融合成員數(shù)據(jù),在事先規(guī)劃指定的TDMA時隙發(fā)往基站。同時,該階段根據(jù)閾值條件預(yù)測節(jié)點(diǎn)能量,決定是否重新執(zhí)行聚類。因此,網(wǎng)絡(luò)運(yùn)行第1輪之后簇形成階段只有在滿足任意簇頭能量小于指定閾值條件的輪次才會執(zhí)行,否則保持原有簇結(jié)構(gòu)。實(shí)驗(yàn)數(shù)據(jù)表明,提出的IFCEER算法平衡和降低了通信能耗,有效地延長了網(wǎng)絡(luò)壽命。
考慮n個節(jié)點(diǎn)隨機(jī)分布于M×M監(jiān)測區(qū)域的多跳傳感網(wǎng)絡(luò)。假定S為網(wǎng)絡(luò)內(nèi)全體傳感節(jié)點(diǎn)集合,如式(1)所示:
S={s1,…,si,…,sn}
(1)
式中,si表示第i個傳感節(jié)點(diǎn)。
多級能量異構(gòu)WSNs中節(jié)點(diǎn)初始能量在閉區(qū)間[E0,E0(1+αmax)]內(nèi)隨機(jī)分布,E0是節(jié)點(diǎn)能量下界,αmax決定了節(jié)點(diǎn)的最大能量。節(jié)點(diǎn)si的初始能量為E0(1+αi),其中αi∈[0,αmax]。因此,網(wǎng)絡(luò)的整體能量可以描述為式(2):
(2)
模型具有以下特點(diǎn):①基站位置固定于監(jiān)測區(qū)域中心,能量和計(jì)算資源不受限制,通信范圍覆蓋整個監(jiān)測區(qū)域。②節(jié)點(diǎn)擁有全網(wǎng)唯一的標(biāo)識ID,位置固定。③基站通過某些渠道,如節(jié)點(diǎn)裝備GPS等,了解每個節(jié)點(diǎn)的定位信息。④節(jié)點(diǎn)的發(fā)射功率以及通信半徑可以根據(jù)需要自動調(diào)整。⑤鏈路對稱,即已知發(fā)射端的發(fā)射功率,接收端可以根據(jù)接收到的信號強(qiáng)度估算兩者距離。⑥節(jié)點(diǎn)以固定速率監(jiān)測環(huán)境,定期上報(bào)監(jiān)測數(shù)據(jù)。
本文采用文獻(xiàn)[7]的能耗模型,即一階無線電模型。發(fā)射方能耗ETX(l,d) 、接收方能耗ERX(l)和數(shù)據(jù)融合能耗Ec的具體公式如式(3)~式(5):
ETX(l,d) =ETX-elec(l)+ETX-amp(l,d)
(3)
ERX(l)=ETX-elec(l)=lEelec
(4)
Ec=lEDA
(5)
假定在一個輪次內(nèi)每個簇成員發(fā)送l比特監(jiān)測數(shù)據(jù)和自身殘余能量等級到主簇頭,因?yàn)闅堄嗄芰空加脭?shù)據(jù)位遠(yuǎn)小于l比特,所以忽略不計(jì)。主簇頭將接收的全部信息融合成(1+φ)l比特信息包經(jīng)副簇頭發(fā)往基站。其中l(wèi)比特是融合的本地監(jiān)測數(shù)據(jù),φl比特包含簇全體節(jié)點(diǎn)殘余能量信息。根據(jù)前述能耗模型,得到每個輪次主簇頭能耗EMCH、副簇頭能耗EVCH和簇成員能耗EnonCH的相關(guān)公式如式(6)~式(8):
(6)
(7.1)
(7.2)
(8)
式中,k為簇?cái)?shù),dtoCH為簇成員與簇頭間的平均距離,dtoBS為簇頭與基站的平均距離,E[·]為期望值。由于簇頭和基站間距離可能較遠(yuǎn),式(7.1)對應(yīng)自由空間模型,式(7.2)對應(yīng)多路徑衰減模型。假設(shè)節(jié)點(diǎn)滿足均勻分布,則[8]:
(9)
(10)
式(10)是選擇采用自由空間模型或者多路徑衰減模型的依據(jù),同理計(jì)算得到:
(11)
(12)
在一個輪次內(nèi)簇消耗能量如下:
(13)
因?yàn)閗≤n,所以一個輪次內(nèi)網(wǎng)絡(luò)消耗的全部能量Eround近似于:
(14.1)
(14.2)
式(14.1)對應(yīng)自由空間模型,式(14.2)對應(yīng)多路徑衰減模型,兩公式分別對k求導(dǎo)數(shù),得到不同模型下最優(yōu)簇頭數(shù)kopt公式如式(15.1)和(15.2)所示:
(15.1)
(15.2)
(16)
(17)
式中,nj是Gj中節(jié)點(diǎn)sj的個數(shù)。
(18)
亮度值的大小體現(xiàn)了螢火蟲所處位置的優(yōu)劣,目標(biāo)函數(shù)值越小,螢火蟲亮度越高。如果螢火蟲F的亮度大于螢火蟲Q,那么Q將被F吸引,即Q的kopt個分量一一對應(yīng)地向F的kopt個分量所指示的方向移動。兩個螢火蟲分量的匹配規(guī)則是兩兩之間距離最近,假設(shè)Q中第i個分量qi與F的第j個分量fj之間距離rij小于與F的其他分量的距離,則qi向fj指示的方向移動。由于初始位置選取的隨機(jī)性,兩個螢火蟲分量間的對應(yīng)關(guān)系可能不具備充分的辨識度,如圖1所示。螢火蟲Q的#4分量與螢火蟲F的#5分量距離更近,但是因?yàn)榇嬖赒的#5分量,所以Q的#4分量只能和F的#4分量對應(yīng)。當(dāng)kopt增加時,這種隨機(jī)匹配的概率同步增加。基于上述原因,算法依次從兩個螢火蟲的分量集合中查找距離最近的點(diǎn)對完成匹配,以維護(hù)合適的對應(yīng)關(guān)系。
圖1 螢火蟲分量的對應(yīng)關(guān)系
螢火蟲彼此間吸引度公式為:
(19)
式中,β0為最大吸引度,γ為光強(qiáng)吸收系數(shù)。
螢火蟲Q向F移動的位置更新公式如式(20)所示:
(20)
經(jīng)過螢火蟲之間互相吸引和移動之后得到的本次迭代最亮螢火蟲,按照式(21)進(jìn)行最優(yōu)類中心擾動,評估再次移動效果。如果亮度優(yōu)于移動前,則移動到新位置;否則保持原來位置不變。
(21)
螢火蟲算法的參數(shù)適用于標(biāo)準(zhǔn)化數(shù)據(jù),所以需要對節(jié)點(diǎn)集合S進(jìn)行標(biāo)準(zhǔn)化和歸一化處理,標(biāo)準(zhǔn)化處理公式由式(22)列出:
(22)
改進(jìn)螢火蟲聚類算法的主要步驟可以描述為:
步驟1 輸入?yún)?shù)。傳感節(jié)點(diǎn)集合S,最優(yōu)聚類數(shù)Kopt,螢火蟲群體規(guī)模N,最大吸引度β0,光強(qiáng)吸收系數(shù)γ,步長因子α,最大迭代次數(shù)τmax。
步驟2 根據(jù)式(22)標(biāo)準(zhǔn)化集合S;執(zhí)行N次隨機(jī)選擇Kopt個節(jié)點(diǎn)作為螢火蟲個體位置的操作,初始化全體螢火蟲。
步驟3 由式(17)生成螢火蟲各個分量對應(yīng)的Kopt個聚類中心,根據(jù)式(16)計(jì)算螢火蟲種群目標(biāo)函數(shù)。
步驟4 將螢火蟲按照亮度由低到高排序,從亮度最低的螢火蟲開始兩兩比較,執(zhí)行次數(shù)為N×N。如果Ii 步驟5 最亮螢火蟲根據(jù)式(21)圍繞其聚類中心擾動。如果得到的目標(biāo)函數(shù)小于擾動前,則移動到新位置;否則保持原位置不變。 步驟6 達(dá)到最大迭代次數(shù)τmax停止算法,否則轉(zhuǎn)到步驟3。 步驟7 輸出最亮螢火蟲V。 IFCEER算法支持周期性地遠(yuǎn)程監(jiān)測WSNs,網(wǎng)絡(luò)按照運(yùn)行時序劃分為若干輪次(round),每輪由兩個部分組成:簇形成階段和數(shù)據(jù)傳輸階段,網(wǎng)絡(luò)初始化還包括一個獨(dú)立的信息收集階段,如圖2所示,T1?T2。在每個輪次內(nèi)產(chǎn)生分簇并傳輸數(shù)據(jù),網(wǎng)絡(luò)經(jīng)歷的輪次越多,說明網(wǎng)絡(luò)運(yùn)行時間越長,即網(wǎng)絡(luò)壽命越大。 圖2 IFCEER算法運(yùn)行時序 2.2.1 信息收集階段 (23) 參照式(15.1)或者式(15.2)確定最優(yōu)簇?cái)?shù)Kopt,對全體高能節(jié)點(diǎn)集合SHN運(yùn)行改進(jìn)螢火蟲聚類算法,得到全局最優(yōu)簇集合。 2.2.2 簇形成階段 在每個簇中,選擇距離簇聚類中心最近的節(jié)點(diǎn)作為簇內(nèi)通信的主簇頭(MCH),選擇距離基站最近的節(jié)點(diǎn)作為與基站通信的副簇頭(VCH)。主副簇頭策略平衡了簇內(nèi)負(fù)載,縮短了通信距離[15]?;鞠蛉W(wǎng)廣播簇頭消息CH_stat_Msg(MCH_ID,VCH_ID),全體節(jié)點(diǎn)接收到該消息后,副簇頭根據(jù)指定的主簇頭加入簇,其他節(jié)點(diǎn)的入簇機(jī)制與LEACH算法相同[7]。 圖3 IFCEER算法流程 2.2.3 數(shù)據(jù)傳輸階段 (24) 因此,聚類只在當(dāng)前簇頭預(yù)測能量低于閾值Eth或者有節(jié)點(diǎn)死亡的少數(shù)輪次才會執(zhí)行,從而盡可能地減少網(wǎng)絡(luò)通信負(fù)載和計(jì)算延時,增強(qiáng)魯棒性和適用性,IFCEER算法流程如圖3所示。另外,一次聚類之后,沒有采用在簇內(nèi)高能節(jié)點(diǎn)間輪轉(zhuǎn)(rotate)生成簇頭來避免再次聚類的策略,主要基于三點(diǎn)考慮:①保留讓外部節(jié)點(diǎn)加入網(wǎng)絡(luò)的機(jī)會;②再次聚類可以動態(tài)尋找位置更優(yōu)的簇頭;③聚類計(jì)算由基站在時間充裕的數(shù)據(jù)傳輸階段完成,鑒于基站強(qiáng)大的計(jì)算能力,不會影響網(wǎng)絡(luò)整體性能。 為了評估IFCEER算法性能,使用MATLAB軟件搭建仿真平臺,完成兩步實(shí)驗(yàn)。首先,分析改進(jìn)螢火蟲聚類算法的精度和收斂性;其次,從生命期、傳輸數(shù)據(jù)包、能耗、重新聚類次數(shù)占比等指標(biāo)考量算法的網(wǎng)絡(luò)性能。根據(jù)節(jié)點(diǎn)傳輸數(shù)據(jù)方式的不同設(shè)立了兩組實(shí)驗(yàn)數(shù)據(jù),分別是自由空間模型主導(dǎo)的100 m×100 m監(jiān)測環(huán)境,以及多路徑衰減模型主導(dǎo)的300 m×300 m監(jiān)測環(huán)境,傳感節(jié)點(diǎn)隨機(jī)分布在監(jiān)測區(qū)域。 聚類實(shí)驗(yàn)用于比較本文提出的改進(jìn)螢火蟲聚類算法IFA、螢火蟲聚類算法FA和K-means聚類算法的性能指標(biāo)[11,14],兩種螢火蟲算法的初始聚類中心保持一致,計(jì)算參數(shù)N=15,β0=1,γ=0.8,α=0.06。圖4顯示了在100 m×100 m數(shù)據(jù)集上3種算法聚類的收斂曲線,總迭代次數(shù)為20次,運(yùn)行30次取平均值,得到IFA算法最優(yōu)目標(biāo)函數(shù)值JC=36.92,FA算法最優(yōu)目標(biāo)函數(shù)值JC=37.90,K-means算法最優(yōu)目標(biāo)函數(shù)值JC=39.21。因此,IFA算法的精度最高。IFA算法、FA算法和K-means算法達(dá)到最優(yōu)目標(biāo)函數(shù)值的平均迭代次數(shù)分別為9次、7次和16次。比較而言,K-means算法容易收斂于局部次優(yōu)解,穩(wěn)定性最差。IFA算法和FA算法收斂性基本一致,因?yàn)镮FA算法引入了最優(yōu)類中心擾動,所以迭代次數(shù)相比無擾動的FA算法略有增加。 圖4 100 m×100 m數(shù)據(jù)集聚類收斂曲線 為了直觀地對比聚類效果,圖5中繪制了3種算法聚類后節(jié)點(diǎn)分布的隸屬情況。圖5(a)是IFA算法的簇結(jié)構(gòu)圖和聚類中心分布圖,圖5(b)是FA算法的簇結(jié)構(gòu)圖和聚類中心分布圖,圖5(c)是K-means算法的簇結(jié)構(gòu)圖和聚類中心分布圖,圖中O代表聚類中心。由圖5可得,IFA算法簇劃分更為均勻,簇內(nèi)節(jié)點(diǎn)間的距離更接近,聚類效果優(yōu)于其他兩種算法。 圖5 3種算法的聚類效果 網(wǎng)絡(luò)實(shí)驗(yàn)在多級能量異構(gòu)WSNs環(huán)境下比較IFCEER算法與DEEC算法性能。仿真實(shí)驗(yàn)參數(shù)如表1所示,其他參數(shù)與聚類實(shí)驗(yàn)相同。100 m×100 m監(jiān)測環(huán)境的最優(yōu)簇頭數(shù)Kopt參照自由空間模型計(jì)算公式(15.1)得到;300 m×300 m監(jiān)測環(huán)境的最優(yōu)簇頭數(shù)Kopt大于多路徑衰減模型公式(15.2)的計(jì)算結(jié)果,是為了避免過多減少簇頭使得簇內(nèi)節(jié)點(diǎn)間距離增加甚至超過d0的情況大量出現(xiàn)。在網(wǎng)絡(luò)穩(wěn)定期,簇頭數(shù)量等于最優(yōu)簇頭數(shù)Kopt;當(dāng)節(jié)點(diǎn)大量死亡后,如果具備競爭簇頭能力的高能節(jié)點(diǎn)的數(shù)量小于最優(yōu)簇頭數(shù)Kopt,則這些高能節(jié)點(diǎn)都成為簇頭,以盡可能保持網(wǎng)絡(luò)的連通??刂茢?shù)據(jù)包攜帶了節(jié)點(diǎn)殘余能量等級等信息。 表1 仿真參數(shù) 圖6是存活節(jié)點(diǎn)圖,反映了隨時間關(guān)系網(wǎng)絡(luò)中存活的節(jié)點(diǎn)個數(shù)。 圖6 網(wǎng)絡(luò)中剩余的存活節(jié)點(diǎn)數(shù) 圖6(a)100 m×100 m監(jiān)測環(huán)境 IFCEER 算法和DEEC算法分別在706輪和497輪出現(xiàn)節(jié)點(diǎn)死亡,在712輪和662輪有50%節(jié)點(diǎn)死亡,在716輪和775輪有90%節(jié)點(diǎn)死亡。圖6(b)300 m×300 m監(jiān)測環(huán)境IFCEER算法和DEEC算法分別在260輪和80輪出現(xiàn)節(jié)點(diǎn)死亡,在520輪和171輪有50%節(jié)點(diǎn)死亡,在548輪和442輪有90%節(jié)點(diǎn)死亡??梢钥吹?圖6(a)中IFCEER算法的曲線幾乎是一條垂直于y軸的直線。由于IFCEER算法引入了預(yù)測能量閾值,只有大于該閾值的高能節(jié)點(diǎn)具備競爭簇頭的資格,網(wǎng)絡(luò)能耗被均勻地分布到異構(gòu)網(wǎng)的每個節(jié)點(diǎn)上,因此第1個節(jié)點(diǎn)和最后一個節(jié)點(diǎn)的死亡時間非常接近。圖6(b)300 m×300 m監(jiān)測環(huán)境簇內(nèi)節(jié)點(diǎn)間距離大幅增加,副簇頭與基站平均距離大于d0,可以反映算法在惡劣條件下的性能表現(xiàn)。IFCEER算法大部分節(jié)點(diǎn)在450輪之后才開始死亡,而DEEC算法在80輪之后節(jié)點(diǎn)就迅速死亡,網(wǎng)絡(luò)性能下降嚴(yán)重。體現(xiàn)出改進(jìn)螢火蟲聚類對比隨機(jī)聚類在尋找緊密簇結(jié)構(gòu)、生成全局最優(yōu)簇方面的優(yōu)越性,而且主副簇頭機(jī)制進(jìn)一步均衡了網(wǎng)絡(luò)能耗。從圖6可以看到,與DEEC算法比較第1個節(jié)點(diǎn)死亡時間,IFCEER算法在100 m×100 m和300 m×300 m監(jiān)測環(huán)境使得網(wǎng)絡(luò)壽命分別提高了43%和225%。更長的網(wǎng)絡(luò)生命期意味著更多的傳輸數(shù)據(jù),如圖7所示,DEEC算法在100 m×100 m監(jiān)測環(huán)境網(wǎng)絡(luò)整體傳輸了67 231個數(shù)據(jù)包,在300 m×300 m監(jiān)測環(huán)境傳輸了23 923個數(shù)據(jù)包;而IFCEER算法分別為75 026和51 769,效果提升明顯。 圖8展示了網(wǎng)絡(luò)總體能量隨時間的消耗情況。兩組實(shí)驗(yàn)環(huán)境中IFCEER算法網(wǎng)絡(luò)生命期能耗曲線的斜率幾乎保持不變,均低于DEEC算法的能耗曲線,IFCEER算法的性能表現(xiàn)為更節(jié)約能量。 圖7 網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量 圖8 網(wǎng)絡(luò)總體能耗 由表1可知,自由空間模型100 m×100 m監(jiān)測環(huán)境的能量消耗中接收和發(fā)送數(shù)據(jù)的電路固定能耗占比較大,因此IFCEER算法的優(yōu)勢更多地體現(xiàn)在節(jié)點(diǎn)間能耗的均勻分配,從而推遲節(jié)點(diǎn)的平均死亡時間。多路徑衰減模型300 m×300 m監(jiān)測環(huán)境的消耗能量中隨傳輸距離改變的無線功放能耗占據(jù)主導(dǎo)地位,造成經(jīng)過全局最優(yōu)聚類獲得緊密簇結(jié)構(gòu)的IFCEER算法的能耗顯著低于DEEC算法。表2是兩種算法的能耗統(tǒng)計(jì),與經(jīng)典DEEC算法相比,隨著節(jié)點(diǎn)間傳輸距離的增加,本文采用的IFCEER算法有效減少了網(wǎng)絡(luò)的總體能量消耗,網(wǎng)絡(luò)性能得到了很大的提高。 表2 兩種算法的能耗統(tǒng)計(jì) 根據(jù)式(24),通過比較全體簇頭的下一輪預(yù)測殘余能量與閾值能量的大小決定網(wǎng)絡(luò)運(yùn)行過程是否重新聚類,簇形成階段執(zhí)行的次數(shù)與重新聚類的次數(shù)相當(dāng)。因此,重新聚類次數(shù)越少,網(wǎng)絡(luò)通信負(fù)載越低。IFCEER算法默認(rèn)有節(jié)點(diǎn)死亡的輪次都會重新聚類,所以僅統(tǒng)計(jì)網(wǎng)絡(luò)穩(wěn)定期所有輪次對應(yīng)的重新聚類次數(shù)。仿真運(yùn)行20次得到的100 m×100 m監(jiān)測環(huán)境數(shù)據(jù)如表3,結(jié)果表明只有約29.5%的輪次需要重新聚類,有效地減少了網(wǎng)絡(luò)控制包數(shù)量。 表3 IFCEER算法重新聚類次數(shù) 本文提出基于改進(jìn)螢火蟲聚類的異構(gòu)WSNs能耗優(yōu)化路由算法IFCEER,算法通過改進(jìn)螢火蟲聚類算法對全體高能節(jié)點(diǎn)進(jìn)行預(yù)測分簇,在簇內(nèi)選擇與聚類中心和基站臨近的高能節(jié)點(diǎn)作為主副簇頭,形成結(jié)構(gòu)緊密的全局最優(yōu)簇集合,只有大于指定殘余能量閾值的節(jié)點(diǎn)具備持續(xù)競爭簇頭的資格。利用上述策略,較好地平衡了網(wǎng)絡(luò)的能量負(fù)載,降低了網(wǎng)絡(luò)能耗,從而達(dá)到延長網(wǎng)絡(luò)生命期的效果,仿真實(shí)驗(yàn)證明IFCEER算法擁有可觀的性能提升。后續(xù)研究圍繞3個方面開展:①綜合節(jié)點(diǎn)距離、殘余能量等因素拓寬螢火蟲聚類算法中目標(biāo)函數(shù)的定義,使得聚類結(jié)果更深刻地反映網(wǎng)絡(luò)變化情況,簡化后續(xù)執(zhí)行步驟;②在節(jié)點(diǎn)死亡后動態(tài)增加新節(jié)點(diǎn)可以持續(xù)保持網(wǎng)絡(luò)的通信能力[16],注入新節(jié)點(diǎn)的策略值得深入研究;③大規(guī)模WSNs基站和簇頭相距遙遠(yuǎn),需要采用簇間多跳方式解決遠(yuǎn)距離數(shù)據(jù)傳輸問題。利用IFCEER算法為基礎(chǔ),開發(fā)相應(yīng)的新算法是可行之道。2.2 算法實(shí)現(xiàn)
3 仿真與結(jié)果分析
3.1 聚類仿真實(shí)驗(yàn)
3.2 網(wǎng)絡(luò)仿真實(shí)驗(yàn)
4 結(jié)束語