基于K-means聚類和蟻群算法的多級異構(gòu)無線傳感器網(wǎng)絡(luò)分簇路由方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)路由協(xié)議,具體涉及多級異構(gòu)環(huán)境下的無線傳感器網(wǎng)絡(luò)分簇路由 方法。
【背景技術(shù)】
[0002] 無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks, WSNs)由大量隨機分布在監(jiān)測區(qū)域 內(nèi)的傳感器節(jié)點和基站組成,已廣泛應(yīng)用于國防安全、工業(yè)控制、環(huán)境監(jiān)測、搶險救災(zāi)和科 學(xué)探索等方面,根據(jù)節(jié)點不同的感測能力、通信能力、計算能力和初始能量,可以分為異構(gòu) 網(wǎng)絡(luò)和同構(gòu)網(wǎng)絡(luò)兩種,異構(gòu)網(wǎng)絡(luò)由多種不同性能的節(jié)點組成;同構(gòu)網(wǎng)絡(luò)則由相同性能的節(jié) 點組成。傳感器節(jié)點通常采用電池供電且大多工作在環(huán)境惡劣或者人類不容易到達的地 方,因此無線傳感器網(wǎng)絡(luò)協(xié)議的首要目的是提高能量的利用效率。近年來,在研究人員提出 的大量新型路由協(xié)議中,層次型路由協(xié)議被公認為最適合于實際無線傳感網(wǎng)的應(yīng)用。其基 本思想是先將網(wǎng)絡(luò)劃分成多個簇域,每個簇域通常由一個簇首和若干成員節(jié)點組成,成員 節(jié)點負責采集數(shù)據(jù)并發(fā)送給簇首,簇首融合數(shù)據(jù)再發(fā)送到基站。
[0003] LEACH協(xié)議是一種低能耗自適應(yīng)分簇路由協(xié)議。在該協(xié)議中,先以循環(huán)的方式隨機 選擇簇首節(jié)點,每個傳感器節(jié)點再根據(jù)接收到的簇首信號強度,加入到信號最強的簇域;每 個簇由簇首節(jié)點負責收集所有成員節(jié)點的信息并做出相應(yīng)的處理,并由簇首負責協(xié)調(diào)成員 節(jié)點之間的工作。LEACH協(xié)議通過輪換簇首的方式使整個網(wǎng)絡(luò)的能耗平均分配到每個傳感 器節(jié)點上,達到延長網(wǎng)絡(luò)生存時間的目的,但該協(xié)議主要針對同構(gòu)網(wǎng)絡(luò),當運行到異構(gòu)網(wǎng)絡(luò) 中時,因傳感器節(jié)點性能存在差異而導(dǎo)致協(xié)議的性能大大降低。
[0004] SEP協(xié)議根據(jù)初始能量將網(wǎng)絡(luò)中的無線傳感器節(jié)點分為兩類,高級節(jié)點和普通節(jié) 點,高級節(jié)點的初始能量高于普通節(jié)點,并將節(jié)點的剩余能量和加權(quán)選擇概率作為簇首選 舉的依據(jù)。
[0005] DEEC協(xié)議是一種適合多級異構(gòu)網(wǎng)絡(luò)的分布式能量有效成簇協(xié)議。該協(xié)議充分考慮 了多級異構(gòu)網(wǎng)絡(luò)環(huán)境下,各個節(jié)點能量之間的差異性,通過所有節(jié)點輪流成為簇首達到均 勻消耗能量的目的,而選舉簇首節(jié)點的概率與節(jié)點當前剩余的能量直接相關(guān)。每個節(jié)點成 為簇首節(jié)點的輪數(shù)根據(jù)其初始能量和剩余能量的差別而不相同,即簇首輪轉(zhuǎn)周期適應(yīng)節(jié)點 的能量變化。具有較高初始能量和剩余能量的節(jié)點比低能量節(jié)點有更多的機會成為簇首節(jié) 點。DEEC協(xié)議通過采用這種考慮異構(gòu)節(jié)點配置的成簇算法來延長網(wǎng)絡(luò)的生存時間,特別是 網(wǎng)絡(luò)的穩(wěn)定周期。
[0006] 現(xiàn)有協(xié)議存在的問題:
[0007] 1)在成簇過程中通常采用先預(yù)測節(jié)點能量使用情況來計算節(jié)點的概率門限值與 節(jié)點自身產(chǎn)生的隨機數(shù)進行比較來確定簇首及建立簇域。通過隨機數(shù)與預(yù)測能量來選取 簇首和建立簇域的方式存在大量不確定的因素,從而導(dǎo)致簇首數(shù)量不穩(wěn)定和簇域分布不均 勻,使網(wǎng)絡(luò)能耗較大,降低了網(wǎng)絡(luò)的能量利用效率和生存時間。
[0008] 2)簇首與基站通信時使用單跳的方式,會使離基站較遠的簇首能量消耗過快;有 些協(xié)議采用了多跳方式,但由于路由選擇不恰當,限制了其降低能耗的效果。
【發(fā)明內(nèi)容】
[0009] 針對現(xiàn)有協(xié)議存在的問題,本發(fā)明提供一種基于K-means聚類和蟻群算法 (ant colony optimization,ACO)的多級異構(gòu)無線傳感器網(wǎng)絡(luò)分簇路由方法(K-means clustering and ACO optimal routing,即 KCA0R 協(xié)議)〇
[0010] 本發(fā)明的技術(shù)方案如下:
[0011] -種基于K-means聚類和蟻群算法的多級異構(gòu)無線傳感器網(wǎng)絡(luò)分簇路由方法,包 括:
[0012] 基于K-means聚類的無線傳感器網(wǎng)絡(luò)分簇;
[0013] 基于蟻群算法的無線傳感器網(wǎng)絡(luò)簇間路由選擇;
[0014] 在數(shù)據(jù)傳輸階段,簇首采用單跳和多跳相結(jié)合方式傳輸數(shù)據(jù),同時在數(shù)據(jù)傳輸?shù)?末輪,通過增加節(jié)點狀態(tài)包的方式,基站能夠完整掌握全網(wǎng)節(jié)點的實時狀態(tài)信息。
[0015] 所述的基于K-means聚類的無線傳感器網(wǎng)絡(luò)分簇方案,具體步驟如下:
[0016] (1)確定簇域數(shù)量:由DEEC協(xié)議的最優(yōu)簇首數(shù)量計算公式(1)確定無線傳感器網(wǎng) 絡(luò)中簇首的最優(yōu)個數(shù),作為網(wǎng)絡(luò)的最優(yōu)簇域數(shù)量K。
[0017]
(1 )
[0018] 其中,N為無線傳感器節(jié)點個數(shù),M為正方形監(jiān)測區(qū)域的邊長,dtoBS為簇首與基站 之間的平均距離, e #為無線傳感器發(fā)送數(shù)據(jù)時的能耗參數(shù);
[0019] (2)聚類算法分簇:從全網(wǎng)節(jié)點中隨機選取K個節(jié)點作為每個簇域的初始質(zhì)心,計 算其余節(jié)點與各初始質(zhì)心的距離,將節(jié)點劃分至最近的簇域中。更新所有簇域的質(zhì)心,并計 算K-means聚類算法的準則函數(shù),若不收斂,則對全網(wǎng)節(jié)點重新分簇,更新質(zhì)心,直至準則 函數(shù)收斂;
[0020] (3)均勾簇域負荷:確定算法的迭代次數(shù)NC_max,根據(jù)簇域最優(yōu)成員節(jié)點數(shù)量公 式⑵確定各個簇域的最優(yōu)成員節(jié)點數(shù)量Num。#。對成員節(jié)點數(shù)量小于Num。#的簇域進行 拆解,成員節(jié)點數(shù)量大于他111_的簇域進行拆分,直到算法的迭代次數(shù)達到NC_max ;
[0021]
(2,
[0022] (4)簇首選擇:對每個簇域內(nèi)的節(jié)點剩余能量值進行比較,選擇剩余能量值最大 的節(jié)點作為本簇域的簇首。
[0023] 所述的基于蟻群算法的無線傳感器網(wǎng)絡(luò)簇間路由選擇方案,具體步驟如下:
[0024] (1)根據(jù)各節(jié)點之間的距離長度確定每條路徑的啟發(fā)因子n,,設(shè)置算法的迭代 次數(shù)NC_max以及其他一些參數(shù);
[0025] (2)每個簇首產(chǎn)生k個探測分組,并將這些探測分組隨機發(fā)送至各個簇首,探測分 組每經(jīng)過一個簇首便將該簇首記錄到自己對應(yīng)的禁忌表中;
[0026] (3)每個探測分組依據(jù)概率公式(3)確定下一個待訪問的簇首,直至探測分組抵 達基站;
[0027]
[0028] to_visit = N~Tabuk (4)
[0029] 其中,N表示節(jié)點集合,Tabuk表示第k只蟻群已經(jīng)過的節(jié)點集合即禁忌表,to_ visit為待訪問的節(jié)點集合即候選集;t(t)表示t時刻路徑ij上的信息素量;n ^為路 徑ij的啟發(fā)因子,我們?nèi)」?jié)點i與j之間距離的倒數(shù);a、0分別表示每條路徑上信息素 和啟發(fā)因子的相對重要程度;
[0030] (4)待所有探測分組到達基站后,分別從每個簇首的探測分組中選出游歷路徑最 短的分組,對這些探測分組所經(jīng)過的路徑上的信息素進行更新;
[0031] (5)回到⑵繼續(xù)進行,直至算法的迭代次數(shù)達到NC_max。
[0032] 所述的在數(shù)據(jù)傳輸階段的步驟:在數(shù)據(jù)傳輸階段,每個簇域內(nèi)的成員節(jié)點按照各 自分配到的傳輸數(shù)據(jù)的時間點向簇首發(fā)送數(shù)據(jù);簇首根據(jù)與基站的距離確定其數(shù)據(jù)傳輸方 式(單跳或多跳);在數(shù)據(jù)傳輸?shù)哪┹?,每個節(jié)點在發(fā)送數(shù)據(jù)包的同時增加一個包含本節(jié)點 當前剩余能量、所屬簇域、ID號以及位置等信息的節(jié)點狀態(tài)包。
[0033] 本發(fā)明可以獲得如下有益效果:
[0034] (1)充分考慮各網(wǎng)絡(luò)節(jié)點能量的差異性,均衡網(wǎng)絡(luò)的能量消耗。
[0035] (2)提高能量的使用效率,延長網(wǎng)絡(luò)的生存時間。
[0036] (3)提高網(wǎng)絡(luò)的穩(wěn)定性。
【附圖說明】
[0037] 圖1是本發(fā)明無線傳感器網(wǎng)絡(luò)節(jié)點的隨機分布示例圖;
[0038] 圖2是本發(fā)明所述基于K-means聚類的無線傳感器網(wǎng)絡(luò)分簇方案的簇域分布圖;
[0039] 圖3是本發(fā)明所述基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由選擇方案的簇間最優(yōu)路 由圖;
[0040] 圖4是本發(fā)明所述的KCA0R協(xié)議與LEACH、SEP和DEEC協(xié)議的網(wǎng)絡(luò)生存時間對比 圖;
[0041] 圖5是本發(fā)明所述的KCA0R協(xié)議與LEACH、SEP和DEEC協(xié)議的網(wǎng)絡(luò)能量消耗對比 圖;
[0042] 圖6是本發(fā)明所述的KCA0R協(xié)議與LEACH、SEP和DEEC協(xié)議的數(shù)據(jù)包總數(shù)對比圖;
【具體實施方式】
[0043] 下面參照附圖和實施例對本發(fā)明做進一步的詳細描述。
[0044] 本發(fā)明提出的基于K-means聚