無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法
【專利摘要】本發(fā)明涉及無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,首先提出的基于改進粒子群聚類的多sink優(yōu)化部署方法,將改進的粒子群算法與K?均值聚類相結(jié)合,對網(wǎng)絡(luò)區(qū)域內(nèi)所有傳感器節(jié)點進行聚類和分區(qū),多個sink節(jié)點分別部署在每一類的中心,以達到網(wǎng)絡(luò)分區(qū)合理、多sink節(jié)點部署優(yōu)化的效果;同時針對多sink網(wǎng)絡(luò)中某個sink節(jié)點失效的情況,提出一個帶容錯機制的路由算法,采用多路徑路由的容錯機制,創(chuàng)建從源節(jié)點到不同sink節(jié)點的兩條路徑,當某個sink節(jié)點失效時,激活備選路由。本發(fā)明在無線傳感器網(wǎng)絡(luò)中部署多個sink節(jié)點可以提高網(wǎng)絡(luò)的可靠性,當一個sink節(jié)點發(fā)生故障時,還有另外幾個sink節(jié)點可以替代該sink節(jié)點的工作,保證網(wǎng)絡(luò)的可靠運行,延長了網(wǎng)絡(luò)的生命周期。
【專利說明】
無線傳感器網(wǎng)絡(luò)的多S i nk部署與容錯方法
技術(shù)領(lǐng)域
[0001]本發(fā)明屬無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,涉及一種無線傳感器網(wǎng)絡(luò)的多sink部署與容 錯方法,特別是涉及了基于改進粒子群聚類的多sink優(yōu)化部署方法與一個帶容錯機制的路 由算法。
【背景技術(shù)】
[0002] 無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是一種全新的信息獲取方式, 它不需要固定網(wǎng)絡(luò)支持,以其隨機布置、自組織、抗毀性強、適應(yīng)苛刻環(huán)境等優(yōu)勢,具有在多 種場合滿足信息獲取的實時性、準確性、全面性等需求的能力。由于無線傳感器網(wǎng)絡(luò)的應(yīng)用 前景愈來愈廣泛,已引起了許多國家學術(shù)界和工業(yè)界的高度重視,被認為是對21世紀產(chǎn)生 巨大影響力的技術(shù)之一。
[0003] WSN具有監(jiān)測范圍廣、無需人工干預(yù)、自動長期采集數(shù)據(jù)等特點,因此可以在物聯(lián) 網(wǎng)應(yīng)用中發(fā)揮重要作用。但是受限于傳感器網(wǎng)絡(luò)的多對一傳輸模式,傳感器網(wǎng)絡(luò)中靠近 sink的節(jié)點通常由于承擔過重的轉(zhuǎn)發(fā)任務(wù)而提前死亡,形成所謂的"能量空洞"。在能量空 洞產(chǎn)生后,網(wǎng)絡(luò)外圍的數(shù)據(jù)無法傳送到sink,從而導致網(wǎng)絡(luò)過早死亡。為了解決"能量空洞" 問題,最大限度地提高傳感器網(wǎng)絡(luò)的生命期。我們還考慮更多的因素。分簇傳感器網(wǎng)絡(luò)作為 一種層次型網(wǎng)絡(luò),通過其數(shù)據(jù)融合和層次性結(jié)構(gòu)等特性,一定程度上均衡網(wǎng)絡(luò)中節(jié)點的能 量消耗并提高了網(wǎng)絡(luò)壽命。
[0004]目前在傳感器網(wǎng)絡(luò)的非均勻節(jié)點部署策略和分簇傳感器網(wǎng)絡(luò)性能優(yōu)化等方面已 有大量的研究成果,以期達到更大的能量利用率和網(wǎng)絡(luò)壽命。發(fā)明專利"一種面向精準農(nóng)業(yè) 的WSN節(jié)點部署方法"(申請?zhí)枺?01310306040.4)將整個WSN網(wǎng)絡(luò)分成多個一級固定簇頭、多 個二級簇頭、多個傳感器節(jié)點和sink節(jié)點,其中一級固定簇頭屬于總線型拓撲結(jié)構(gòu),依次排 列最終與sink節(jié)點相連,每一個固定簇頭和多個二級非固定簇頭相連通,一個二級非固定 簇頭和多個傳感器節(jié)點相連通,一級固定簇頭和sink節(jié)點采用太陽能供電以減小能耗和提 高可靠性;但沒有不適用多個s ink節(jié)點的情況,且沒有考慮容錯方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問題是提供無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,特 別是提供了基于改進粒子群聚類的多sink優(yōu)化部署方法與一個帶容錯機制的路由算法,保 證網(wǎng)絡(luò)的可靠運行,延長了網(wǎng)絡(luò)的生命周期。
[0006] 本發(fā)明的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,無線傳感器網(wǎng)絡(luò)中部署多個 sink節(jié)點,包括多sink部署方法和容錯方法;部署完成后,在每個子網(wǎng)區(qū)域內(nèi)再次利用粒子 群聚類算法,對傳感器節(jié)點進行分簇,采用多路徑路由容錯機制,建立多條到不同sink節(jié)點 的路由路徑,二者結(jié)合使用,保證無線傳感網(wǎng)絡(luò)的可靠運行;
[0007] 所述多sink部署方法為基于改進粒子群聚類的多sink優(yōu)化部署方法,將改進的粒 子群算法與K-均值聚類相結(jié)合,對網(wǎng)絡(luò)區(qū)域內(nèi)所有sink節(jié)點進行聚類,分成K個不同的區(qū) 域,多個sink節(jié)點分別部署在每一類的中心,以達到網(wǎng)絡(luò)分區(qū)合理且多sink節(jié)點部署優(yōu)化 的效果;
[0008] 所述改進的粒子群算法是指改進慣性權(quán)重計算的粒子群算法,進一步是改進慣性 權(quán)重計算和加入擾動因素的粒子群算法;在PSO算法中,慣性權(quán)重系數(shù)ω的設(shè)置對算法的收 斂速度和算法結(jié)果有很大影響,ω較大時,全局搜索能力強;ω較小時,局部搜索能力強。在 標準的PSO算法中,慣性權(quán)重系數(shù)ω是以固定方式線性遞減的,這種線性遞減并不是以粒子 群中粒子的實際收斂情況進行動態(tài)調(diào)整全局搜索能力和局部搜索能力的。由于粒子飛行具 有不可預(yù)見性,粒子群的收斂并不是線性的。因此定義ω線性遞減不是很合理。本發(fā)明對 PSO算法中的慣性權(quán)重進行了改進,慣性權(quán)重計算改進為:
[0009]
[0010] 其中,k為迭代次數(shù),COk為第k次迭代的慣性權(quán)重,c〇max、COmin分別表示最大慣性權(quán) 重和最小慣性權(quán)重;/t表示第k代第i個粒子的適應(yīng)度,表示第k代粒子群的全局最優(yōu)解; 慣性權(quán)重影響著算法的收斂速度和結(jié)果,當粒子群中粒子分散時,粒子的適應(yīng)度差異較大, ω 1{值較大;當粒子群趨于收斂時,ω k值逐漸減小;當粒子群收斂于全局最優(yōu)點時,ω 0。因此,ω >^可以根據(jù)每一次迭代時粒子群的收斂情況進行動態(tài)自適應(yīng)調(diào)節(jié)慣性權(quán)重。所述 加入的擾動因素是指,當速度小于某一極小值時,隨機抽取占群體比例為10%的粒子進行 位置隨機初始化,進行迭代尋優(yōu);
[0011] 所述改進的粒子群算法與K-均值聚類相結(jié)合是指先用κ-means算法計算出各類的 中心,然后在粒子群算法初始化時將其賦值給某個粒子,其余粒子隨機初始化,最后用粒子 群算法完成聚類;K-均值聚類具體為:K均值聚類也稱K-means算法,是一種最基本的聚類算 法,基本思想是根據(jù)數(shù)據(jù)的內(nèi)在性質(zhì),將其劃分為K個聚類區(qū),盡可能地使類內(nèi)離散度最小、 類間離散度最大。其基本步驟如下:
[0012] (1)從數(shù)據(jù)對象中隨機選擇K個對象作為初始聚類中心Cl,C2, ...,ck。
[0013] (2)將每個對象按最小距離原則劃分到最近的一個聚類中心Cl(i = l,2,…,k),被 指定到同一質(zhì)心的點屬于同一個聚類,共形成K個聚類。
[0014] (3)計算新的聚類中心V1, S
其中N1為第i個聚類域匕包含的個數(shù)。
[0015] ⑷計算判斷,是否等于Cl,若不相等則轉(zhuǎn)至步驟2),直到1 = Cl,即聚類中心不 再發(fā)生變化,聚類算法結(jié)束。
[0016] 所述容錯方法為帶容錯機制的多sink分簇路由算法,采用多路徑路由容錯機制, 建立多條到不同s ink節(jié)點的路由路徑。首先,確定備選目的s ink節(jié)點,簇頭節(jié)點在其他子網(wǎng) 區(qū)域的sink節(jié)點中選擇離自身位置最近的sink節(jié)點作為備選目的sink節(jié)點;然后,確定備 選路由路徑,簇頭節(jié)點在自身鄰節(jié)點集合中選擇到備選目的s ink節(jié)點近的簇頭節(jié)點作為下 一跳節(jié)點的集合,然后通過定義路由路徑評價函數(shù),綜合考慮路徑上的能量消耗、路徑上的 最小剩余能量和路徑上數(shù)據(jù)包的傳輸跳數(shù)等因素,選擇綜合指標最佳的那條路由路徑作為 備選路由路徑;當負責該區(qū)域的sink節(jié)點失效時,觸發(fā)一個信號,通知本區(qū)域內(nèi)的所有傳感 器節(jié)點,簇頭節(jié)點接收到該消息后,中間節(jié)點將所傳輸?shù)臄?shù)據(jù)包傳回至源節(jié)點,刪除目的節(jié) 點為該s i n k的路由路徑,并向鄰居廣播s i n k節(jié)點失效的消息,當簇頭節(jié)點接收到該消息后, 立即查看自己的目標sink節(jié)點是否該失效sink節(jié)點,若是,則立即啟動備選路由路徑。
[0017] 作為優(yōu)選的技術(shù)方案:
[0018] 如上所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,所述方法的具體步驟為:
[0019] (1)初始化。初始化包括粒子編碼、K-means的聚類數(shù)目K的設(shè)定、粒子群算法中的 粒子編碼和粒子數(shù)目L的設(shè)定。對于粒子編碼采用實數(shù)編碼方式,每個粒子作為一個可行解 組成粒子群,每個粒子的位置由K個聚類中心組成,通過調(diào)整聚類中心獲得最優(yōu)劃分。每個 粒子由三個部分組成,即粒子位置、速度和適應(yīng)度值。
[0020] 粒子i的位置編碼結(jié)構(gòu)表示為:
[0021] Xi= [ci, C2, , Cj, ··· ,ck]
[0022] 其中Cj表示類j的聚類中心,是一個2維矢量。
[0023]粒子i的速度編碼結(jié)構(gòu)為:
[0024] Vi= [vi, V2, , Vj, ,νκ]
[0025] 其中Vj表示第j個聚類中心的速度值,是一個2維矢量。
[0026] 對于第i個粒子,先將每個傳感器節(jié)點隨機指派為某一類,作為最初的聚類劃分, 然后計算各類的聚類中心,作為粒子i的位置編碼X 1,設(shè)置粒子i各聚類中心的初始速度為 〇,計算粒子的適應(yīng)度fi;
[0027] (2)對每個粒子,根據(jù)在粒子群優(yōu)化算法中的適應(yīng)度函數(shù)計算其聚類中心和更新 粒子的適應(yīng)度值;
[0028] (3)根據(jù)粒子群中粒子的適應(yīng)度大小,得到粒子的個體最優(yōu)位置Pld和全局最優(yōu)位 置 Pgd;
[0029] (4)更新慣性權(quán)重系數(shù)ω ;
[0030] (5)根振
更新粒子的速度,根據(jù)
更新粒子的速度;
[0031] (6)判斷粒子的速度是否小于某一極小值;若否,則不加入擾動策略;若是,則加入 擾動策略:隨機抽取占群體比例為10%的粒子進行位置隨機初始化,進行迭代尋優(yōu);
[0032] (7)對每個傳感器節(jié)點,根據(jù)粒子的聚類中心,按照最近鄰法則,來確定該傳感器 節(jié)點位置的聚類劃分;
[0033] (8)如果達到結(jié)束條件,則算法結(jié)束,輸出每個sink節(jié)點部署的位置;否則,轉(zhuǎn)到步 驟(2)繼續(xù)迭代;
[0034] 所述達到結(jié)束條件是指達到設(shè)定的聚類效果或設(shè)定的最大迭代次數(shù)。
[0035] 如上所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,聚類中心的位置計算按如 下公式:
[0036]
[0037] 其中,CjP為類j的聚類中心的位置;N表示傳感器節(jié)點的個數(shù);
[0038] Colj是一個NXK的加權(quán)矩陣,矩陣元素由0或1組成,當傳感器節(jié)AS1屬于類j時為 1,不屬于時為〇;
[0039] 3^表示傳感器節(jié)點Si的位置;
[0040] 粒子適應(yīng)度函數(shù)如下:
[0041]
[0042]其中,K表示聚類的類別數(shù),即預(yù)計部署sink節(jié)點個數(shù);m表示屬于類j的傳感器節(jié) 點個數(shù)。在粒子群優(yōu)化算法中,適應(yīng)度函數(shù)用于判斷種群進化過程中粒子所在位置的好壞。 在聚類算法中衡量聚類效果的好壞,主要取決于總的類內(nèi)離散度F。類內(nèi)離散度F越小,聚類 效果越好。
[0043] 如上所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,某一極小值是指粒子的在 迭代過程中,其速度不再發(fā)生變化。
[0044] 如上所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,部署完成后,在每個子網(wǎng) 區(qū)域內(nèi)再次利用改進的粒子群聚類算法,對傳感器節(jié)點進行分簇,具體為:
[0045] 在每個sink負責的子網(wǎng)區(qū)域內(nèi),利用粒子群聚類算法對該區(qū)域內(nèi)的傳感器節(jié)點進 行分簇,選擇離聚類中心較近的并且剩余能量相對較高的節(jié)點作為簇頭節(jié)點;在一個簇內(nèi), 簇頭選舉公式為:
[0046]
[0047] 其中,E表示傳感器節(jié)點的當前剩余能量,EO表示傳感器節(jié)點的初始能量,因此,E/ EO表示傳感器節(jié)點的剩余能量級,davertocen表示本簇內(nèi)所有傳感器節(jié)點到簇中心的距離的 平均值,Cl1表示傳感器到簇中心的距離,(^和^分別;
的權(quán)重系數(shù);在選擇 簇頭節(jié)點時,選擇離簇中心近的并且剩余級能量高的節(jié)點當選簇頭。
[0048] 如上所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,所述容錯方法具體步驟 為:
[0049] (1)在每個子網(wǎng)區(qū)域內(nèi),均有一個sink節(jié)點負責收集本網(wǎng)絡(luò)區(qū)域內(nèi)傳感器節(jié)點采 集的數(shù)據(jù),則該子網(wǎng)內(nèi)所有的簇頭節(jié)點的主路由的目的sink節(jié)點即為該sink節(jié)點;在簇頭 節(jié)點與其目的sink節(jié)點間建立路由,通過定義路由路徑評價函數(shù),綜合考慮路徑上的能量 消耗、路徑上的最小剩余能量和路徑上數(shù)據(jù)包的傳輸跳數(shù)等因素,選擇綜合指標最佳的那 條路由路徑作為為主路由;
[0050] 所述路由路徑評價函數(shù)為:
[0051 ] fp= (Costp)aX (EreP)PX (HopcountP)Y
[0052]其中,Costp表示該條路徑傳輸能耗,Erep表示該條路徑上的最小剩余能量, Hopcountp表示該條路徑上源節(jié)點到sink節(jié)點的跳數(shù)。α表示能量消耗系數(shù),為正數(shù);β表示 節(jié)點剩余能量系數(shù),為負數(shù);Y表示節(jié)點到sink的傳輸跳數(shù)系數(shù),為正數(shù)。
[0053] (2)為了應(yīng)對sink節(jié)點出現(xiàn)故障的情況,建立一條備選路由路徑;首先,確定備選 目的s ink節(jié)點,簇頭節(jié)點在其他子網(wǎng)區(qū)域的s ink節(jié)點中選擇離自身位置最近的s ink節(jié)點作 為備選目的Sink節(jié)點;然后,確定備選路由路徑,簇頭節(jié)點在自身鄰節(jié)點集合中選擇到備選 目的sink節(jié)點近的簇頭節(jié)點作為下一跳節(jié)點的集合,然后通過定義路由路徑評價函數(shù),綜 合考慮路徑上的能量消耗、路徑上的最小剩余能量和路徑上數(shù)據(jù)包的傳輸跳數(shù)等因素,選 擇綜合指標最佳的那條路由路徑作為備選路由路徑;當負責該區(qū)域的sink節(jié)點失效時,觸 發(fā)一個信號,通知本區(qū)域內(nèi)的所有傳感器節(jié)點,簇頭節(jié)點接收到該消息后,中間節(jié)點將所傳 輸?shù)臄?shù)據(jù)包傳回至源節(jié)點,刪除目的節(jié)點為該sink的路由路徑,并向鄰居廣播sink節(jié)點失 效的消息,當簇頭節(jié)點接收到該消息后,立即查看自己的目標sink節(jié)點是否該失效sink節(jié) 點,若是,則立即啟動備選路由路徑。
[0054] 所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,可設(shè)定sink節(jié)點的數(shù)目K為5, 網(wǎng)絡(luò)中隨機分布的傳感器節(jié)點個數(shù)為400,網(wǎng)絡(luò)區(qū)域為600mX 600m,將整個網(wǎng)絡(luò)劃分為5個 子網(wǎng)分區(qū),每個sink節(jié)點負責收集一個子網(wǎng)分區(qū)中傳感器節(jié)點采集的數(shù)據(jù),然后對sink節(jié) 點進行部署,改進的粒子群算法的學習因子C1 = C2=1.2,簇頭選舉公式中ω i = c〇2 = 0.5, 路由路徑評價函數(shù)函數(shù)中,α = 2,β = _5, γ =2。
[0055] 本發(fā)明的一種無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,首先提出的基于改進粒 子群聚類的多sink優(yōu)化部署方法,將改進的粒子群算法與K-均值聚類相結(jié)合,對網(wǎng)絡(luò)區(qū)域 內(nèi)所有傳感器節(jié)點進行聚類,分成K個不同的區(qū)域,多個sink節(jié)點分別部署在每一類的中 心,以達到網(wǎng)絡(luò)分區(qū)合理、多sink節(jié)點部署優(yōu)化的效果;同時針對多sink網(wǎng)絡(luò)中某個sink節(jié) 點失效的情況,提出一個帶容錯機制的路由算法,該算法采用多路徑路由的容錯機制,創(chuàng)建 從源節(jié)點到不同sink節(jié)點的兩條路徑,到本子網(wǎng)區(qū)域的sink節(jié)點的最優(yōu)的路徑為主路由, 到其他sink節(jié)點的最優(yōu)的路徑作為備選路由路徑,當某個sink節(jié)點失效時,激活備選路由。 本發(fā)明在無線傳感器網(wǎng)絡(luò)中部署多個sink節(jié)點可以提高網(wǎng)絡(luò)的可靠性,當一個sink節(jié)點發(fā) 生故障時,還有另外幾個s ink節(jié)點可以替代該s ink節(jié)點的工作,保證網(wǎng)絡(luò)的可靠運行,延長 了網(wǎng)絡(luò)的生命周期。
[0056] 有益效果
[0057] (1)采用智能算法對多sink優(yōu)化部署。提出了改進的粒子群聚類算法(IPSCO)比標 準的粒子群聚類算法(IPSO)收斂速度要快,當陷入局部最優(yōu)解時,IPSCO算法能夠較快的跳 出局部最優(yōu)解,進而去尋找全局最優(yōu)解。
[0058] (2)延長WSN網(wǎng)絡(luò)的生命周期越長,提出了一種基于改進粒子群聚類的多sink部署 算法,該算法主要針對大規(guī)模的無線傳感器網(wǎng)絡(luò),在網(wǎng)絡(luò)區(qū)域內(nèi)部署多個sink節(jié)點,將大規(guī) 模的網(wǎng)絡(luò)分為較小的子網(wǎng)。該算法主要是根據(jù)傳感器節(jié)點的位置信息進行聚類,然后將 sink節(jié)點部署在每一類的中心
[0059] (3)保證網(wǎng)絡(luò)的可靠運行。采用多路徑路由的容錯機制,創(chuàng)建從源節(jié)點到不同sink 節(jié)點的兩條路徑,到本子網(wǎng)區(qū)域的sink節(jié)點的最優(yōu)的路徑為主路由,到其他sink節(jié)點的最 優(yōu)的路徑作為備選路由路徑,當某個sink節(jié)點失效時,激活備選路由。
【附圖說明】
[0060] 圖1是本發(fā)明改進的粒子群聚類算法(IPSCO)流程圖;
[0061 ]圖2是本發(fā)明IPSCO算法部署多sink節(jié)點的布局圖;
[0062]圖3是本發(fā)明IPSCO算法與IPSO聚類算法的迭代結(jié)果對比圖;
[0063]圖4是本發(fā)明的不同部署算法的網(wǎng)絡(luò)生命周期對比圖;
[0064]圖5是本發(fā)明的無線傳感器網(wǎng)絡(luò)系統(tǒng)多sink容錯整體模型;
[0065]圖6是本發(fā)明的多sink節(jié)點放置圖;
[0066]圖7是本發(fā)明的多sink網(wǎng)絡(luò)分區(qū)中傳感器節(jié)點分簇拓撲圖;
[0067]圖8是本發(fā)明的多sink網(wǎng)絡(luò)多路徑路由容錯過程圖;
[0068] 圖9是本發(fā)明的加容錯機制與未加容錯機制的數(shù)據(jù)包接收率對比圖。
【具體實施方式】
[0069] 下面結(jié)合【具體實施方式】,進一步闡述本發(fā)明。應(yīng)理解,這些實施例僅用于說明本發(fā) 明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù) 人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限 定的范圍。
[0070] 實施例1
[0071] -種無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,通過基于改進粒子群聚類的多 sink優(yōu)化部署方法,將改進的粒子群算法與K-均值聚類相結(jié)合,對網(wǎng)絡(luò)區(qū)域內(nèi)所有傳感器 節(jié)點進行聚類,分成K個不同的區(qū)域,多個sink節(jié)點分別部署在每一類的中心,以達到網(wǎng)絡(luò) 分區(qū)合理、多sink節(jié)點部署優(yōu)化的效果;同時針對多sink網(wǎng)絡(luò)中某個sink節(jié)點失效的情況, 提出一個帶容錯機制的路由算法,該算法采用多路徑路由的容錯機制,其步驟如圖1所示。
[0072] 假設(shè)網(wǎng)絡(luò)需要部署sink節(jié)點的數(shù)目K為5,網(wǎng)絡(luò)中隨機分布的傳感器節(jié)點個數(shù)為 400,網(wǎng)絡(luò)區(qū)域為600mX600m,將整個網(wǎng)絡(luò)劃分為5個子網(wǎng)分區(qū),每個sink節(jié)點負責收集一個 子網(wǎng)分區(qū)中傳感器節(jié)點采集的數(shù)據(jù),然后對sink節(jié)點進行部署,改進的粒子群算法的學習 因子Cl = C2 = l .2,簇頭選舉公式中CO1= c〇2 = 0.5,路由路徑評價函數(shù)函數(shù)中,α = 2,β = -5, γ = 2,具體步驟如下:
[0073] ⑴初始化。給定聚類數(shù)目Κ = 5和粒子數(shù)目L = 400,對于第i個粒子,先將每個傳感 器節(jié)點隨機
[0074]指派為某一類,作為最初的聚類劃分,然后計算各類的聚類中心:
[0075]其中,聚類中心的位置Cjp是按照K均值聚類的聚類中心計算方法計算得來的,其表 達式如式所示。
[0076]
[0077] Colj是一個NXK的加權(quán)矩陣,矩陣元素由0或1組成,當傳感器節(jié)AS 1屬于類j時為 1,不屬于時為〇 ;m表示屬于類j的傳感器節(jié)點個數(shù);Sip表示傳感器節(jié)點的位置;Cjp表示類j 的聚類中心的位置。粒子i的位置編碼X1,計算粒子的適應(yīng)度h,設(shè)置粒子i各聚類中心的初 始速度為0。
[0078] (2)對每個粒子,根據(jù)相應(yīng)的聚類劃分,根據(jù)在粒子群優(yōu)化算法中的適應(yīng)度函數(shù)計 算其聚類中心和更新粒子的適應(yīng)度值:
[0079]其中,定義粒子適應(yīng)度函數(shù)如下:
[0080]
[0081 ] 其中,K表示聚類的類別數(shù),即餓計部著sink節(jié)點個數(shù);N表示傳感器節(jié)點的個數(shù); ω "是一個NXK的加權(quán)矩陣,矩陣元素由0或1組成,當傳感器節(jié)AS1屬于類j時為1,不屬于 時為〇;m表示屬于類j的傳感器節(jié)點個數(shù);S ip表示傳感器節(jié)點的位置;Cjp表示類j的聚類中 心的位置。
[0082] (3)根據(jù)粒子群中粒子的適應(yīng)度大小,得到粒子的個體最優(yōu)位置Pld和全局最優(yōu)位 置 Pgd。
[0083] (4)根據(jù)改進后的PSO算法中的慣性權(quán)重的公式更新慣性權(quán)重系數(shù)ω,其中comax取 0.9, comin取0.5;
[0084]其中,PSO算法中的慣性權(quán)重進行了改進,具體表達式如下所示:
[0085]
[0086] 其中,k為迭代次數(shù),cok表示第k次迭代時的慣性權(quán)重,comax、comin分別表示最大慣 性權(quán)重和最小慣性權(quán)重,當慣性權(quán)重ω大于co max時,置ω = comax;當慣性權(quán)重ω小于comin 時,ω = ωΜη,這樣就可以使得ω限定在區(qū)間[comin,comax]內(nèi)。/f表示第k代第i個粒子的適 應(yīng)度表示第k代粒子群的全局最優(yōu)解。慣性權(quán)重影響著算法的收斂速度和結(jié)果,當粒子 群中粒子分散時,粒子的適應(yīng)度差異較大,ω 1Mt較大;當粒子群趨于收斂時,ω 1Mt逐漸減 ?。划斄W尤菏諗坑谌肿顑?yōu)點時,ω k值為〇。
[0087] (5)根據(jù)PSO算法中動態(tài)跟蹤兩個"最優(yōu)解"來進行不斷更新所有粒子的速度和位
置,
[0088]
[0089]
[0090]
[0091]
[0092]其中,在600mX600m網(wǎng)絡(luò)區(qū)域內(nèi)隨機部署400個傳感器節(jié)點,sink節(jié)點部署個數(shù)為 〖,學習因子(31 = 02 = 1.2<^(]為粒子:[第(1維的速度,0為慣性權(quán)重系數(shù),1'1,^是介于(0,1)之 間的隨機數(shù),CdPc2為學習因子,X ld為粒子i在第d維的位置。慣性權(quán)重系數(shù)ω為隨時間線性 遞減函數(shù),它可使粒子群算法在開始時搜索較大的區(qū)域,從而較快地定位最優(yōu)聚類的大致 位置,隨著ω逐漸減小,粒子速度減慢,開始精細地局部搜索。
[0093] (6)判斷粒子的速度是否小于某一極小值,若是則加入擾動策略,隨機抽取占群體 比例為10%的粒子進行位置隨機初始化,進行迭代尋優(yōu)。
[0094] (7)對每個傳感器節(jié)點,根據(jù)粒子的聚類中心編碼,按照最近鄰法則,來確定該傳 感器節(jié)點位置的聚類劃分,
[0095] 其中,粒子的聚類中心編碼具體為:每個粒子由三個部分組成,即粒子位置、速度 和適應(yīng)度值。粒子i的位置編碼結(jié)構(gòu)表示為:
[0096] Xi= [ci, C2, , Cj, ··· ,ck];
[0097] 其中表示類j的聚類中心,是一個2維矢量。
[0098]粒子i的速度編碼結(jié)構(gòu)為:
[0099] Vi= [vi, V2, , Vj, ,νκ];
[0100] 其中Vj表示第j個聚類中心的速度值,是一個2維矢量。粒子i的適應(yīng)度值fi為一個 實數(shù)。
[0101] (8)如果達到結(jié)束條件(等到足夠好的位置或最大迭代次數(shù)),則算法結(jié)束,輸出每 個sink節(jié)點部署的位置;否則,轉(zhuǎn)到步驟(2)繼續(xù)迭代。
[0102] (9)部署完成后,在每個子網(wǎng)區(qū)域內(nèi)再次利用粒子群聚類算法,對傳感器節(jié)點進行 分簇,其中,簇頭選舉公式為:
[0103]
[0104] 其中,E表示傳感器節(jié)點的當前剩余能量,EO表示傳感器節(jié)點的初始能量,因此,E/ EO表示傳感器節(jié)點的剩余能量級,davertocen表示本簇內(nèi)所有傳感器節(jié)點到簇中心的距離的 平均值,Cl1表示傳感器到簇中心的距離,ω#Ρω 2是權(quán)重系數(shù)。在選擇簇頭節(jié)點時,選擇離簇 中心近的并且剩余級能量高的節(jié)點當選簇頭。
[0105] 利用改進的粒子群聚類算法部署多sink節(jié)點的布局圖如圖2所示;改進的粒子群 聚類算法和標準的粒子群聚類算法進行多sink部署時的迭代結(jié)果對比如圖3所示;分別利 用改進的粒子群聚類算法、標準的粒子群聚類算法和RDF算法進行多sink部署后的網(wǎng)絡(luò)生 命周期對比如圖4所示。
[0106] (10)采用多路徑路由容錯機制,建立多條到不同sink節(jié)點的路由路徑,具體步驟 如下:
[0107] 1)在每個子網(wǎng)區(qū)域內(nèi),均有一個sink節(jié)點負責收集本網(wǎng)絡(luò)區(qū)域內(nèi)傳感器節(jié)點采集 的數(shù)據(jù),則該子網(wǎng)內(nèi)所有的簇頭節(jié)點的主路由的目的sink節(jié)點即為該sink節(jié)點。在簇頭節(jié) 點與其目的sink節(jié)點間建立路由,通過定義路由路徑評價函數(shù),綜合考慮路徑上的能量消 耗、路徑上的最小剩余能量和路徑上數(shù)據(jù)包的傳輸跳數(shù)等因素,選擇綜合指標最佳的那條 路由路徑作為為主路由。
[0108] 2)為了應(yīng)對sink節(jié)點出現(xiàn)故障的情況,建立一條備選路由路徑。首先,確定備選目 的sink節(jié)點,簇頭節(jié)點在其他子網(wǎng)區(qū)域的sink節(jié)點中選擇離自身位置最近的sink節(jié)點作為 備選目的sink節(jié)點。然后,確定備選路由路徑,簇頭節(jié)點在自身鄰節(jié)點集合中選擇到備選目 的s ink節(jié)點近的簇頭節(jié)點作為下一跳節(jié)點的集合,然后通過定義路由路徑評價函數(shù),選擇 綜合指標最佳的那條路由路徑作為備選路由路徑。當負責該區(qū)域的sink節(jié)點失效時,觸發(fā) 一個信號,通知本區(qū)域內(nèi)的所有傳感器節(jié)點,簇頭節(jié)點接收到該消息后,中間節(jié)點將所傳輸 的數(shù)據(jù)包傳回至源節(jié)點,刪除目的節(jié)點為該s i n k的路由路徑,并向鄰居廣播s i n k節(jié)點失效 的消息,當簇頭節(jié)點接收到該消息后,立即查看自己的目標sink節(jié)點是否該失效sink節(jié)點, 若是,則立即啟動備選路由路徑。
[0109] 無線傳感器網(wǎng)絡(luò)系統(tǒng)多sink容錯整體模型如圖5所示;多sink節(jié)點放置圖如圖6所 示;多sink網(wǎng)絡(luò)分區(qū)中傳感器節(jié)點分簇拓撲圖如圖7所示;多sink網(wǎng)絡(luò)多路徑路由容錯過程 圖如圖8所示;加容錯機制與未加容錯機制的數(shù)據(jù)包接收率對比圖如圖9所示。
【主權(quán)項】
1. 無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,無線傳感器網(wǎng)絡(luò)中部署多個sink節(jié)點, 其特征是:包括多sink部署方法和容錯方法;先利用改進的粒子群聚類算法對多sink的部 署進行優(yōu)化,優(yōu)化部署完成后,在每個子網(wǎng)區(qū)域內(nèi)再次利用改進的粒子群聚類算法,對傳感 器節(jié)點進行分簇,然后針對多sink網(wǎng)絡(luò)中某個sink節(jié)點失效的情況,利用帶容錯機制的路 由算法,采用多路徑路由的策略,創(chuàng)建從源節(jié)點到不同sink節(jié)點的兩條路徑,當某個sink節(jié) 點失效時,激活備選路由,從而保證無線傳感網(wǎng)絡(luò)的可靠運行; 所述改進的粒子群聚類算法是指改進慣性權(quán)重計算的粒子群算法和加入擾動因素;慣 性權(quán)重計算改進為:其中,k為度rw乂 m,W-店政化化里,Umax、Wmin刀'則巧7]^最大慣性權(quán)重和 最小慣性權(quán)重;/f表示第k代第i個粒子的適應(yīng)度,表示第k代粒子群的全局最優(yōu)解。2. 根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的多Sink部署與容錯方法,其特征在于,所述 多S ink部署方法的具體步驟為: (1) 初始化: 初始化包括粒子編碼、K-means的聚類數(shù)目K的設(shè)定、粒子群算法中的粒子編碼和粒子 數(shù)目L的設(shè)定;對于粒子編碼采用實數(shù)編碼方式,每個粒子作為一個可行解組成粒子群,每 個粒子的位置由K個聚類中屯、組成,通過調(diào)整聚類中屯、獲得最優(yōu)劃分;每個粒子由=個部分 組成,即粒子位置、速度和適應(yīng)度值; 粒子i的位置編碼結(jié)構(gòu)表示為: Xi=[Cl,C2,...,Cj,...,CK]; 其中Cj表示類j的聚類中屯、,是一個2維矢量; 粒子i的速度編碼結(jié)構(gòu)為: Vi=[Vl,V2,...,Vj,...,VK]; 其中Vj表示第j個聚類中屯、的速度值,是一個2維矢量; 對于第i個粒子,先將每個傳感器節(jié)點隨機指派為某一類,作為最初的聚類劃分,然后 計算各類的聚類中屯、,作為粒子i的位置編碼XI,設(shè)置粒子i各聚類中屯、的初始速度為0,計 算粒子的適應(yīng)度fi; (2) 對每個粒子,根據(jù)在粒子群優(yōu)化算法中的適應(yīng)度函數(shù)計算其聚類中屯、和更新粒子 的適應(yīng)度值; (3) 根據(jù)粒子群中粒子的適應(yīng)度大小,得到粒子的個體最優(yōu)位置Pid和全局最優(yōu)位置Pgd; (4) 更新慣性權(quán)重系數(shù)CO; (5 )根據(jù)更新粒子的速度,根據(jù)!新粒子的速度; (6)判斷粒子的速度是否小于某一極小值;若否,則不加入擾動策略;若是,則加入擾動 策略:隨機抽取占群體比例為10%的粒子進行位置隨機初始化,進行迭代尋優(yōu); (7) 對每個傳感器節(jié)點,根據(jù)粒子的聚類中屯、,按照最近鄰法則,來確定該傳感器節(jié)點 位置的聚類劃分; (8) 如果達到結(jié)束條件,則算法結(jié)束,輸出每個sink節(jié)點部署的位置;否則,轉(zhuǎn)到步驟 (2)繼續(xù)迭代; 所述達到結(jié)束條件是指達到設(shè)定的聚類效果或設(shè)定的最大迭代次數(shù)。3. 根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,其特征在于,聚類 中屯、的位置計算按如下公式:其中,Cw為類j的聚類中屯、的位置;N表示傳感器節(jié)點的個數(shù); WiJ是一個NXK的加權(quán)矩陣,矩陣元素由0或1組成,當傳感器節(jié)點Si屬于類j時為1,不 屬于時為0; Sip表示傳感器節(jié)點Si的位置; 粒子適應(yīng)度函數(shù)如下: 其中,K表示聚類的類力y m,叩W H印>巧*S1 I-1 -m ; 示屬于類j的傳感器節(jié)點個 數(shù)。4. 根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,其特征在于,某一 極小值是指粒子的在迭代過程中,其速度不再發(fā)生變化。5. 根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,其特征在于,部署 完成后,在每個子網(wǎng)區(qū)域內(nèi)再次利用改進的粒子群聚類算法,對傳感器節(jié)點進行分簇,具體 為: 在每個sink負責的子網(wǎng)區(qū)域內(nèi),再次利用改進的粒子群聚類算法對該區(qū)域內(nèi)的傳感器 節(jié)點進行分簇,選擇離聚類中屯、較近的并且剩余能量相對較高的節(jié)點作為簇頭節(jié)點;在一 個簇內(nèi),簇頭選舉公式為:其中,E表示傳感器節(jié)點的當前剩余能量,EO表示傳感器節(jié)點的初始能量,因此,E/E0表 示傳感器節(jié)點的剩余能量級,davertDcen表示本簇內(nèi)所有傳感器節(jié)點到簇中屯、的距離的平均 值,d康示傳感器到簇中屯、的距離,…和CO 2分別是^和的權(quán)重系數(shù);在選擇簇頭 EU dj 節(jié)點時,選擇離簇中屯、近的并且剩余級能量高的節(jié)點當選簇頭。6. 根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的多sink部署與容錯方法,其特征在于,所述 容錯方法具體步驟為: (1)在每個子網(wǎng)區(qū)域內(nèi),均有一個sink節(jié)點負責收集本網(wǎng)絡(luò)區(qū)域內(nèi)傳感器節(jié)點采集的 數(shù)據(jù),則該子網(wǎng)內(nèi)所有的簇頭節(jié)點的主路由的目的sink節(jié)點即為該sink節(jié)點;在簇頭節(jié)點 與其目的sink節(jié)點間建立路由,通過定義路由路徑評價函數(shù),綜合考慮路徑上的能量消耗、 路徑上的最小剩余能量和路徑上數(shù)據(jù)包的傳輸跳數(shù)等因素,選擇綜合指標最佳的那條路由 路徑作為為主路由; 所述路由路徑評價函數(shù)為: fp= (CostpTx 巧 rep)ex (Hopcountp) 丫; 其中,Costp表示該條路徑傳輸能耗,Erep表示該條路徑上的最小剩余能量,化pcountp表 示該條路徑上源節(jié)點到sink節(jié)點的跳數(shù);a表示能量消耗系數(shù),為正數(shù);0表示節(jié)點剩余能量 系數(shù),為負數(shù);T表示節(jié)點到sink的傳輸跳數(shù)系數(shù),為正數(shù); (2)為了應(yīng)對sink節(jié)點出現(xiàn)故障的情況,建立一條備選路由路徑;首先,確定備選目的 sink節(jié)點,簇頭節(jié)點在其他子網(wǎng)區(qū)域的sink節(jié)點中選擇離自身位置最近的sink節(jié)點作為備 選目的sink節(jié)點;然后,確定備選路由路徑,簇頭節(jié)點在自身鄰節(jié)點集合中選擇到備選目的 sink節(jié)點近的簇頭節(jié)點作為下一跳節(jié)點的集合,然后通過定義路由路徑評價函數(shù),綜合考 慮路徑上的能量消耗、路徑上的最小剩余能量和路徑上數(shù)據(jù)包的傳輸跳數(shù)等因素,選擇綜 合指標最佳的那條路由路徑作為備選路由路徑;當負責該區(qū)域的sink節(jié)點失效時,觸發(fā)一 個信號,通知本區(qū)域內(nèi)的所有傳感器節(jié)點,簇頭節(jié)點接收到該消息后,中間節(jié)點將所傳輸?shù)?數(shù)據(jù)包傳回至源節(jié)點,刪除目的節(jié)點為該sink的路由路徑,并向鄰居廣播sink節(jié)點失效的 消息,當簇頭節(jié)點接收到該消息后,立即查看自己的目標sink節(jié)點是否該失效sink節(jié)點,若 是,則立即啟動備選路由路徑。
【文檔編號】H04W40/32GK105915451SQ201610341097
【公開日】2016年8月31日
【申請日】2016年5月19日
【發(fā)明人】丁永生, 姚光順, 李芳 , 郝礦榮, 蔡欣, 劉天鳳
【申請人】東華大學