專利名稱:一種能量高效的無線傳感器網(wǎng)絡(luò)路由方法
技術(shù)領(lǐng)域:
本發(fā)明屬于無線傳感器網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體是利用生物學(xué)中蟻群算法的基本原理, 提出一種能量高效的無線傳感器網(wǎng)絡(luò)(WSN)路由協(xié)議,解決資源受限的無線傳感器網(wǎng)絡(luò)的 高效路由問題,此路由協(xié)議適合于分層的無線傳感器網(wǎng)絡(luò)。在數(shù)據(jù)傳輸過程中,應(yīng)用此路由 協(xié)議能夠減少無線傳感器網(wǎng)絡(luò)的能量消耗,平衡網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)之間的能量消耗,防止部分節(jié) 點(diǎn)因能量消耗過快而死亡,延長(zhǎng)網(wǎng)絡(luò)的生命周期。
背景技術(shù):
短距離無線通信、微電子與傳感器技術(shù)的發(fā)展使得傳感器網(wǎng)絡(luò)技術(shù)取得了巨大的進(jìn)步。 傳感器信息獲取技術(shù)已經(jīng)從過去的單一化漸漸向集成化、微型化和網(wǎng)絡(luò)化方向發(fā)展,并帶來 一場(chǎng)新的信息技術(shù)革命。無線傳感器網(wǎng)絡(luò)是由多學(xué)科高度交叉而形成的新興前沿研究熱點(diǎn)領(lǐng) 域,其綜合了傳感器技術(shù)、嵌入式計(jì)算技術(shù)、無線通信技術(shù)、分布式信息處理技術(shù)等。傳感 器網(wǎng)絡(luò)通過各類集成化的微型傳感器協(xié)作地實(shí)時(shí)監(jiān)測(cè)、感知、采集和處理各種環(huán)境或監(jiān)測(cè)對(duì) 象的信息傳感器節(jié)點(diǎn)自組成網(wǎng),以多跳中繼方式將所感知信息傳送到用戶終端,從而真正 實(shí)現(xiàn)"無處不在的計(jì)算"。
無線傳感器網(wǎng)絡(luò)可以用于監(jiān)控溫度、濕度、壓力、土壤構(gòu)成、噪聲、機(jī)械應(yīng)力等多種環(huán) 境參數(shù),使用戶可以深入的了解和把握周圍的環(huán)境信息。無線傳感器網(wǎng)絡(luò)的隨機(jī)部署、自組 織、環(huán)境適應(yīng)性等特點(diǎn)使其在軍事國防、環(huán)境監(jiān)測(cè)、生物醫(yī)療、搶險(xiǎn)救災(zāi)以及商業(yè)應(yīng)用等領(lǐng) 域具有廣闊的應(yīng)用前景和較高的應(yīng)用價(jià)值。另外,在空間搜索和災(zāi)難拯救等特殊領(lǐng)域,無線 傳感器網(wǎng)絡(luò)也有其得天獨(dú)厚的技術(shù)優(yōu)勢(shì)。
在無線傳感器網(wǎng)絡(luò)中,存在一個(gè)或多個(gè)節(jié)點(diǎn)充當(dāng)數(shù)據(jù)匯聚點(diǎn)(Sink節(jié)點(diǎn)),網(wǎng)絡(luò)中傳感器 節(jié)點(diǎn)收集數(shù)據(jù),并通過多跳的方式傳送到Sink節(jié)點(diǎn),Sink節(jié)點(diǎn)將收集到的數(shù)據(jù)通過有線或無 線的方式傳送給用戶。在通信方式上,無線電、紅外、聲波等多種無線通信技術(shù)的發(fā)展為傳 感器間通信提供了多種選擇,尤其是以IEEE802.15.4為代表的短距離無線電通信標(biāo)準(zhǔn)的出現(xiàn), 為無線傳感器網(wǎng)絡(luò)的發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
路由技術(shù)是無線傳感器網(wǎng)絡(luò)的核心技術(shù)。從路由的角度看,無線傳感器網(wǎng)絡(luò)有其自身的 特點(diǎn),既不同于傳統(tǒng)網(wǎng)絡(luò),又不同于移動(dòng)自組網(wǎng)(Mobile Ad hoc Network, MANET)。與傳 統(tǒng)無線網(wǎng)絡(luò)相比,無線傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)、編址方法和通信協(xié)議不同于Internet;傳感器網(wǎng) 絡(luò)路由協(xié)議面向多到一的數(shù)據(jù)流和一到多的控制流,而非任意源和目的對(duì)之間的數(shù)據(jù)傳輸; 傳輸過程中采用數(shù)據(jù)融合方式,其路由以數(shù)據(jù)而非報(bào)文為中心;節(jié)點(diǎn)的移動(dòng)性較低,但由于 節(jié)點(diǎn)死亡、新節(jié)點(diǎn)加入以及節(jié)點(diǎn)睡眠和活動(dòng)狀態(tài)切換使得網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化。與Adhoc網(wǎng)絡(luò) 相比,無線傳感器網(wǎng)絡(luò)的移動(dòng)性較弱,但能量約束更強(qiáng),節(jié)點(diǎn)更容易死亡。無線傳感器網(wǎng)絡(luò) 路由協(xié)議設(shè)計(jì)的主要優(yōu)化目標(biāo)是減少能量消耗和保持節(jié)點(diǎn)能量消耗均衡,提高網(wǎng)絡(luò)生命周期。
傳統(tǒng)的無線網(wǎng)絡(luò)路由協(xié)議的設(shè)計(jì)以避免網(wǎng)絡(luò)擁塞、保持網(wǎng)絡(luò)的連通性和提高網(wǎng)絡(luò)服務(wù)質(zhì) 量為主要目標(biāo)。在路由實(shí)現(xiàn)中,首先利用網(wǎng)絡(luò)層定義的邏輯上地址來區(qū)別不同節(jié)點(diǎn)以便實(shí)現(xiàn) 數(shù)據(jù)交換,然后通過路由選擇算法決定到達(dá)目的地的最佳路徑。與傳統(tǒng)無線網(wǎng)絡(luò)相比,雖然 WSN具有與無線自組織網(wǎng)絡(luò)相似的特征,但在網(wǎng)絡(luò)特點(diǎn)、通信模型和數(shù)據(jù)傳輸需求方面卻與 傳統(tǒng)無線網(wǎng)絡(luò)有著很大不同。這主要表現(xiàn)在
(1) 無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)能量受限,網(wǎng)絡(luò)中的每個(gè)操作、計(jì)算以及相互間的通信都會(huì)消 耗電池能量, 一旦某些節(jié)點(diǎn)特別是一些關(guān)鍵節(jié)點(diǎn)因能量耗盡而死亡,將會(huì)影響到整個(gè)網(wǎng)絡(luò)的 連通性以及整個(gè)監(jiān)測(cè)任務(wù)的順利進(jìn)行。
(2) 無線傳感器網(wǎng)絡(luò)是以數(shù)據(jù)為中心的網(wǎng)絡(luò)。傳感器網(wǎng)絡(luò)是任務(wù)型網(wǎng)絡(luò),節(jié)點(diǎn)數(shù)量大, 且隨機(jī)分布,每個(gè)傳感器節(jié)點(diǎn)沒有全局唯一的標(biāo)識(shí)或地址。
(3) 無線傳感器網(wǎng)絡(luò)相鄰節(jié)點(diǎn)的數(shù)據(jù)存在信息冗余,需要采用一定的信息融合來減少數(shù) 據(jù)發(fā)送量,節(jié)省網(wǎng)絡(luò)資源。
(4) 頻繁變化的拓?fù)浣Y(jié)構(gòu)。傳感器節(jié)點(diǎn)因能量消耗或者人為破壞而死亡,新節(jié)點(diǎn)的加入, 節(jié)點(diǎn)在睡眠與工作狀態(tài)之間切換,部分節(jié)點(diǎn)的移動(dòng)等因素使得網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)頻繁變化。
(5) 在無線傳感器網(wǎng)絡(luò)中,傳感器節(jié)點(diǎn)和物理環(huán)境交互密切,WSN的通信構(gòu)架及其所提 供的服務(wù)都是針對(duì)每個(gè)特定的應(yīng)用而設(shè)計(jì)的。WSN數(shù)據(jù)在傳輸過程中,中間傳感器節(jié)點(diǎn)需要 針對(duì)特定應(yīng)用,對(duì)來自其他節(jié)點(diǎn)的轉(zhuǎn)發(fā)數(shù)據(jù)以及自身采集的數(shù)據(jù)進(jìn)行融合,緩存和轉(zhuǎn)發(fā)。
綜上所述,傳統(tǒng)的無線網(wǎng)絡(luò)路由協(xié)議不適合在無線傳感器網(wǎng)絡(luò)。本發(fā)明針對(duì)傳感器網(wǎng)絡(luò) 的自身特性,設(shè)計(jì)無線傳感器網(wǎng)絡(luò)路由方法。無線傳感器網(wǎng)絡(luò)的路由協(xié)議應(yīng)該滿足以下條件 (1)能源有效性
能量嚴(yán)格受限是傳感器節(jié)點(diǎn)最顯著的特點(diǎn),在無線傳感器網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)只攜帶有限
的、不可更換的電源,節(jié)點(diǎn)計(jì)算、存儲(chǔ)能力弱;能量節(jié)約是傳感器網(wǎng)絡(luò)路由協(xié)議設(shè)計(jì)得最主 要目標(biāo)。典型的無線傳感器網(wǎng)絡(luò)工作在人類無法忍受的惡劣環(huán)境,甚至是人類無法到達(dá)的環(huán) 境,比如火山周圍, 一旦電池耗盡,將無法更換。設(shè)計(jì)有效的路由協(xié)議節(jié)約節(jié)點(diǎn)能源、延長(zhǎng) 網(wǎng)絡(luò)的生命周期就成為無線傳感網(wǎng)絡(luò)的核心問題。
(2) 簡(jiǎn)單性
相對(duì)于傳統(tǒng)無線網(wǎng)絡(luò)而言,傳感器節(jié)點(diǎn)的運(yùn)算和存儲(chǔ)能力嚴(yán)格受限,這種硬件資源有限 的節(jié)點(diǎn)卻承擔(dān)著信息采集和路由雙重功能,這就要求為這種節(jié)點(diǎn)資源有限的特殊網(wǎng)絡(luò)"量身定 制"一種簡(jiǎn)單有效的路由協(xié)議,要求路由協(xié)議的報(bào)文和算法簡(jiǎn)單有效,實(shí)現(xiàn)的程序代碼短小精 悍,路由表項(xiàng)盡可能少。由于無線傳感器網(wǎng)絡(luò)規(guī)模很大,因此要求通信協(xié)議具有很強(qiáng)的可擴(kuò) 展性,能夠動(dòng)態(tài)地適應(yīng)節(jié)點(diǎn)規(guī)模的變化,保證通信質(zhì)量。
(3) 多路性
為了避免單個(gè)節(jié)點(diǎn)的失效影響整個(gè)網(wǎng)絡(luò)的效率,要求每個(gè)節(jié)點(diǎn)盡可能維護(hù)多條路由,維 護(hù)多條路由是指每個(gè)節(jié)點(diǎn)同時(shí)維護(hù)去往Sink節(jié)點(diǎn)的多條路徑,只有當(dāng)所有路由都失效時(shí),才 按需發(fā)起路由請(qǐng)求過程,從而降低路由請(qǐng)求頻率、分組等待延時(shí)和協(xié)議開銷。
(4) 數(shù)據(jù)融合
為了減少無線傳感器網(wǎng)絡(luò)中冗余信息的發(fā)送,盡可能地節(jié)省傳感器節(jié)點(diǎn)的能量,路由協(xié) 議的設(shè)計(jì)需要以數(shù)據(jù)為中心,具備數(shù)據(jù)融合的能力。
現(xiàn)有方案以及優(yōu)缺點(diǎn)傳感器網(wǎng)絡(luò)的路由被分為平面路由和分層路由,在平面結(jié)構(gòu)
中,所有節(jié)點(diǎn)的地位是平等的,不存在任何等級(jí)和層次差異,原則上不存在瓶頸問題,具有 較好的健壯性。其缺點(diǎn)是可擴(kuò)充性差,維護(hù)動(dòng)態(tài)變化的路由需要大量的控制信息。分層路由 協(xié)議的基本思想是將傳感器節(jié)點(diǎn)組織成簇,每個(gè)簇內(nèi)有一個(gè)簇頭。簇頭完成數(shù)據(jù)聚集和合成, 并負(fù)責(zé)將數(shù)據(jù)傳送給Sink節(jié)點(diǎn)。這種網(wǎng)絡(luò)組織方式有效地維持傳感節(jié)點(diǎn)的能量消耗,延長(zhǎng)網(wǎng) 絡(luò)生命周期,且很好的滿足傳感器網(wǎng)絡(luò)的可擴(kuò)展性,并減少網(wǎng)絡(luò)延遲,其缺點(diǎn)是Sink節(jié)點(diǎn)可 能會(huì)成為網(wǎng)絡(luò)的瓶頸。
LEACH協(xié)議是第一個(gè)在無線傳感器網(wǎng)絡(luò)中提出的分層路由協(xié)議。其后的大部分分層路由 協(xié)議都是在它的基礎(chǔ)上發(fā)展而來的,如TEEN、 PEGASIS等。LEACH協(xié)議中的操作是分輪 進(jìn)行的,每一輪包含簇建立階段和穩(wěn)定階段。在簇形成的階段,選擇簇頭節(jié)點(diǎn)。選取簇頭的 方法為對(duì)于一個(gè)節(jié)點(diǎn),隨機(jī)選取一個(gè)在0到1之間的數(shù)字作為標(biāo)記值,如果這個(gè)標(biāo)記值小
于一個(gè)門限值r(n)的話,節(jié)點(diǎn)《就充當(dāng)本輪的簇頭節(jié)點(diǎn)。r(")值計(jì)算如下:<formula>formula see original document page 8</formula> 其他
其中,iV為網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)的總數(shù);A為一個(gè)回合網(wǎng)絡(luò)中的簇頭節(jié)點(diǎn)數(shù);f為己完成的 回合數(shù)。被選為簇頭的節(jié)點(diǎn)廣播自己成為簇頭節(jié)點(diǎn)的消息,網(wǎng)絡(luò)中的其他節(jié)點(diǎn)根據(jù)接收信息
的強(qiáng)弱加入從屬的簇,完成簇的建立。節(jié)點(diǎn)采用7T)M4的方式通過一跳通信將數(shù)據(jù)傳送給簇 頭,簇頭再將融合后的數(shù)據(jù)傳送給Sink節(jié)點(diǎn)。該協(xié)議采用隨機(jī)選舉簇頭的方式避免簇頭過分 消耗能量,提高了網(wǎng)絡(luò)生存時(shí)間。
LEACH的優(yōu)點(diǎn)是采用動(dòng)態(tài)集群,與一般的平面多跳路由協(xié)議和靜態(tài)集群算法相比, LEACH可以延長(zhǎng)網(wǎng)絡(luò)生命周期。LEACH算法的主要缺點(diǎn)是在簇生成過程中沒有考慮節(jié)點(diǎn)的 能量和具體位置。LEACH算法可能選取能量較低的節(jié)點(diǎn)作為簇頭,而且簇頭地理位置分布不 均勻、各個(gè)簇內(nèi)節(jié)點(diǎn)的數(shù)量不平衡。由于這些缺點(diǎn)LEACH算法需要花費(fèi)大量的能量進(jìn)行重 新成簇和網(wǎng)絡(luò)維護(hù)。
蟻群算法是模仿螞蟻行為的一種方法,已經(jīng)被應(yīng)用在無線網(wǎng)絡(luò)的路由協(xié)議中。這些應(yīng)用 將蟻群算法直接應(yīng)用傳感器網(wǎng)絡(luò)中,設(shè)計(jì)全新傳感器網(wǎng)絡(luò)路由協(xié)議,或者使用蟻群算法來求 解和優(yōu)化傳感器網(wǎng)絡(luò)路由協(xié)議。這些路由方法,隨著網(wǎng)絡(luò)規(guī)模的增大,需要花費(fèi)大量的代價(jià) 計(jì)算和維持鏈路信息素濃度。
發(fā)明的內(nèi)容
本發(fā)明的目的在于解決LEACH算法的不足之處和現(xiàn)有基于蟻群的傳感器網(wǎng)絡(luò)路由協(xié)議 存在的缺陷,此路由協(xié)議是在傳感器網(wǎng)絡(luò)分層分簇的基礎(chǔ)上,提出了基于蟻群算法的傳感器 網(wǎng)絡(luò)路由(ACR)方法。在簇間路由和路由維護(hù)上借鑒蟻群算法,此路由協(xié)議相比與LEACH 算法,在簇劃分方法上和簇間路由上有創(chuàng)新,相比與現(xiàn)有的基于蟻群的傳感器網(wǎng)絡(luò)路由協(xié)議, 由于簇頭節(jié)點(diǎn)數(shù)量有限,在簇間路由和簇頭節(jié)點(diǎn)的路由表維護(hù)上借鑒蟻群算法的思想,適合 于傳感器網(wǎng)絡(luò)。
本發(fā)明主要是針對(duì)分層的傳感器網(wǎng)絡(luò)。分層的傳感器網(wǎng)絡(luò)路由協(xié)議主要包括三個(gè)部分
簇內(nèi)路由、簇間路由和路由維護(hù)。簇內(nèi)路由為簇成員節(jié)點(diǎn)將收集的信息傳輸給簇頭節(jié)點(diǎn),其
中最主要的工作是簇頭選取和簇生成問題;簇間路由為各個(gè)簇頭通過多跳的方式將簇內(nèi)收集
的數(shù)據(jù)發(fā)送給Sink節(jié)點(diǎn)。
本發(fā)明根據(jù)剩余能量確定節(jié)點(diǎn)是否具有競(jìng)選簇頭的資格;根據(jù)節(jié)點(diǎn)地理位置,利用重復(fù) 分割法進(jìn)行簇劃分,保證各個(gè)簇地理位置均勻,簇內(nèi)節(jié)點(diǎn)數(shù)相近;簇成員節(jié)點(diǎn)通過單跳的方 式將信息傳輸給簇頭。采用蟻群算法,根據(jù)各個(gè)鏈路上的信息素濃度選擇路由鏈路,進(jìn)行簇 間路由,將各個(gè)簇的數(shù)據(jù)傳送到Sink節(jié)點(diǎn);隨著網(wǎng)絡(luò)的運(yùn)行,周期性計(jì)算鏈路的信息素濃度, 并依據(jù)此信息更新節(jié)點(diǎn)路由表,維護(hù)路由信息。此路由協(xié)議能夠減少無線傳感器網(wǎng)絡(luò)的能量 消耗,平衡網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)之間的能量消耗,防止部分節(jié)點(diǎn)因能量消耗過快而死亡,延長(zhǎng)網(wǎng)絡(luò) 的生命周期。本發(fā)明基于蟻群算法的路由協(xié)議的具體步驟包括協(xié)議的初始化、簇分割、簇 的建立、信息素計(jì)算、簇間路由和路由維護(hù)
1. 協(xié)議的初始化過程
協(xié)議的初始化是傳感器網(wǎng)絡(luò)分簇的基礎(chǔ)。在初始化過程中使用洪泛的方法,使得Sink節(jié) 點(diǎn)獲網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)中節(jié)點(diǎn)剩余能量信息;傳感器節(jié)點(diǎn)獲取自己距離Sink節(jié)點(diǎn)的跳數(shù)和鄰居 節(jié)點(diǎn)信息。在協(xié)議初始化之后,Sink節(jié)點(diǎn)能夠計(jì)算網(wǎng)絡(luò)的總剩余能量和網(wǎng)絡(luò)平均能量;每個(gè) 傳感器節(jié)點(diǎn)知道自己的鄰居節(jié)點(diǎn)信息以及各個(gè)鄰居節(jié)點(diǎn)到Sink節(jié)點(diǎn)的跳數(shù)。
2. 簇的建立
在協(xié)議初始化的基礎(chǔ)上,依據(jù)節(jié)點(diǎn)剩余能量和網(wǎng)絡(luò)平均能量選擇具有競(jìng)爭(zhēng)簇頭資格的節(jié) 點(diǎn),在此基礎(chǔ)上,根據(jù)節(jié)點(diǎn)的地理位置,劃分傳感器網(wǎng)絡(luò)簇。為了避免剩余能量較低的節(jié)點(diǎn) 當(dāng)選簇頭而導(dǎo)致部分節(jié)點(diǎn)過快死亡,讓剩余能量高于網(wǎng)絡(luò)平均能量的傳感器節(jié)點(diǎn)具有競(jìng)爭(zhēng)簇 頭的資格,剩余能量低于網(wǎng)絡(luò)平均能量的傳感器節(jié)點(diǎn)沒有競(jìng)爭(zhēng)簇頭的資格。在簇劃分中,首 先選擇網(wǎng)絡(luò)中距離較遠(yuǎn)的兩個(gè)具有競(jìng)爭(zhēng)簇頭資格的節(jié)點(diǎn)作為簇頭,將網(wǎng)絡(luò)化分成兩個(gè)簇,再 在各個(gè)簇內(nèi)采用同樣的方法循環(huán)分割,直到網(wǎng)絡(luò)中簇的個(gè)數(shù)達(dá)到預(yù)先的要求,最后其他節(jié)點(diǎn) 按照就近的原則加入各個(gè)簇。此簇分割方法保證簇頭地理位置分布均勻,每個(gè)簇中的傳感器 節(jié)點(diǎn)數(shù)相近。
3. 簇間路由
采用蟻群算法進(jìn)行簇間路由,包括形成簇頭節(jié)點(diǎn)的路由表、計(jì)算鏈路信息素濃度和選擇 信息傳輸鏈路;
(1)形成簇頭節(jié)點(diǎn)的路由表每個(gè)被選為簇頭的節(jié)點(diǎn)判斷自身路由表中是否存在到所 有鄰居簇頭的路由記錄,如果有,重新計(jì)算信息素濃度,使用新計(jì)算的信息素濃度、鄰居節(jié) 點(diǎn)剩余能量和距離Sink節(jié)點(diǎn)的跳數(shù),更新此路由表記錄;如果沒有則創(chuàng)建新的路由表記錄, 并在此路由表記錄中,填寫鄰居簇頭節(jié)點(diǎn)標(biāo)識(shí)、鄰居節(jié)點(diǎn)剩余能量,鏈路信息素濃度和距離Sink節(jié)點(diǎn)的跳數(shù);
(2) 信息素濃度計(jì)算鏈路的信息素濃度隨著鏈路上傳輸信息而增多,路徑上的信息素 會(huì)隨著時(shí)間的推移而揮發(fā),簇頭節(jié)點(diǎn)/和y'之間的鏈路信息素濃度^的計(jì)算方法是
7& <~(1-+aXe"^gya +/、式中P表示信息素的揮發(fā)量,o表示節(jié)點(diǎn)剩余能量在信息素
中所占的比重,/是兩簇頭間的距離,"表示節(jié)點(diǎn)間距離在信息素中所占的比重,計(jì)算式的第 一部分是一段時(shí)間內(nèi)的信息素的揮發(fā);第二部分是兩簇頭間的距離以及相鄰簇頭的剩余能量 來計(jì)算簇頭間的信息素濃度;
(3) 選擇信息傳輸鏈路當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),通過各個(gè)鏈路的信息素濃度計(jì)算選擇各 個(gè)鏈路的概率,依據(jù)此概率選擇相應(yīng)的鏈路進(jìn)行數(shù)據(jù)傳輸;信息素濃度高的鏈路被選擇的概 率較大;
4.路由維護(hù)采用蟻群算法進(jìn)行路由維護(hù),包括鏈路的信息素濃度的更新和簇頭更換, 根據(jù)鏈路傳輸數(shù)據(jù)情況和時(shí)間的推移,周期性更新路由表中各條鏈路的信息素濃度,進(jìn)行路 由表更新和維護(hù);采用輪換的方式讓簇內(nèi)最大能量節(jié)點(diǎn)輪流擔(dān)任簇頭,并將被替換簇頭的路 由表復(fù)制到新的簇頭。
本發(fā)明所公開的高效的傳感器網(wǎng)絡(luò)路由方法的主要特點(diǎn)如下
(1) 在簇間路由和路由維護(hù)上借鑒蟻群算法,此路由協(xié)議相比與LEACH算法,在簇劃分 方法上和簇間路由上有創(chuàng)新,相比與現(xiàn)有的基于蟻群的傳感器網(wǎng)絡(luò)路由協(xié)議,由于簇頭節(jié)點(diǎn) 數(shù)量有限,在簇間路由和簇頭節(jié)點(diǎn)的路由表維護(hù)上借鑒蟻群算法的思想,適合于傳感器網(wǎng)絡(luò);
(2) 協(xié)議簡(jiǎn)單協(xié)議設(shè)計(jì)簡(jiǎn)單,總體開銷較小,適合于能量受限的傳感器網(wǎng)絡(luò);
(3) 能量高效網(wǎng)絡(luò)總能量消耗較小,平衡各個(gè)節(jié)點(diǎn)的能量消耗,主要體現(xiàn)在基于蟻 群算法的傳感器網(wǎng)絡(luò)依據(jù)鏈路上的信息素濃度來確定選擇該路徑的概率;在簇劃分階段每個(gè) 簇內(nèi)的傳感器節(jié)點(diǎn)數(shù)量相近,總體分布均勻。通過仿真試驗(yàn),與LEACH算法相比,ACR能 夠延長(zhǎng)網(wǎng)絡(luò)的生命周期;
(4) 容易形成多經(jīng)路由由于采用蟻群算法進(jìn)行簇間路由和路由維護(hù),當(dāng)一條路徑出現(xiàn) 問題時(shí),將不會(huì)有信息通過此鏈路傳遞,此鏈路的信息濃度變低,而選擇另外的鏈路進(jìn)行信 息傳輸,因此具有動(dòng)態(tài)調(diào)整路由的功能;
(5)支持?jǐn)?shù)據(jù)融合簇頭節(jié)點(diǎn)對(duì)簇內(nèi)收集的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合,在簇間路由時(shí),中間簇 頭節(jié)點(diǎn)也可以進(jìn)行數(shù)據(jù)融合。
圖1基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由方法網(wǎng)絡(luò)模型圖
圖2基于蟻群算法的傳感器網(wǎng)絡(luò)方法流程圖
圖3 Sink節(jié)點(diǎn)廣播初始化數(shù)據(jù)包結(jié)構(gòu)圖
圖4節(jié)點(diǎn)轉(zhuǎn)發(fā)初始化數(shù)據(jù)包結(jié)構(gòu)圖
圖5路由應(yīng)答消息結(jié)構(gòu)圖
圖6成簇?cái)?shù)據(jù)包結(jié)構(gòu)圖
圖7競(jìng)爭(zhēng)簇頭數(shù)據(jù)包格式
圖8簇建立流程圖
圖9簇分割流程圖
圖IO路由表?xiàng)l目結(jié)構(gòu)圖
圖ll平均能量消耗曲線圖,(a)為場(chǎng)景I, (b)為場(chǎng)景II 圖12節(jié)點(diǎn)存活數(shù)比較曲線圖(a)為場(chǎng)景I, (b)為場(chǎng)景II
具體實(shí)施方案
結(jié)合上述附圖,本發(fā)明提出的基于蟻群的傳感器網(wǎng)絡(luò)路由算法,此算法所包括各個(gè)部分
的具體實(shí)施方式
如下 一.協(xié)議步驟
基于蟻群算法的傳感器網(wǎng)絡(luò)路由協(xié)議是針對(duì)分層分簇的傳感器網(wǎng)絡(luò)體系結(jié)構(gòu)的,如圖1 所示。Sink節(jié)點(diǎn)首先獲取傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)節(jié)點(diǎn)的能量情況,每個(gè)節(jié)點(diǎn)獲取到Sink 節(jié)點(diǎn)的跳數(shù),然后采用重復(fù)分割法進(jìn)行簇劃分,建立傳感器網(wǎng)絡(luò)簇,再基于蟻群算法進(jìn)行簇 間路由和路由維護(hù)。
基于蟻群算法的傳感器網(wǎng)絡(luò)路由協(xié)議步驟如下,具體流程如圖2所示。
(1) 初始化通過洪泛的方式,Sink節(jié)點(diǎn)獲取傳感器網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn) 剩余能量情況,為簇建立創(chuàng)造條件;
(2) 簇的建立根據(jù)預(yù)先設(shè)定的簇頭數(shù)使用重復(fù)分割法劃分出傳感器網(wǎng)絡(luò)簇,保證剩余
能量較大的節(jié)點(diǎn)成為簇頭,完成成簇工作,并使簇內(nèi)節(jié)點(diǎn)數(shù)基本相同以均衡網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)載;
(3) 信息素濃度計(jì)算每個(gè)被選為簇頭的節(jié)點(diǎn)判斷自身路由表中是否存在到所有鄰居簇 頭的路由記錄,路由表記錄格式如圖IO所示,如果有,重新計(jì)算信息素濃度,使用新計(jì)算的 信息素濃度、鄰居節(jié)點(diǎn)剩余能量和距離Sink節(jié)點(diǎn)的跳數(shù),更新此路由表記錄;如果沒有則創(chuàng) 建新的路由表記錄,并在此路由表記錄中,填寫鄰居簇頭節(jié)點(diǎn)標(biāo)識(shí)、鄰居節(jié)點(diǎn)剩余能量,鏈 路信息素濃度和距離Sink節(jié)點(diǎn)的跳數(shù);
(4) 計(jì)算鏈路選擇概率和信息傳輸當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),通過各個(gè)鏈路的信息素濃度 計(jì)算選擇各個(gè)鏈路的概率,依據(jù)此概率選擇相應(yīng)的鏈路進(jìn)行數(shù)據(jù)傳輸;
(5) 路由表更新和維護(hù)根據(jù)鏈路傳輸數(shù)據(jù)情況和時(shí)間的推移,周期性更新路由表中各
條鏈路的信息素濃度,進(jìn)行路由表維護(hù)。
二. 協(xié)議初始化
協(xié)議初始化的目的是為了讓Sink節(jié)點(diǎn)獲取傳感器網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)的剩余能量情 況,以及節(jié)點(diǎn)知道自己距離Sink節(jié)點(diǎn)的跳數(shù)和鄰居節(jié)點(diǎn)信息。主要步驟如下
(1) Sink節(jié)點(diǎn)廣播msg—qur査詢信息,此信息的結(jié)構(gòu)如圖3所示;
(2) 收到msg_qUr查詢信息的節(jié)點(diǎn)將距離Sink節(jié)點(diǎn)的跳數(shù)域的值加1,若收到多個(gè)則以跳 數(shù)值最小的為準(zhǔn),然后廣播數(shù)據(jù)包,結(jié)構(gòu)如圖4所示;并向msg一qur查詢信息的源節(jié)點(diǎn)返回 ack應(yīng)答消息,消息結(jié)構(gòu)如圖5所示;如若收到鄰居節(jié)點(diǎn)的應(yīng)答消息,則向msg一qur査詢信息 中的源節(jié)點(diǎn)轉(zhuǎn)發(fā)此應(yīng)答消息;
(3) 通過歩驟(2), Sink節(jié)點(diǎn)得知網(wǎng)絡(luò)中的節(jié)點(diǎn)到自身的位置,Sink節(jié)點(diǎn)根據(jù)ack消息獲
取網(wǎng)絡(luò)中節(jié)點(diǎn)的個(gè)數(shù)n以及每個(gè)節(jié)點(diǎn)的剩余能量&, 計(jì)算網(wǎng)絡(luò)總能量五t。^-t五,,
網(wǎng)絡(luò)平均能量^^^p-《。^/W;每個(gè)傳感器節(jié)點(diǎn)知道自己的鄰居節(jié)點(diǎn),并知道鄰居節(jié)點(diǎn)到
Sink節(jié)點(diǎn)的跳數(shù)。
協(xié)議初始化工作為簇的建立奠定基礎(chǔ)。
三. 簇的建立
依據(jù)傳感器網(wǎng)絡(luò)預(yù)先設(shè)定的劃分簇的數(shù)量,在協(xié)議初始化的基礎(chǔ)上進(jìn)行簇建立,主要過
程如下
(1)由Sink廣播一個(gè)開始成簇信息,該信息包含本輪網(wǎng)絡(luò)平均能量五^,。ge信息,該數(shù)據(jù) 包的格式如圖6所示;(2) 網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)收到Sink廣播的成簇信息后,根據(jù)£,—£OTera^>0來計(jì)算自己是否 有競(jìng)選簇頭的資格。如果大于零,則表示自己具有競(jìng)選簇頭資格,從而將自身的Wart^設(shè)置 為c/J ea(&"tof/ve;否則沒有簇頭競(jìng)選資格,貝U W加w置為cA—wm/ecWe;
(3) 具有競(jìng)爭(zhēng)簇頭資格的節(jié)點(diǎn)廣播競(jìng)爭(zhēng)簇頭數(shù)據(jù)包,宣布自己具有競(jìng)爭(zhēng)簇頭資格,該數(shù) 據(jù)包的結(jié)構(gòu)如圖7所示。由Sink節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的劃分簇的數(shù)量和具有競(jìng)爭(zhēng)簇頭資格的節(jié) 點(diǎn)發(fā)出的競(jìng)選簇頭數(shù)據(jù)包進(jìn)行簇分割;
(4) 采用TZ)M4機(jī)制,簇頭節(jié)點(diǎn)給每個(gè)簇內(nèi)節(jié)點(diǎn)分配一個(gè)時(shí)間片,節(jié)點(diǎn)按照分配時(shí)間片 的先后順序發(fā)送數(shù)據(jù)給簇頭。
以上簇建立過程的主要流程如圖8所示。 在簇建立的步驟(3)中的簇分割的主要步驟為
(1) Sink節(jié)點(diǎn)從標(biāo)記為c/—/zearfje"toriw的節(jié)點(diǎn)中選擇距離最遠(yuǎn)的兩個(gè)節(jié)點(diǎn)d , d;
(2) 將剩余節(jié)點(diǎn)按就近原則分成sl, s2兩個(gè)簇,兩個(gè)簇內(nèi)節(jié)點(diǎn)數(shù)量盡可能相同;
(3) 在sl和《兩個(gè)簇內(nèi)分別按照上面兩個(gè)步驟進(jìn)行劃分,分割成更小的子簇;
(4) 重復(fù)進(jìn)行分割,直至達(dá)到預(yù)先設(shè)定的簇的個(gè)數(shù)。 以上描述的簇分割過程的主要流程如圖9所示。
四.簇間路由
每個(gè)簇頭節(jié)點(diǎn)均保存一張路由表,此路由表記錄和它相鄰簇頭節(jié)點(diǎn)的鏈路信息,此表的 單個(gè)條目如圖IO所示。簇間路由需要形成簇頭節(jié)點(diǎn)的路由表、計(jì)算信息素濃度和計(jì)算選擇鏈 路的概率。
簇頭節(jié)點(diǎn)的路由表形成方法每個(gè)被選為簇頭的節(jié)點(diǎn)判斷自身路由表中是否存在到所有 鄰居簇頭的路由記錄,路由表記錄格式如圖10所示,如果有,重新計(jì)算信息素濃度,使用新 計(jì)算的信息素濃度、鄰居節(jié)點(diǎn)剩余能量和距離Sink節(jié)點(diǎn)的跳數(shù)更新此路由表記錄;如果沒有 則創(chuàng)建新的路由表記錄,并在此路由表記錄中,填寫鄰居簇頭節(jié)點(diǎn)標(biāo)識(shí)、鄰居節(jié)點(diǎn)剩余能量, 鏈路信息素濃度和距離Sink節(jié)點(diǎn)的跳數(shù);
信息素濃度的計(jì)算方法簇頭節(jié)點(diǎn)/和y之間的鏈路信息素濃度^的計(jì)算方法是 ^ 1(1-/9)^ +/ 式中P表示信息素的揮發(fā)量,"表示節(jié)點(diǎn)剩余能量在信息素
中所占的比重,/是兩簇頭間的距離,P表示節(jié)點(diǎn)間距離在信息素中所占的比重。與蟻群算法 類似,路徑上的信息素會(huì)隨著時(shí)間的推移而揮發(fā)。所以上面的公式是由兩部分組成的。第一
部分是實(shí)現(xiàn)一段時(shí)間內(nèi)的信息素的揮發(fā),初始時(shí)信息素濃度為o,揮發(fā)量也為o。第二部分是
啟發(fā)信息,是兩簇頭間的距離以及相鄰簇頭的剩余能量來計(jì)算簇頭間的信息素濃度。
鏈路選擇概率的計(jì)算方法當(dāng)某個(gè)簇頭要發(fā)送數(shù)據(jù)時(shí),根據(jù)路由表中與相鄰簇頭的信息 素濃度,計(jì)算出各個(gè)相鄰簇頭被選擇的概率。簇頭i到相鄰簇頭y'發(fā)送數(shù)據(jù)的概率為
^;,)1 g 。式中,W^示可W貞力簇頭/T"—^⑧^頭,點(diǎn)、W^^。 ^用來表示,索
D)1
行為,Ai越小表示各相鄰節(jié)點(diǎn)概率越接近,探索能力越強(qiáng),A越大表示各相鄰節(jié)點(diǎn)的概率相 差越大,探索能力越弱,但路由收斂的也越快。 五.路由維護(hù)
路由維護(hù)主要包括鏈路的信息素濃度的更新和隨著簇頭能量消耗過多引起的簇頭變化。 信息素濃度更新傳輸信息的多少和時(shí)間推移確定鏈路的信息素濃度,由蟻群算法的原 理可知,路徑上的信息素形成之后并不是一成不變的。當(dāng)簇頭節(jié)點(diǎn)/以一定的概率將數(shù)據(jù)發(fā) 送到相鄰簇頭節(jié)點(diǎn)乂后,節(jié)點(diǎn)/就會(huì)在它的路由表相應(yīng)記錄項(xiàng)中增加信息素濃度,這樣在經(jīng)過 一段時(shí)間后,不經(jīng)常使用的路徑信息素濃度就會(huì)越來越小,被選擇的概率就會(huì)越來越小,這 需要Sink節(jié)點(diǎn)周期性的對(duì)全局的信息素濃度進(jìn)行更新。此外,當(dāng)節(jié)點(diǎn)死亡或是有新的節(jié)點(diǎn)加 入時(shí),均對(duì)信息素進(jìn)行更新。更新信息素濃度的方法為(1_p;^+axe^^a+W
簇頭更換由于簇頭承擔(dān)簇內(nèi)數(shù)據(jù)融合、發(fā)送或轉(zhuǎn)發(fā)數(shù)據(jù)到基站的任務(wù),因此簇頭消耗 著比普通節(jié)點(diǎn)更多的能量。為了均衡網(wǎng)絡(luò)負(fù)載,不讓節(jié)點(diǎn)因能量耗盡而過早死去,采用輪換 的方式擔(dān)當(dāng)簇頭即簇內(nèi)最大能量節(jié)點(diǎn)輪流擔(dān)任簇頭任務(wù)。當(dāng)簇頭變化的時(shí)候,舊簇頭將自己 的路由表復(fù)制到新的簇頭。
六.示范性實(shí)例分析與相關(guān)工作比較
衡量傳感器網(wǎng)絡(luò)路由方法的最核心的指標(biāo)是能量消耗?;谙伻核惴ǖ膫鞲衅骶W(wǎng)絡(luò)路由 方法與LEACH算法的最大區(qū)別在于改進(jìn)了簇頭選舉策略,以及借鑒蟻群算法,將其應(yīng)用到 簇間路由和路由維護(hù)中,通過折中考慮能量消耗及傳輸距離來延長(zhǎng)網(wǎng)絡(luò)生存時(shí)間。為了驗(yàn)證 簇路由協(xié)議的有效性,從傳感器網(wǎng)絡(luò)的平均能量消耗以及存活的節(jié)點(diǎn)數(shù)對(duì)所提議的路由方法 進(jìn)行分析和仿真。使用的仿真工具為被業(yè)界公認(rèn)的仿真工具NS2。
為了測(cè)試網(wǎng)絡(luò)規(guī)模對(duì)路由協(xié)議的性能影響,設(shè)置了兩種節(jié)點(diǎn)部署場(chǎng)景
場(chǎng)景I:將100個(gè)節(jié)點(diǎn)隨機(jī)分布在100X 100m2的區(qū)域內(nèi);
場(chǎng)景Ih將100個(gè)節(jié)點(diǎn)隨機(jī)分布在200X200 1112的區(qū)域內(nèi)。
每個(gè)無線傳感器節(jié)點(diǎn)的初始能量為2J,共進(jìn)行3600秒,每20秒選舉一次簇頭。仿真時(shí), 設(shè)定網(wǎng)絡(luò)中有一個(gè)信源和一個(gè)Sink節(jié)點(diǎn),Sink節(jié)點(diǎn)距離最近的節(jié)點(diǎn)為75m。
基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由方法和LEACH在平均能量消耗方面的比較如圖11 的(a)、 (b)所示。
在場(chǎng)景I中,ACR的能量消耗較LEACH有所減小。這表明基于蟻群算法的無線傳感器 網(wǎng)絡(luò)路由算法延長(zhǎng)了網(wǎng)絡(luò)的生命周期,同時(shí)使能量的消耗更加均勻地分布到所有節(jié)點(diǎn)中。這 主要是因?yàn)榛谙伻核惴ǖ臒o線傳感器網(wǎng)絡(luò)路由算法通過將簇頭節(jié)點(diǎn)較均勻的分布在整個(gè)網(wǎng) 絡(luò)中,從而均衡了網(wǎng)絡(luò)的負(fù)載。并且簇內(nèi)節(jié)點(diǎn)只采用一跳路由,簇頭節(jié)點(diǎn)通過蟻群算法折中 選擇能量低和距離近的簇頭將數(shù)據(jù)傳輸出去。這也會(huì)使得簇頭節(jié)點(diǎn)每次傳輸?shù)木嚯x都比較近, 節(jié)省了能量。而在LEACH算法中,所有簇頭節(jié)點(diǎn)都會(huì)直接與遠(yuǎn)距離的Sink節(jié)點(diǎn)進(jìn)行通信, 這就會(huì)輪流引起簇頭節(jié)點(diǎn)能量的顯著下降。因此,本算法的平均能量消耗會(huì)較LEACH算法小。
在場(chǎng)景II中,隨著網(wǎng)絡(luò)場(chǎng)景的擴(kuò)大,ACR的能量消耗較LEACH有明顯減小。這是因?yàn)?在大場(chǎng)景下,LEACH算法中的隨機(jī)選舉簇頭以及簇頭遠(yuǎn)距離傳輸?shù)娜秉c(diǎn)進(jìn)一步暴露,而基于 蟻群算法的無線傳感器網(wǎng)絡(luò)路由算法經(jīng)過多跳路由傳輸數(shù)據(jù),所以對(duì)于大區(qū)域的網(wǎng)絡(luò)具有更 強(qiáng)的適應(yīng)性。
基于蟻群算法的傳感器網(wǎng)絡(luò)路由方法和LEACH在節(jié)點(diǎn)存活數(shù)方面的比較如圖12的(a) 和(b)所示。
在場(chǎng)景I中,對(duì)于LEACH在進(jìn)行到第160輪左右時(shí),幾乎已無節(jié)點(diǎn)存活,而基于蟻群 算法的無線傳感器網(wǎng)絡(luò)路由方法依然有60個(gè)左右的節(jié)點(diǎn)存活,這就說明該算法很大程度上延 長(zhǎng)了整個(gè)網(wǎng)絡(luò)的生存周期。這主要是因?yàn)楸舅惴ㄔ诖仡^選舉階段就通過選舉節(jié)點(diǎn)能量足夠大 的節(jié)點(diǎn)作為簇頭,從而使得低能量節(jié)點(diǎn)能夠延長(zhǎng)它們的生命周期。此外,在簇間路由時(shí),利 用蟻群算法,將簇頭節(jié)點(diǎn)的剩余能量加入信息素濃度的計(jì)算中,這樣,選擇下一跳節(jié)點(diǎn)時(shí), 通過一定概率選擇能量較大的節(jié)點(diǎn),從而避免了單一節(jié)點(diǎn)因能量消耗過大而過早死亡,延長(zhǎng) 了網(wǎng)絡(luò)的生命周期。
在場(chǎng)景II中,基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由算法的優(yōu)勢(shì)進(jìn)一步得到了體現(xiàn)-LEACH在進(jìn)行到第135輪左右時(shí),幾乎已無節(jié)點(diǎn)存活,而基于蟻群算法的無線傳感器網(wǎng)絡(luò)路 由方法依然有90個(gè)左右的節(jié)點(diǎn),這是因?yàn)樵诖髨?chǎng)景環(huán)境下,LEACH算法形成的簇在很多情 況下都無法達(dá)到最優(yōu)化,這樣使得簇內(nèi)節(jié)點(diǎn)與簇頭的通信距離加大,聚類內(nèi)部的通信能量消
耗也隨之加大。另外,由于簇頭與Sink節(jié)點(diǎn)的距離變遠(yuǎn),簇頭發(fā)送數(shù)據(jù)到Sink節(jié)點(diǎn)的能耗 必然也會(huì)加大,這勢(shì)必加速了節(jié)點(diǎn)的死亡。而在基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由方法中, 首先簇頭節(jié)點(diǎn)不是直接與Sink節(jié)點(diǎn)通信的,再者,簇頭在選擇下一跳時(shí),是通過計(jì)算包含距 離與相鄰簇頭剩余能量的信息素濃度來以一定的概率進(jìn)行的。因此,通過選擇大能量的簇頭 作為下一跳,必然會(huì)使得節(jié)點(diǎn)的死亡率降低,從而延長(zhǎng)了網(wǎng)絡(luò)生命周期。
綜上所述,基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由算法在平均能耗、節(jié)點(diǎn)存活數(shù)以及延長(zhǎng) 網(wǎng)絡(luò)生命周期方面較LEACH算法而言都表現(xiàn)出了良好的性能。此外,隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大, 本方法將表現(xiàn)出更好的性能,顯示了良好的可擴(kuò)展性。
符號(hào)說明
WSN:無線傳感器網(wǎng)絡(luò)
LEACH:低開銷自適應(yīng)分層路由算法
ACR:基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由方法
TEEN:感知門限低開銷傳感器網(wǎng)絡(luò)路由
PEGASIS:感知信息系統(tǒng)的功率有效聚簇算法
TDMA:時(shí)分多址
MAC:介質(zhì)訪問控制
NS:網(wǎng)絡(luò)仿真
權(quán)利要求
1、一種能量高效的無線傳感器網(wǎng)絡(luò)路由方法,針對(duì)分層分簇的傳感器網(wǎng)絡(luò)體系結(jié)構(gòu),采用蟻群算法來實(shí)現(xiàn)傳感器網(wǎng)絡(luò)路由協(xié)議,其特征是根據(jù)剩余能量確定節(jié)點(diǎn)是否具有競(jìng)選簇頭的資格;根據(jù)節(jié)點(diǎn)地理位置,利用重復(fù)分割法進(jìn)行簇劃分,保證各個(gè)簇地理位置均勻,簇內(nèi)節(jié)點(diǎn)數(shù)相近;簇成員節(jié)點(diǎn)通過單跳的方式將信息傳輸給簇頭;采用蟻群算法,根據(jù)各個(gè)鏈路上的信息素濃度選擇路由鏈路,進(jìn)行簇間路由,將各個(gè)簇的數(shù)據(jù)傳送到Sink節(jié)點(diǎn);隨著網(wǎng)絡(luò)的運(yùn)行,周期性計(jì)算鏈路的信息素濃度,并依據(jù)此信息更新節(jié)點(diǎn)路由表,維護(hù)路由信息;基于蟻群算法的無線傳感器網(wǎng)絡(luò)路由方法的具體步驟包括協(xié)議的初始化、簇的建立、簇間路由和路由維護(hù)。(1)協(xié)議初始化通過洪泛的方式,使得Sink節(jié)點(diǎn)獲取網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)剩余能量信息,傳感器節(jié)點(diǎn)獲取自己距離Sink節(jié)點(diǎn)的跳數(shù)和鄰居節(jié)點(diǎn)信息,在協(xié)議初始化之后,Sink節(jié)點(diǎn)能夠計(jì)算網(wǎng)絡(luò)的總剩余能量和網(wǎng)絡(luò)平均能量;每個(gè)傳感器節(jié)點(diǎn)知道自己的鄰居節(jié)點(diǎn)信息以及各個(gè)鄰居節(jié)點(diǎn)到Sink節(jié)點(diǎn)的跳數(shù),為簇建立創(chuàng)造條件;(2)簇的建立根據(jù)預(yù)先設(shè)定的簇頭數(shù),使用重復(fù)分割法劃分出傳感器網(wǎng)絡(luò)簇,保證剩余能量高于網(wǎng)絡(luò)平均能量的傳感器節(jié)點(diǎn)成為簇頭,完成成簇工作,并使簇頭地理位置分布均勻,每個(gè)簇內(nèi)節(jié)點(diǎn)數(shù)基本相同以均衡網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)載;(3)簇間路由采用蟻群算法進(jìn)行簇間路由,包括形成簇頭節(jié)點(diǎn)的路由表、計(jì)算鏈路信息素濃度和選擇信息傳輸鏈路;1)形成簇頭節(jié)點(diǎn)的路由表每個(gè)被選為簇頭的節(jié)點(diǎn)判斷自身路由表中是否存在到所有鄰居簇頭的路由記錄,如果有,重新計(jì)算信息素濃度,使用新計(jì)算的信息素濃度、鄰居節(jié)點(diǎn)剩余能量和距離Sink節(jié)點(diǎn)的跳數(shù),更新此路由表記錄;如果沒有則創(chuàng)建新的路由表記錄,并在此路由表記錄中,填寫鄰居簇頭節(jié)點(diǎn)標(biāo)識(shí)、鄰居節(jié)點(diǎn)剩余能量,鏈路信息素濃度和距離Sink節(jié)點(diǎn)的跳數(shù);2)信息素濃度計(jì)算鏈路的信息素濃度隨著鏈路上傳輸信息而增多,路徑上的信息素會(huì)隨著時(shí)間的推移而揮發(fā),簇頭節(jié)點(diǎn)i和j之間的鏈路信息素濃度τij的計(jì)算方法是τij←(1-ρ)τij+a×energyα+lβ,式中ρ表示信息素的揮發(fā)量,α表示節(jié)點(diǎn)剩余能量在信息素中所占的比重,l是兩簇頭間的距離,β表示節(jié)點(diǎn)間距離在信息素中所占的比重,計(jì)算式的第一部分是一段時(shí)間內(nèi)的信息素的揮發(fā);第二部分是兩簇頭間的距離以及相鄰簇頭的剩余能量來計(jì)算簇頭間的信息素濃度;3)選擇信息傳輸鏈路當(dāng)有數(shù)據(jù)需要發(fā)送時(shí),通過各個(gè)鏈路的信息素濃度計(jì)算選擇各個(gè)鏈路的概率,依據(jù)此概率選擇相應(yīng)的鏈路進(jìn)行數(shù)據(jù)傳輸;信息素濃度高的鏈路被選擇的概率較大;(4)路由維護(hù)采用蟻群算法進(jìn)行路由維護(hù),包括鏈路的信息素濃度的更新和簇頭更換,根據(jù)鏈路傳輸數(shù)據(jù)情況和時(shí)間的推移,周期性更新路由表中各條鏈路的信息素濃度,進(jìn)行路由表更新和維護(hù);采用輪換的方式讓簇內(nèi)最大能量節(jié)點(diǎn)輪流擔(dān)任簇頭,并將被替換簇頭的路由表復(fù)制到新的簇頭。
2、 根據(jù)權(quán)利要求1所述的能量高效的無線傳感器網(wǎng)絡(luò)路由方法,其特征在于協(xié)議初始化 的步驟包括-(1) Sink節(jié)點(diǎn)廣播msg—qur查詢信息,此信息的結(jié)構(gòu)包括路由初始化數(shù)據(jù)包標(biāo)識(shí)、Sink 標(biāo)識(shí)和距離Sink節(jié)點(diǎn)的跳數(shù);(2) 收到msg—qur査詢信息的節(jié)點(diǎn)將距離Sink節(jié)點(diǎn)的跳數(shù)域的值加l,若收到多個(gè)則以 跳數(shù)值最小的為準(zhǔn),然后廣播數(shù)據(jù)包;并向msg—qur査詢信息的源節(jié)點(diǎn)返回ack應(yīng)答消息; 如若收到鄰居節(jié)點(diǎn)的應(yīng)答消息,則向msg_qur查詢信息中的源節(jié)點(diǎn)轉(zhuǎn)發(fā)此應(yīng)答消息;(3) 通過步驟(2), Sink節(jié)點(diǎn)得知網(wǎng)絡(luò)中的節(jié)點(diǎn)到自身的位置,Sink節(jié)點(diǎn)根據(jù)ack消息獲取網(wǎng)絡(luò)中節(jié)點(diǎn)的個(gè)數(shù)w以及每個(gè)節(jié)點(diǎn)的剩余能量五,,1《Z《m計(jì)算網(wǎng)絡(luò)總能量五,^ =t£',網(wǎng)絡(luò)平均能量E^v^ge-E,。^/"0;每個(gè)傳感器節(jié)點(diǎn)知道自己的鄰居節(jié)點(diǎn),并知道鄰居節(jié)點(diǎn)到Sink節(jié)點(diǎn)的跳數(shù)。
3、 根據(jù)權(quán)利要求1所述的能量高效的無線傳感器網(wǎng)絡(luò)路由方法,其特征在于依據(jù)傳感器網(wǎng)絡(luò)預(yù)先設(shè)定的劃分簇的數(shù)量,在協(xié)議初始化的基礎(chǔ)上進(jìn)行簇建立的步驟如下步驟一由Sink廣播一個(gè)開始成簇信息,該信息包含本輪網(wǎng)絡(luò)平均能量五。^^信息;步驟二網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)收到Sink廣播的成簇信息后,根據(jù)《—&^。^>()來計(jì)算自己是否有競(jìng)選簇頭的資格,如果大于零,則表示具有競(jìng)選簇頭資格,從而將自身的W^^設(shè)置 為— te(^ —^wto"ve ;否則沒有簇頭競(jìng)選資格,則WartAy置為A—w^e"Vfe;步驟三具有競(jìng)爭(zhēng)簇頭資格的節(jié)點(diǎn)廣播競(jìng)爭(zhēng)簇頭數(shù)據(jù)包,宣布自己具有競(jìng)爭(zhēng)簇頭資格, 由Sink節(jié)點(diǎn)根據(jù)預(yù)先設(shè)定的劃分簇的數(shù)量和具有競(jìng)爭(zhēng)簇頭資格的節(jié)點(diǎn)發(fā)出的競(jìng)選簇頭數(shù)據(jù)包 進(jìn)行簇分割;步驟四采用時(shí)分多址TDMA機(jī)制,簇頭節(jié)點(diǎn)給每個(gè)簇內(nèi)節(jié)點(diǎn)分配一個(gè)時(shí)間片,節(jié)點(diǎn)按 照分配時(shí)間片的先后順序發(fā)送數(shù)據(jù)給簇頭。
4、根據(jù)權(quán)利要求1或3所述的能量高效的無線傳感器網(wǎng)絡(luò)路由方法,其特征在于采用重 復(fù)分割法進(jìn)行簇分割首先要選擇網(wǎng)絡(luò)中距離較遠(yuǎn)的兩個(gè)具有競(jìng)爭(zhēng)簇頭資格的節(jié)點(diǎn)作為簇頭, 將網(wǎng)絡(luò)化分成兩個(gè)簇,再在各個(gè)簇內(nèi)采用同樣的方法循環(huán)分割,直到網(wǎng)絡(luò)中簇的個(gè)數(shù)達(dá)到預(yù) 先的要求,最后其他節(jié)點(diǎn)按照就近的原則加入各個(gè)簇,保證簇頭地理位置分布均勻,每個(gè)簇 中的傳感器節(jié)點(diǎn)數(shù)相近,其具體歩驟包括步驟l: Sink節(jié)點(diǎn)從標(biāo)記為"-^^-""^^的節(jié)點(diǎn)中選擇距離最遠(yuǎn)的兩個(gè)節(jié)點(diǎn)sl, s2;步驟2:將剩余節(jié)點(diǎn)按就近原則分成S1, S2兩個(gè)簇,兩個(gè)簇內(nèi)節(jié)點(diǎn)數(shù)量盡可能相同;步驟3:在sl和s2兩個(gè)簇內(nèi)分別按照步驟l、步驟2兩個(gè)步驟再進(jìn)行劃分,分割成更小 的子簇步驟4:重復(fù)進(jìn)行分割,直至達(dá)到預(yù)期的簇的個(gè)數(shù)。
全文摘要
本發(fā)明公開一種能量高效的無線傳感器網(wǎng)絡(luò)路由方法,適合于分層傳感器網(wǎng)絡(luò)結(jié)構(gòu)。此路由方法由初始化、簇建立、簇間路由和路由維護(hù)組成。協(xié)議的初始化過程使得Sink節(jié)點(diǎn)獲得傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)平均能量,每個(gè)節(jié)點(diǎn)獲取自己到Sink節(jié)點(diǎn)的跳數(shù);簇建立階段使用重復(fù)分割法劃分傳感器網(wǎng)絡(luò)簇,所劃分的簇均勻,且簇頭節(jié)點(diǎn)由剩余能量較高的節(jié)點(diǎn)承擔(dān);簇間路由使用蟻群算法,依據(jù)鏈路信息素濃度來確定使用此該鏈路發(fā)送信息的概率,鏈路信息素濃度隨著鏈路上信息傳輸而增加,隨著時(shí)間推移而減少;路由維護(hù)階段負(fù)責(zé)更新鏈路信息素濃度,并使剩余能量高的簇內(nèi)節(jié)點(diǎn)輪流擔(dān)當(dāng)簇頭。此路由方法能夠減少網(wǎng)絡(luò)總能量消耗,平衡節(jié)點(diǎn)能量消耗,延長(zhǎng)網(wǎng)絡(luò)生命周期。
文檔編號(hào)H04L29/08GK101360051SQ200810150309
公開日2009年2月4日 申請(qǐng)日期2008年7月11日 優(yōu)先權(quán)日2008年7月11日
發(fā)明者劉家佳, 龐遼軍, 勇 曾, 李興華, 力 楊, 超 楊, 毛立強(qiáng), 沈玉龍, 超 王, 裴慶祺, 馬建峰 申請(qǐng)人:西安電子科技大學(xué)