一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法
【專利摘要】本發(fā)明涉及一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,在源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交的路由,網(wǎng)絡(luò)使用其中的1條路由,另外k?1條為備份路由,將由節(jié)點(diǎn)能量耗盡節(jié)點(diǎn)引起的路由故障作為抗原,將對應(yīng)的修復(fù)路由作為抗體;相應(yīng)的檢測模塊、應(yīng)答與學(xué)習(xí)模塊和記憶模塊來模擬免疫系統(tǒng)排除抗原的工作機(jī)制。學(xué)習(xí)模塊中,采用了克隆選擇算法?;趦?nèi)分泌系統(tǒng)的激素調(diào)節(jié)機(jī)制,對克隆和變異機(jī)制進(jìn)行了改進(jìn)。通過模擬免疫系統(tǒng)各個模塊的協(xié)同工作,ISRRA能夠有效地提供故障路由的修復(fù)策略,特別適合于EH?WSNs中相同故障路由多次出現(xiàn)的情況。此外,在故障路由修復(fù)過程中,ISRRA還對備份路由的質(zhì)量進(jìn)行評估并判斷是否對備份路由進(jìn)行更換,從而保證路由的質(zhì)量。
【專利說明】
一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬無線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,涉及一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修 復(fù)方法,特別是涉及一種可充電無線傳感器網(wǎng)絡(luò)以及基于內(nèi)分泌系統(tǒng)激素調(diào)節(jié)機(jī)制的克隆 選擇算法組成的改進(jìn)免疫算法的路由修復(fù)方法。
【背景技術(shù)】
[0002] 無線傳感器網(wǎng)絡(luò)(WSNs)的傳感器節(jié)點(diǎn)一般由電池提供能量且一般難以更換,因此 有限的電池容量是WSNs保持長期連續(xù)工作的的一個重要瓶頸。為了延長WSNs的生命周期, 已有大量的工作進(jìn)行了相應(yīng)的研究并設(shè)計了各種能量高效的網(wǎng)絡(luò)算法。但是,只要電池能 量是有限的,節(jié)點(diǎn)的能量耗盡將是不可避免的。為了克服這一缺陷,目前能量采集技術(shù)已經(jīng) 應(yīng)用到WSNs中。通過為傳感器節(jié)點(diǎn)安裝一個能量采集模塊,例如太陽,風(fēng)和振動等,傳感器 節(jié)點(diǎn)就可以從環(huán)境中獲取能量,這樣能量枯竭的傳感器節(jié)點(diǎn)就可以再次復(fù)活,從而有限地 延長WSNs的生命周期。
[0003] 然而在實(shí)際應(yīng)用過程中,一些不可預(yù)知的事件,如環(huán)境改變、通信鏈路斷裂等,都 可能會導(dǎo)致傳感器節(jié)點(diǎn)失效,并進(jìn)一步引起網(wǎng)絡(luò)分裂與功能失效。因此,容錯能力成為WSNs 甚至EH-WSNs,能夠順利通信的關(guān)鍵因素。在WSNs中,當(dāng)節(jié)點(diǎn)由于能量耗盡或者其它因素引 起路由失效時,通過應(yīng)用一定的容錯路由策略技術(shù),使整個系統(tǒng)能夠自動調(diào)整或自動重構(gòu), 恢復(fù)已失效的路徑,從而保證數(shù)據(jù)傳輸任務(wù)的正常執(zhí)行。為了保持路由的容錯能量,一般的 方法是建立k條不相交的路由。對于EH-WSNs來說,節(jié)點(diǎn)通過能量采集模塊能夠獲得的能量 經(jīng)常是隨機(jī)的、不穩(wěn)定的,并且是隨時間變化的。例如,如果一個節(jié)點(diǎn)安裝了太陽能收集模 塊,那么該節(jié)點(diǎn)在陰天或者晚上是無法收集到能量的。同時,和傳統(tǒng)WSNs中的節(jié)點(diǎn)不同,EH-WSNs中能量耗盡的節(jié)點(diǎn)在從環(huán)境中收集能量后,該節(jié)點(diǎn)還可以再次復(fù)活并為整個網(wǎng)絡(luò)工 作。這也意味著EH-WSNs中的節(jié)點(diǎn)能夠經(jīng)常在復(fù)活和枯竭兩個狀態(tài)之間切換。此外,由于H1-WSNs中節(jié)點(diǎn)能采集的能量是不穩(wěn)定的,EH-WSNs中的路由質(zhì)量也是動態(tài)變化的。因此,在EH-WSNs中,當(dāng)出現(xiàn)路由故障時,如何修復(fù)k條不相交路由,并保持路由的質(zhì)量是一個需要解決 的問題。
[0004] 目前,已有大量的工作對WSNs中的路由容錯策略進(jìn)行了研究,其共同點(diǎn)就是在源 節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交的路由,從而最多容忍k-Ι條路由出現(xiàn)故障的情況下, 網(wǎng)絡(luò)還可以正常工作而不受到影響。但是,在這些研究中并沒有對容錯路由的修復(fù)以及質(zhì) 量保持進(jìn)行相應(yīng)的研究。
[0005] 最近也有對WSNs中的故障路由修復(fù)問題進(jìn)行了相應(yīng)的研究。針對單移動Sink和多 移動Sink引起的可用路由故障問題,Hu等分別提出了 I0LPS0A和ECPS0A?;谔荻葦U(kuò)散和遺 傳算法,Shih等提出了一種故障節(jié)點(diǎn)修復(fù)算法FNILAbbasi等提出了一種利用最少節(jié)點(diǎn)進(jìn)行 故障路由的修復(fù)機(jī)制,但該算法只能應(yīng)用于由單個節(jié)點(diǎn)失效引起的路由故障。Lee等提出了 一個可以修復(fù)大規(guī)模節(jié)點(diǎn)失效的修復(fù)機(jī)制。以上這些算法,針對WSNs中的故障問題,提出了 各種有效的修復(fù)策略,但考慮的僅僅是故障路由的修復(fù),而沒有考慮路由容錯問題,同時研 究的是電池供電的WSNs,也不適用于EH-WSNs。另外,針對存在具有資源豐富的超級節(jié)點(diǎn)的 異構(gòu)無線傳感器網(wǎng)絡(luò),Hu等提出了一種容錯路由修復(fù)策略ICPSOA,但是該算法并不適用于 EH-WSNs,主要是因?yàn)樵贗CPSOA中,節(jié)點(diǎn)的能量是有限的,而在Hl-WSNs中節(jié)點(diǎn)的能量是可收 集且變化的。另外,k條不相交路由的質(zhì)量保持在ICPSOA中也沒有進(jìn)行相應(yīng)的考慮。
[0006] 為了解決EH-WSNs中的容錯路由修復(fù)并保持容錯路由的質(zhì)量,受免疫系統(tǒng)工作機(jī) 制啟發(fā),本發(fā)明提出了ISRRA。目前,免疫系統(tǒng)的工作機(jī)制已經(jīng)引起了越來越多的重視并在 多個方面得到了應(yīng)用。免疫系統(tǒng)包括免疫檢測、免疫應(yīng)答、免疫學(xué)習(xí)和免疫記憶等多個模塊 協(xié)同工作來保護(hù)生命體的健康工作。通過分析與比較,發(fā)現(xiàn)Hl-WSNs中的容錯路由修復(fù)與免 疫系統(tǒng)在多個方面存在相似性,受此啟發(fā),提出了ISRRA。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明所要解決的技術(shù)問題是提供一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方 法,特別是涉及一種可充電無線傳感器網(wǎng)絡(luò)以及基于內(nèi)分泌系統(tǒng)激素調(diào)節(jié)機(jī)制的克隆選擇 算法組成的改進(jìn)免疫算法的路由修復(fù)方法。
[0008] 本發(fā)明的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,簡稱縮寫為ISRRA,由可 充電無線傳感器網(wǎng)絡(luò)(EH-WSNs)靜態(tài)節(jié)點(diǎn)、S i nk節(jié)點(diǎn)和檢測模塊、應(yīng)答模塊、學(xué)習(xí)模塊以及 記憶庫組成;EH-WSNs是一個靜態(tài)網(wǎng)絡(luò),各傳感器節(jié)點(diǎn)均安裝有能量采集模塊,如太陽能板 等,這樣節(jié)點(diǎn)能夠從自然界中收集能量,且能量耗盡的節(jié)點(diǎn)在從自然界中收集能量后能夠 再次復(fù)活并進(jìn)行工作,其節(jié)點(diǎn)在部署完成后將不再移動;EH-WSNs靜態(tài)節(jié)點(diǎn)包括源節(jié)點(diǎn)和傳 播節(jié)點(diǎn),每個節(jié)點(diǎn)具有獨(dú)立的ID號,且各節(jié)點(diǎn)均知道自己和Sink節(jié)點(diǎn)的位置信息,位置信息 可以通過GPS模塊或者其他的定位算法得到;Sink節(jié)點(diǎn)的傳輸功率可以根據(jù)與其通信的節(jié) 點(diǎn)距離進(jìn)行動態(tài)調(diào)整;靜態(tài)節(jié)點(diǎn)可以與其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙向通信,且通過信息 交換,節(jié)點(diǎn)知道其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)的信息;其特征在于通過改進(jìn)的免疫算法有效地提 供故障路由的修復(fù)策略,特別適合于EH-WSNs中相同故障路由多次出現(xiàn)的情況,并能夠在 EH-WSNs中實(shí)現(xiàn)容錯路由修復(fù)、備份路由更換,包括以下步驟:
[0009] (1)初始化 EH-WSNs;
[0010] l)EH-WSNs是一個靜態(tài)網(wǎng)絡(luò),節(jié)點(diǎn)在部署完成后將不在移動;
[0011] 2)每個節(jié)點(diǎn)具有獨(dú)立的ID號,且各節(jié)點(diǎn)均知道自己和Sink節(jié)點(diǎn)的位置信息。位置 信息可以通過GPS模塊或者其他的定位算法得到;
[0012] 3)Sink節(jié)點(diǎn)的傳輸功率可以根據(jù)與其通信的節(jié)點(diǎn)距離進(jìn)行動態(tài)調(diào)整;
[0013] 4)節(jié)點(diǎn)可以與其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙向通信,且通過信息交換,節(jié)點(diǎn)知道 其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)的信息;
[0014] EH-WSNs中主要參數(shù)有:
[0015] EH-WSNs中傳感器節(jié)點(diǎn)集合 V
[0016] EH-WSNs 中 ID為i 的節(jié)點(diǎn) Vi
[0017] EH-WSNs 中的 Sink 節(jié)點(diǎn) s
[0018] EH-WSNs中所有節(jié)點(diǎn)的狀態(tài)信息Pv
[0019]用G=(vu {S},E)來表示由|V|個靜態(tài)節(jié)點(diǎn)和ifSink節(jié)點(diǎn)s組成的 EH-WSNs,其中 各傳感器節(jié)點(diǎn)均安裝有能量采集模塊,如太陽能板等。這樣節(jié)點(diǎn)能夠從自然界中收集能量, 且能量耗盡的節(jié)點(diǎn)在從自然界中收集能量后能夠再次復(fù)活并進(jìn)行工作。每個節(jié)點(diǎn)均有固定 的傳輸和數(shù)據(jù)采集半徑。若節(jié)點(diǎn)之間或者節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間的距離小于節(jié)點(diǎn)的傳輸距 離,那么這些節(jié)點(diǎn)之間就存在一條邊e e E。當(dāng)源節(jié)點(diǎn)與S i n k節(jié)點(diǎn)之間的距離大于節(jié)點(diǎn)的傳 輸距離時,源節(jié)點(diǎn)采集的數(shù)據(jù)將通過多跳傳輸?shù)姆绞桨l(fā)送到Sink節(jié)點(diǎn)。Sink節(jié)點(diǎn)收集各源 節(jié)點(diǎn)的數(shù)據(jù)并將其提供給用戶使用。同時,Sink節(jié)點(diǎn)的任務(wù)還包括其他各類復(fù)雜算法的處 理與實(shí)施,本發(fā)明提出的ISRRA就是由Sink節(jié)點(diǎn)完成。
[0020] (2)在EH-WSNs的源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交路徑,構(gòu)建容錯路由模型:
[0021] 類似于傳統(tǒng)WSNs中的容錯拓?fù)淇刂撇呗裕瑸榱嗽谀芰亢谋M、硬件故障或通信鏈路 錯誤等情況下網(wǎng)絡(luò)能夠正常工作,EH-WSNs同樣通過建立k條不相交路徑來實(shí)現(xiàn)容錯。這樣, 在最壞情況下,EH-WSNs最多可以容忍k-Ι次路由故障。在各節(jié)點(diǎn)部署完成后,從每個源節(jié)點(diǎn) 至lj S ink節(jié)點(diǎn)的k條不相交路由可以通過一些已有算法建立,如DVP,MWATCk和GATCk。
[0022] k條路由中有以下參數(shù):
[0023]節(jié)點(diǎn)^與8之間的所有路由集合 P(Vl,s)
[0024]節(jié)點(diǎn)Vi與s之間的第j條路由 pj(Vi,s)
[0025] Pj(Vi,S)中的失效節(jié)點(diǎn) Vfail
[0026] Pj(vi,s)中 ID 為 1 的節(jié)點(diǎn) VI
[0027] Pj(Vi,S)中節(jié)點(diǎn)Vfail/vi的子節(jié)點(diǎn) Vfail_c/vi_c
[0028] Pj(Vi,S)中節(jié)點(diǎn)Vfail/vi的父節(jié)點(diǎn) Vfailj/vi』
[0029] 在節(jié)點(diǎn)Vi與s之間的所有路由集合P(Vi,s)中,影響選擇Pj(Vi,s)為故障修復(fù)路由 的因素主要包括:
[0030] l)pj(Vi,s)中所有節(jié)點(diǎn)的剩余能量,rene(vi);
[0031] 2)相鄰節(jié)點(diǎn)之間的距離,dist(e);
[0032] 3)相鄰節(jié)點(diǎn)之間通信的能量消耗,ene(e);
[0033] 4)節(jié)點(diǎn)之間通信的通信延遲,delay(vi);
[0034] 5)從源節(jié)點(diǎn)¥!到3;[111^節(jié)點(diǎn)的通信跳數(shù),11(^化」(>1,8));
[0035]在ISRRA中,以上因素決定了路由pj(vi,s)的親和度函數(shù)aff (pj(vi,s)),其定義如 下:
[0036]
[0037]
[0038]
[0039]
[0040]
[0041] fi表示的是路由w(Vl,s)的路由長度與P(Vl,S)中所有路由長度的比值;
[0042] f2表示的是路由Pj(Vl,s)完成一次傳輸所消耗的能量與P( Vl,s)中所有路由完成 一次傳輸所消耗能量和的比值;
[0043] f3表不的是路由Pj(Vi,S)完成一次傳輸?shù)耐ㄐ叛舆t與P(Vi,s)中所有路由完成一 次傳輸?shù)耐ㄐ叛舆t和的比值;
[0044] f4表示的是路由Pj(Vl,s)完成一次傳輸?shù)奶鴶?shù)與P(Vl,s)中所有路由完成一次傳 輸?shù)奶鴶?shù)和的比值。
[0045] ω :、ω 2、ω 3和ω 4分別為f 和f4對應(yīng)的權(quán)值,它們的取值范圍是〇〈 ω :,ω 2, ω 3,ω 4〈1,且 ω !+ ω 2+ ω 3+ ω 4= 1,根據(jù) fi、f2、f3、f4 與親和力 aff(pj(Vi,s))的定義,可以得 到對于和ω4的取值分配分別側(cè)重在路由長度、消耗能量、傳輸延遲與路由條數(shù) 這四項,每項的比重大小表示對各項的側(cè)重程度高低;若應(yīng)用中針對能量消耗與傳輸延遲 需求較高,貝U可以分配ω 2和ω 3占據(jù)較高比例,示例分配如(^ = 0.1,(02 = 0.4,03 = 0.4, ω4 = 0.1;若應(yīng)用中針對路由長度的要求較高而其他三項要求同等或次要,則可以分配ωι 占據(jù)主導(dǎo)地位,分配ω :較大的比重,ω 2、ω 3和ω 4的比重整體處于較低水平,示例分配如ω 1 = 0.4, c〇2 = 0.2, c〇3 = 0.2, c〇4 = 0.2〇
[0046] 其中本發(fā)明設(shè)定^二。.、ω2 = 0.2, ω3 = 〇.2以及ω4 = 0.2。可以得出,路由的親 和度越高,則該條路由的質(zhì)量就越好。
[0047]同時,采用能量模型作為EH-WSNs中節(jié)點(diǎn)的能量消耗模型。單個節(jié)點(diǎn)采集、發(fā)送和 接收m比特數(shù)據(jù)所消耗的能量分別為:
[0048] enesen(m) =aim
[0049] enetx(m,d) = (βι+β20-)ηι
[0050] enerx(m)= γim
[005? ]其中,d為節(jié)點(diǎn)與其傳輸目標(biāo)節(jié)點(diǎn)之間的距離,enesen(m)表示采集m比特數(shù)據(jù)所消 耗的能量;enetx(m,d)和enerx(m)分別為發(fā)送和接收m比特數(shù)據(jù)所消耗的能量,c為信道衰減 系數(shù),,&和丫汾別是采集電路、發(fā)送電路、發(fā)送放大器和接收電路的能耗參數(shù)。
[0052] 用于計算enesen(m),enetx(m,d)和enerx(m)的參數(shù)分別定義為:(6^ = 601^/13:11:,βι = 45nJ/bit,fe=10nJ/bit,γ i = 135pj/bit/m2。信道衰減系數(shù)c為2;
[0053] 對于ISRRA,在尋優(yōu)過程的每次迭代中用于抗體克隆、變異、再選擇以及記憶細(xì)胞 儲存的能效消耗分別定義為6116 £1。,6116£1111,6116£^和61161 1^。因此,通過估算131?1^每次迭代中 消耗的能量就可以計算出整個ISRRA的總能耗。
[0054] (3) ISRRA檢測模塊檢測EH-WSNs中是否存在故障節(jié)點(diǎn);
[0055] 當(dāng)一條路由由于節(jié)點(diǎn)能量耗盡或其他原因出現(xiàn)故障時,ISRRA將立即工作,在所有 可用的節(jié)點(diǎn)中選擇一條親和力高的路由來替換故障路由。
[0056] 在ISRRA中,由節(jié)點(diǎn)能量耗盡節(jié)點(diǎn)引起的路由故障被視為抗原,檢測模塊的功能就 是負(fù)責(zé)抗原的檢測與識別。在ISRRA中,每個節(jié)點(diǎn)都可以和其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙 向通信。對于路由W( Vl,s)中的節(jié)點(diǎn)^來說,如果Vl能夠正常工作并發(fā)送數(shù)據(jù),那么它的父 節(jié)點(diǎn)Vi_p就能夠接收到VI發(fā)送的數(shù)據(jù)。如果Vi_p在一個事先定義的時間間隔內(nèi)沒有收到VI發(fā) 送的數(shù)據(jù),那么就認(rèn)為VI出現(xiàn)故障。此時,VI稱為 Vfall,Vl的父節(jié)點(diǎn)和子節(jié)點(diǎn)分別稱為Vfall的 Vfail』和Vfail_c。然后,VI將的ID和故障狀態(tài)信息Vfail(idfail)報告給Sink節(jié)點(diǎn);
[0057] 同時Vfall_P將這些信息報告給源節(jié)點(diǎn)。當(dāng)源節(jié)點(diǎn)接收到節(jié)點(diǎn)故障信息后,它將啟用 其他的備用路由進(jìn)行數(shù)據(jù)傳輸,同時Sink節(jié)點(diǎn)出發(fā)ISRRA的應(yīng)答模塊來進(jìn)行故障路由修復(fù) 工作。
[0058] (4)若檢測模塊檢測到EH-WSNs存在故障節(jié)點(diǎn),則開啟應(yīng)答模塊;
[0059] 當(dāng)應(yīng)答模塊被出發(fā)后,它將首先在ISRRA的記憶單元中進(jìn)行搜索,判斷記憶單元中 是否具有檢測到的抗原的信息。在免疫系統(tǒng)中,抗原提呈細(xì)胞將會把抗原的特異信息提供 給免疫細(xì)胞,相應(yīng)的抗體將會識別這些信息從而刺激大量抗體的生成,最終達(dá)到清除抗原 的效果。在ISRRA中,由于建立的是不相交路由,每個中繼節(jié)點(diǎn)只會在一條路由中出現(xiàn),因 此,以故障節(jié)點(diǎn)的ID(id fall)作為抗原的特異信息,并用其在記憶庫中進(jìn)行搜索。
[0060] 在搜索過程中,應(yīng)答模塊將對記憶庫中儲存的故障路由中包含節(jié)點(diǎn)的ID進(jìn)行搜 索。現(xiàn)假設(shè)記憶庫中儲存有MEN條故障路由信息,如果記憶庫中有故障路由信息滿足下式, 那么與該故障路由對應(yīng)的修復(fù)路由將被視為抗體用來修復(fù)故障路由:
[0061 ] eM£Af,idfaiiGfpi l^i^Mem_Cap
[0062]其中,fPi表示儲存在記憶庫中的第i條故障路由信息,Mem_Cap表示記憶庫的最大 儲存容量。
[0063 ]如果在記憶庫中搜索不到相應(yīng)的記憶信息與故障路由匹配,那么ISRRA將啟動學(xué) 習(xí)模塊來產(chǎn)生抗體。
[0064] (5)應(yīng)答模塊開啟后,首先在記憶庫中進(jìn)行搜索,檢索記憶庫中是否具有檢測到的 故障節(jié)點(diǎn)信息;若未找到,則開啟學(xué)習(xí)模塊;若找到,則直接進(jìn)行故障節(jié)點(diǎn)修復(fù);
[0065] 記憶模塊由不同的記憶細(xì)胞組成,每個記憶細(xì)胞記錄相應(yīng)的故障路由和修復(fù)路由 的信息。在ISRRA初次使用時,可以針對一些故障路由,根據(jù)一定的規(guī)則設(shè)計相應(yīng)的修復(fù)路 由存儲到記憶庫中。在后續(xù)使用中,記憶庫的規(guī)則就可以在線更新了。
[0066]記憶庫具有一定的容量限制,其最大容量為Mem_Cap。在使用過程中,對記憶庫中 的細(xì)胞按照使用頻率進(jìn)行排序。當(dāng)學(xué)習(xí)模塊提供新的信息需要存儲到記憶庫時,如果記憶 庫存儲的信息還沒有達(dá)到Mem_Cap,那么直接將新信息存儲到記憶庫中;如果記憶庫已經(jīng)達(dá) 至ljMem_Cap,那么將用新的存儲信息替換使用率最低的存儲信息。
[0067] 借助于記憶模塊,當(dāng)相同的路由故障再次出現(xiàn)時,ISRRA通過記憶細(xì)胞將能夠迅速 的提供相應(yīng)的修復(fù)路由。這一特點(diǎn),特別適用于EH_WSNs。這是因?yàn)樵贓H_WSNs中,節(jié)點(diǎn)可以 從自然界中采集能量,由于能量關(guān)系,節(jié)點(diǎn)的狀態(tài)可以在死亡與復(fù)活間不停的切換。因而, 相同的路由故障再次發(fā)生的頻率將遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的WSNs。
[0068] 學(xué)習(xí)模塊的最終相關(guān)信息會存儲在記憶庫中,儲存的信息包括故障路由和對應(yīng)的 修復(fù)路由信息。
[0069] (6)若記憶庫中沒有故障節(jié)點(diǎn)的信息,學(xué)習(xí)模塊開啟,通過改進(jìn)的克隆選擇算法產(chǎn) 生修復(fù)路由pXviJ);
[0070] 如果記憶庫中沒有信息滿足條件式,那么Sink節(jié)點(diǎn)將通過廣播路由修復(fù)請求PRR 信息來啟動學(xué)習(xí)模塊。PRR信息將通過備份路由傳播到源節(jié)點(diǎn)。當(dāng)vi接受到PRR信息后,它將 廣播一條路由修復(fù)應(yīng)答RRR信息,其中RRR信息中包含了該節(jié)點(diǎn)的剩余可用能量和坐標(biāo)。
[0071] 如果中繼節(jié)點(diǎn)VI接收到RRR信息,它將根據(jù)自身的狀態(tài)信息繼續(xù)中繼RRR信息。為 了保持k條不相交路由的質(zhì)量,所有接收到RRR信息的中繼節(jié)點(diǎn)都會計算相應(yīng)的參數(shù),計算 的參數(shù)主要包括:
[0072] 1)節(jié)點(diǎn)VI和其父節(jié)點(diǎn)νι_ρ之間的距離dist(e);
[0073] 2)通信的能量消耗ene(e);
[0074] 3)通信延遲delay(vi);
[0075] 然后節(jié)點(diǎn)vi將上述信息、自己的剩余可用能量rene(vi)以及自身和νι_Ρ的ID添加到 RRR信息中,并繼續(xù)中繼給其他節(jié)點(diǎn)。
[0076]上述的RRR信息中繼過程會一直持續(xù)到Sink節(jié)點(diǎn)接受RRR信息。然后Sink節(jié)點(diǎn)將從 RRR中提取相應(yīng)的信息并采用改進(jìn)的克隆選擇算法來選擇具有高親和力的路由pXvus)作 為修復(fù)路由。此外,除了對故障路由進(jìn)行修復(fù)外,Sink節(jié)點(diǎn)還將備用路由與其他可用路由的 質(zhì)量進(jìn)行對比。如果存在其他可用路由的質(zhì)量優(yōu)于備用路由,那么相應(yīng)的備份路由將被替 換。在這一過程中,克隆選擇算法將產(chǎn)生對應(yīng)的抗體來修復(fù)故障路由,對整個路由修復(fù)過程 有著重要的作用。但傳統(tǒng)的克隆選擇算法具有抗體種群多樣性差和早熟的缺陷,這將嚴(yán)重 妨礙其產(chǎn)生最佳的抗體。為了克服這些缺陷,受內(nèi)分泌系統(tǒng)中激素調(diào)節(jié)機(jī)制啟發(fā),將激素調(diào) 節(jié)機(jī)制嵌入到抗體的進(jìn)化過程中,從而促進(jìn)算法的全局和局部搜索能力。
[0077]改進(jìn)的克隆選擇算法主要是用于產(chǎn)生修復(fù)路由少(Vl,s),其主要步驟描述如下:
[0078 ] 1) S i nk節(jié)點(diǎn)利用提取的信息隨機(jī)生成抗體集Ab S;
[0079 ] 2)利用af f (p j (Vi,s))計算公式,計算每個抗體與抗原之間的親和力;
[0080] 3)從Abs中選擇親和力最佳的T個抗體形成臨時抗體集Abs' ;
[0081 ] 4)按下式計算抗體與抗體之間的親和力:
[0082]
[0083] 其中,Xi是Abs '中的一個抗體,I Abs' I是Abs'中的抗體數(shù)量,dij是抗體Xi與Xj之間 的歐式距離。af fabb (Xi)的值越大,說明抗體Xi與Abs '中其他抗體的相似性就越大。
[0084] 5)克隆Abs'中的每一抗體??寺∫?guī)模與抗體與抗原之間的親和力以及抗體與抗體 之間的親和力相關(guān)。為了保持優(yōu)良抗體和抗體種群的多樣性,克隆的規(guī)模應(yīng)與抗體與抗原 之間的親和力成正比,與抗體與抗體之間的親和力成反比。如果一個抗體與Abs'中的其他 抗體具有較高/低的相似性,那么該抗體的克隆規(guī)模將得到抑制/促進(jìn)。因此,Abs'中的抗體 Xi的克隆規(guī)模Nc為:
[0085]
[0086] 其中,「·1表示對非整數(shù)取上限,λ是一個預(yù)先定義的克隆系數(shù),克隆系數(shù)λ理論上取 值最小為1而最大可以無上限,|Abs I是Abs中的抗體數(shù)量,aff (Xi)表示抗體Xi與抗原之間的 親和力,如8€;^」(>:1,8))計算公式所示。
[0087] 在上述過程中,將克隆選擇算法中的克隆操作按照內(nèi)分泌系統(tǒng)中激素調(diào)控機(jī)制進(jìn) 行了改進(jìn)。通過這種方式,與抗原親和力高的抗體克隆規(guī)模得到了促進(jìn),與其他抗體相似性 低的抗體克隆規(guī)模也得到促進(jìn),而與其他抗體相似性高的抗體克隆規(guī)模得到抑制,從而有 利于改進(jìn)抗體種群的多樣性。
[0088] 6)克隆后的部分抗體將被選擇進(jìn)行變異。為了防止抗體陷入局部最優(yōu),依據(jù)內(nèi)分 泌系統(tǒng)中激素調(diào)節(jié)機(jī)制,將變異概率從原來的固定概率修改為動態(tài)變化的變異概率。克隆 后的抗體 < 的變異概率為:
[0089]
[0090] 其中,< 是初始的固定變異概率,δ是一個固定的變異系數(shù)。通過這種方式,與抗原 親和力高的抗體具有較小的變異概率,與其他抗體具有較高/低的抗體具有較高/低的變異 概率,從而避免大量相似抗體分布在局部區(qū)域。
[0091] 抗體if的變異規(guī)則為
[0092]
[0093] 其中,xf是變異后的抗體,N(0,1)是在[0,1]之間的一個均勻分布函數(shù)。然后,變異 后的抗體和Abs中除了T外的其他抗體形成另外一個抗體集合Abs"。
[0094] 7)對Abs〃中的抗體進(jìn)行重新選擇。在重新選擇規(guī)則中,計算原始抗原和選出的克 隆變異抗體對抗原的刺激程度。對于任意抗體Xt和抗原Yt,二者歐式距離為:
[0095] ? i =1
[0096] 抗體對抗原的刺激度為:
[0097]
[0098]然后將各抗體對抗原的刺激度與設(shè)定的閾值進(jìn)行比較,刺激程度高于閾值的抗體 保留,低的將被新的抗體代替。
[0099] 8)如果滿足進(jìn)化尋優(yōu)的終止條件,則停止優(yōu)化過程并并返回親和力最佳的抗體, 形成故障路由對應(yīng)的最佳修復(fù)路由pXvuS)。否則,轉(zhuǎn)到2);
[0100] 9)比較備份路由和其他抗體的親和力。若存在其他抗體的親和力優(yōu)于備份路由的 親和力,則返回該抗體,形成備份路由的替換路由。
[0101] 通過上面的改進(jìn)克隆選擇算法之后,ISRRA為故障路由設(shè)計了相應(yīng)的修復(fù)路由策 略,并比較了備份路由和其他可用路由的質(zhì)量,對質(zhì)量不佳的備份路由提供相應(yīng)的替換路 由。然后,Sink節(jié)點(diǎn)廣播對RRR_ACK信號,其中RRR_ACK信號包換了修復(fù)路由和替換路由的所 有信息。
[0102] (7)通過改進(jìn)的克隆選擇算法之后,ISRRA開始修復(fù)路由和替換備份路由;同時, ISRRA將故障路由和對應(yīng)的修復(fù)路由信息存儲到記憶庫中。
[0103]學(xué)習(xí)模塊得到的最終相關(guān)信息會存儲在記憶庫中,儲存的信息包括故障路由和對 應(yīng)的修復(fù)路由信息。
[0104] 記憶模塊由不同的記憶細(xì)胞組成,每個記憶細(xì)胞記錄相應(yīng)的故障路由和修復(fù)路由 的信息。在ISRRA初次使用時,可以針對一些故障路由,根據(jù)一定的規(guī)則設(shè)計相應(yīng)的修復(fù)路 由存儲到記憶庫中。在后續(xù)使用中,記憶庫的規(guī)則就可以在線更新了。
[0105] 借助于記憶模塊,當(dāng)相同的路由故障再次出現(xiàn)時,ISRRA通過記憶細(xì)胞將能夠迅速 的提供相應(yīng)的修復(fù)路由。這一特點(diǎn),特別適用于EH_WSNs。這是因?yàn)樵贓H_WSNs中,節(jié)點(diǎn)可以 從自然界中采集能量,由于能量關(guān)系,節(jié)點(diǎn)的狀態(tài)可以在死亡與復(fù)活間不停的切換。因而, 相同的路由故障再次發(fā)生的頻率將遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的WSNs。
[0106] 本發(fā)明的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,在EH-WSNs的應(yīng)用環(huán)境 中,由于節(jié)點(diǎn)可以從自然界中采集能量,節(jié)點(diǎn)的能量瓶頸得到了很好的解決,但是節(jié)點(diǎn)的能 量耗盡與補(bǔ)充使得節(jié)點(diǎn)不斷的在死亡與復(fù)活之間切換,因此針對節(jié)點(diǎn)能耗耗盡的容錯路由 修復(fù)是EH-WSNs的一種重要問題。受免疫系統(tǒng)清除抗原的工作機(jī)制啟發(fā),針對性地提出了一 種用于EH-WSNs多路徑路由容錯的路由模型,將基于IRSSA法的容錯路由修復(fù)技術(shù)應(yīng)用在該 模型中,來構(gòu)建智能的容錯路由修復(fù)策略。模擬免疫系統(tǒng)的工作機(jī)制,在ISRRA中,設(shè)計了相 應(yīng)的檢測模塊、應(yīng)答模塊、學(xué)習(xí)模塊和記憶模塊。通著這些模塊的協(xié)同工作,ISRRA能夠?yàn)楣?障路由提供較好的修復(fù)策略。在進(jìn)行故障路由修復(fù)的同時,ISRRA還對備份路由的質(zhì)量進(jìn)行 比較,對質(zhì)量較差的備份路由進(jìn)行替換,使得源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間保持著k條最佳不相交 路徑。在ISRRA的學(xué)習(xí)模塊中,為了克服抗體種群的多樣性差和早熟的缺陷,將內(nèi)分泌系統(tǒng) 的調(diào)節(jié)機(jī)理應(yīng)用到克隆和變異操作中來增加算法的尋優(yōu)能力。通過實(shí)驗(yàn)比較可以看出, ISRRA能提供高效的復(fù)制路由修復(fù)機(jī)制,其修復(fù)的路由要優(yōu)于FNR和ICPS0A算法提供的修復(fù) 路由。
[0107] 有益效果
[0108] (1)為每個源節(jié)點(diǎn)到s ink節(jié)點(diǎn)之間始終保持了 k條最佳的不相交路由。I SRRA對備 份路由的質(zhì)量進(jìn)行比較,對質(zhì)量較差的備份路由進(jìn)行替換,使得源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間保 持著k條最佳不相交路徑。
[0109] (2)克服抗體種群的多樣性差和早熟的缺陷,將內(nèi)分泌系統(tǒng)的調(diào)節(jié)機(jī)理應(yīng)用到克 隆和變異操作中來增加算法的尋優(yōu)能力。通過這種方式,與抗原親和力高的抗體克隆規(guī)模 得到了促進(jìn),與其他抗體相似性低的抗體克隆規(guī)模也得到促進(jìn),而與其他抗體相似性高的 抗體克隆規(guī)模得到抑制,從而有利于改進(jìn)抗體種群的多樣性;為了防止抗體陷入局部最優(yōu), 依據(jù)內(nèi)分泌系統(tǒng)中激素調(diào)節(jié)機(jī)制,將變異概率從原來的固定概率修改為動態(tài)變化的變異概 率。
[0110] (3)通過記憶細(xì)胞將能夠迅速的提供相應(yīng)的修復(fù)路由。特別適用于EH_WSNs。這是 因?yàn)樵贓H_WSNs中,節(jié)點(diǎn)可以從自然界中采集能量,由于能量關(guān)系,節(jié)點(diǎn)的狀態(tài)可以在死亡 與復(fù)活間不停的切換。因而,相同的路由故障再次發(fā)生的頻率將遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的WSNs,能夠 為故障路由提供較好的修復(fù)策略。
【附圖說明】
[0111] 圖1是本發(fā)明的ISRRA流程圖;
[0112] 圖2是本發(fā)明的100個節(jié)點(diǎn)下故障路由修復(fù)過程的能耗對比圖;
[0113] 圖3是本發(fā)明的300個節(jié)點(diǎn)下故障路由修復(fù)過程的能耗對比圖;
[0114] 圖4是本發(fā)明的500個節(jié)點(diǎn)下故障路由修復(fù)過程的能耗對比圖;
[0115] 圖5是本發(fā)明的修復(fù)路由的數(shù)據(jù)傳輸延遲對比圖;
[0116] 圖6是本發(fā)明的修復(fù)路由的平均存活時間比較圖。
【具體實(shí)施方式】
[0117] 下面結(jié)合【具體實(shí)施方式】,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說明本發(fā) 明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù) 人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限 定的范圍。
[0118] 本發(fā)明的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,簡稱縮寫為ISRRA,由可 充電無線傳感器網(wǎng)絡(luò)(EH-WSNs)靜態(tài)節(jié)點(diǎn)、S i nk節(jié)點(diǎn)和檢測模塊、應(yīng)答模塊、學(xué)習(xí)模塊以及 記憶庫組成;EH-WSNs是一個靜態(tài)網(wǎng)絡(luò),各傳感器節(jié)點(diǎn)均安裝有能量采集模塊,如太陽能板 等,這樣節(jié)點(diǎn)能夠從自然界中收集能量,且能量耗盡的節(jié)點(diǎn)在從自然界中收集能量后能夠 再次復(fù)活并進(jìn)行工作,其節(jié)點(diǎn)在部署完成后將不再移動;EH-WSNs靜態(tài)節(jié)點(diǎn)包括源節(jié)點(diǎn)和傳 播節(jié)點(diǎn),每個節(jié)點(diǎn)具有獨(dú)立的ID號,且各節(jié)點(diǎn)均知道自己和Sink節(jié)點(diǎn)的位置信息,位置信息 可以通過GPS模塊或者其他的定位算法得到;Sink節(jié)點(diǎn)的傳輸功率可以根據(jù)與其通信的節(jié) 點(diǎn)距離進(jìn)行動態(tài)調(diào)整;靜態(tài)節(jié)點(diǎn)可以與其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙向通信,且通過信息 交換,節(jié)點(diǎn)知道其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)的信息;其特征在于通過改進(jìn)的免疫算法有效地提 供故障路由的修復(fù)策略,特別適合于EH-WSNs中相同故障路由多次出現(xiàn)的情況,并能夠在 EH-WSNs中實(shí)現(xiàn)容錯路由修復(fù)、備份路由更換,包括以下步驟:
[0119] (1)初始化 EH-WSNs;
[0120] 1 )EH_WSNs是一個靜態(tài)網(wǎng)絡(luò),節(jié)點(diǎn)在部署完成后將不在移動;
[0121] 2)每個節(jié)點(diǎn)具有獨(dú)立的ID號,且各節(jié)點(diǎn)均知道自己和Sink節(jié)點(diǎn)的位置信息。位置 信息可以通過GPS模塊或者其他的定位算法得到;
[0122] 3)Sink節(jié)點(diǎn)的傳輸功率可以根據(jù)與其通信的節(jié)點(diǎn)距離進(jìn)行動態(tài)調(diào)整;
[0123] 4)節(jié)點(diǎn)可以與其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙向通信,且通過信息交換,節(jié)點(diǎn)知道 其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)的信息;
[0124] EH-WSNs中主要參數(shù)有:
[0125] EH-WSNs中傳感器節(jié)點(diǎn)集合 V
[0126] EH-WSNs 中 ID為i 的節(jié)點(diǎn) Vi
[0127] EH-WSNs 中的 Sink 節(jié)點(diǎn) s
[0128] EH-WSNs中所有節(jié)點(diǎn)的狀態(tài)信息Pv
[0129] 用G=(VU {s},E)來表示由|V|個靜態(tài)節(jié)點(diǎn)和1個Sink節(jié)點(diǎn)s組成的EH-WSNs,其中 各傳感器節(jié)點(diǎn)均安裝有能量采集模塊,如太陽能板等。這樣節(jié)點(diǎn)能夠從自然界中收集能量, 且能量耗盡的節(jié)點(diǎn)在從自然界中收集能量后能夠再次復(fù)活并進(jìn)行工作。每個節(jié)點(diǎn)均有固定 的傳輸和數(shù)據(jù)采集半徑。若節(jié)點(diǎn)之間或者節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間的距離小于節(jié)點(diǎn)的傳輸距 離,那么這些節(jié)點(diǎn)之間就存在一條邊e e E。當(dāng)源節(jié)點(diǎn)與S i n k節(jié)點(diǎn)之間的距離大于節(jié)點(diǎn)的傳 輸距離時,源節(jié)點(diǎn)采集的數(shù)據(jù)將通過多跳傳輸?shù)姆绞桨l(fā)送到Sink節(jié)點(diǎn)。Sink節(jié)點(diǎn)收集各源 節(jié)點(diǎn)的數(shù)據(jù)并將其提供給用戶使用。同時,Sink節(jié)點(diǎn)的任務(wù)還包括其他各類復(fù)雜算法的處 理與實(shí)施,本發(fā)明提出的ISRRA就是由Sink節(jié)點(diǎn)完成。
[0130] (2)在EH-WSNs的源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交路徑,構(gòu)建容錯路由模型:
[0131] 類似于傳統(tǒng)WSNs中的容錯拓?fù)淇刂撇呗?,為了在能量耗盡、硬件故障或通信鏈路 錯誤等情況下網(wǎng)絡(luò)能夠正常工作,EH-WSNs同樣通過建立k條不相交路徑來實(shí)現(xiàn)容錯。這樣, 在最壞情況下,EH-WSNs最多可以容忍k-Ι次路由故障。在各節(jié)點(diǎn)部署完成后,從每個源節(jié)點(diǎn) 至lj S ink節(jié)點(diǎn)的k條不相交路由可以通過一些已有算法建立,如DVP,MWATCk和GATCk。
[0132] k條路由中有以下參數(shù):
[0133]節(jié)點(diǎn)Vi與s之間的所有路由集合 P(vi,s)
[0134]節(jié)點(diǎn)Vi與S之間的第j條路由 Pj(Vi,S)
[0135] Pj(Vi,S)中的失效節(jié)點(diǎn) Vfail
[0136] Pj(vi,s)中 ID 為 1 的節(jié)點(diǎn) VI
[0137] Pj(Vi,S)中節(jié)點(diǎn)Vfail/vi的子節(jié)點(diǎn) Vfail_c/vi_c
[0138] Pj(Vi,S)中節(jié)點(diǎn)Vfail/vi的父節(jié)點(diǎn) Vfailj/vi』
[0139] 在節(jié)點(diǎn)Vi與s之間的所有路由集合P(Vi,s)中,影響選擇Pj(Vi,s)為故障修復(fù)路由 的因素主要包括:
[0140] l)pj(Vi,s)中所有節(jié)點(diǎn)的剩余能量,rene(vi);
[0141] 2)相鄰節(jié)點(diǎn)之間的距離,dist(e);
[0142] 3)相鄰節(jié)點(diǎn)之間通信的能量消耗,ene(e);
[0143] 4)節(jié)點(diǎn)之間通信的通信延遲,delay(vi);
[0144] 5)從源節(jié)點(diǎn)¥1到3;[111^節(jié)點(diǎn)的通信跳數(shù),11(^化」(>1,8));
[0145]在ISRRA中,以上因素決定了路由pj(vi,s)的親和度函數(shù)aff (pj(vi,s)),其定義如 下:
[0146]
[0147]
[0148]
[0149]
[0150]
[0151] fi表示的是路由W(Vl,s)的路由長度與P(Vl,s)中所有路由長度的比值;
[0152] f2表示的是路由W(Vl,s)完成一次傳輸所消耗的能量與P( Vl,s)中所有路由完成 一次傳輸所消耗能量和的比值;
[0153] f3表示的是路由W(Vl,s)完成一次傳輸?shù)耐ㄐ叛舆t與P(Vl,s)中所有路由完成一 次傳輸?shù)耐ㄐ叛舆t和的比值;
[0154] f4表示的是路由Pj(Vl,s)完成一次傳輸?shù)奶鴶?shù)與P(Vl,s)中所有路由完成一次傳 輸?shù)奶鴶?shù)和的比值。
[0155] ωι、ω 2、ω3和ω4分別為和f4對應(yīng)的權(quán)值,它們的取值范圍是〇〈 ω ω2, ω 3,ω 4〈1,且 ω !+ ω 2+ ω 3+ ω 4= 1,根據(jù) fi、f2、f3、f4 與親和力 aff(pj(Vi,s))的定義,可以得 到對于和ω4的取值分配分別側(cè)重在路由長度、消耗能量、傳輸延遲與路由條數(shù) 這四項,每項的比重大小表示對各項的側(cè)重程度高低;若應(yīng)用中針對能量消耗與傳輸延遲 需求較高,貝U可以分配ω 2和ω 3占據(jù)較高比例,示例分配如(^ = 0.1,(02 = 0.4,03 = 0.4, ω4 = 0.1;若應(yīng)用中針對路由長度的要求較高而其他三項要求同等或次要,則可以分配ωι 占據(jù)主導(dǎo)地位,分配ω :較大的比重,ω 2、ω 3和ω 4的比重整體處于較低水平,示例分配如ω 1 = 0.4, c〇2 = 0.2, c〇3 = 0.2, c〇4 = 0.2〇
[0156] 其中本發(fā)明設(shè)定…二。.、ω2 = 0.2, ω3 = 〇.2以及c〇4 = 0.2c3可以得出,路由的親 和度越高,則該條路由的質(zhì)量就越好。
[0157] 同時,采用能量模型作為EH-WSNs中節(jié)點(diǎn)的能量消耗模型。單個節(jié)點(diǎn)采集、發(fā)送和 接收m比特數(shù)據(jù)所消耗的能量分別為:
[0158] enesen(m) =aim
[0159] enetx(m,d) = (βι+β20-)ηι
[0160] enerx(m) = γ im
[0161 ]其中,d為節(jié)點(diǎn)與其傳輸目標(biāo)節(jié)點(diǎn)之間的距離,enesen(m)表示采集m比特數(shù)據(jù)所消 耗的能量;enetx(m,d)和enerx(m)分別為發(fā)送和接收m比特數(shù)據(jù)所消耗的能量,c為信道衰減 系數(shù),,&和丫汾別是采集電路、發(fā)送電路、發(fā)送放大器和接收電路的能耗參數(shù)。
[0162] 用于計算enesen(m),enetx(m,d)和enerx(m)的參數(shù)分別定義為:(6^ = 601^/13:11:,βι = 45nJ/bit,fe=10nJ/bit,γ i = 135pj/bit/m2。信道衰減系數(shù)c為2;
[0163] 對于ISRRA,在尋優(yōu)過程的每次迭代中用于抗體克隆、變異、再選擇以及記憶細(xì)胞 儲存的能效消耗分別定義為6116 £1。,6116£1111,6116£^和61161 1^。因此,通過估算131?1^每次迭代中 消耗的能量就可以計算出整個ISRRA的總能耗。
[0164] (3) ISRRA檢測模塊檢測EH-WSNs中是否存在故障節(jié)點(diǎn);
[0165] 當(dāng)一條路由由于節(jié)點(diǎn)能量耗盡或其他原因出現(xiàn)故障時,ISRRA將立即工作,在所有 可用的節(jié)點(diǎn)中選擇一條親和力高的路由來替換故障路由。
[0166] 在ISRRA中,由節(jié)點(diǎn)能量耗盡節(jié)點(diǎn)引起的路由故障被視為抗原,檢測模塊的功能就 是負(fù)責(zé)抗原的檢測與識別。在ISRRA中,每個節(jié)點(diǎn)都可以和其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙 向通信。對于路由W( Vl,s)中的節(jié)點(diǎn)^來說,如果Vl能夠正常工作并發(fā)送數(shù)據(jù),那么它的父 節(jié)點(diǎn)Vi_p就能夠接收到VI發(fā)送的數(shù)據(jù)。如果Vi_p在一個事先定義的時間間隔內(nèi)沒有收到VI發(fā) 送的數(shù)據(jù),那么就認(rèn)為VI出現(xiàn)故障。此時,VI稱為Vfall,Vl的父節(jié)點(diǎn)和子節(jié)點(diǎn)分別稱為Vfall的 Vfail』和Vfail_c。然后,VI將的ID和故障狀態(tài)信息Vfail(idfail)報告給Sink節(jié)點(diǎn);
[0167] 同時Vfall_P將這些信息報告給源節(jié)點(diǎn)。當(dāng)源節(jié)點(diǎn)接收到節(jié)點(diǎn)故障信息后,它將啟用 其他的備用路由進(jìn)行數(shù)據(jù)傳輸,同時Sink節(jié)點(diǎn)出發(fā)ISRRA的應(yīng)答模塊來進(jìn)行故障路由修復(fù) 工作。
[0168] (4)若檢測模塊檢測到EH-WSNs存在故障節(jié)點(diǎn),則開啟應(yīng)答模塊;
[0169] 當(dāng)應(yīng)答模塊被出發(fā)后,它將首先在ISRRA的記憶單元中進(jìn)行搜索,判斷記憶單元中 是否具有檢測到的抗原的信息。在免疫系統(tǒng)中,抗原提呈細(xì)胞將會把抗原的特異信息提供 給免疫細(xì)胞,相應(yīng)的抗體將會識別這些信息從而刺激大量抗體的生成,最終達(dá)到清除抗原 的效果。在ISRRA中,由于建立的是不相交路由,每個中繼節(jié)點(diǎn)只會在一條路由中出現(xiàn),因 此,以故障節(jié)點(diǎn)的ID(id fall)作為抗原的特異信息,并用其在記憶庫中進(jìn)行搜索。
[0170]在搜索過程中,應(yīng)答模塊將對記憶庫中儲存的故障路由中包含節(jié)點(diǎn)的ID進(jìn)行搜 索?,F(xiàn)假設(shè)記憶庫中儲存有MEN條故障路由信息,如果記憶庫中有故障路由信息滿足下式, 那么與該故障路由對應(yīng)的修復(fù)路由將被視為抗體用來修復(fù)故障路由:
[0171] Ξ//Λ e MEM, idfaii e fPi 1 ^ i ^Mem_Cap
[0172] 其中,fPl表示儲存在記憶庫中的第i條故障路由信息,Mem_Cap表示記憶庫的最大 儲存容量。
[0173 ]如果在記憶庫中搜索不到相應(yīng)的記憶信息與故障路由匹配,那么ISRRA將啟動學(xué) 習(xí)模塊來產(chǎn)生抗體。
[0174] (5)應(yīng)答模塊開啟后,首先在記憶庫中進(jìn)行搜索,檢索記憶庫中是否具有檢測到的 故障點(diǎn)信息;若未找到,則開啟學(xué)習(xí)模塊;若找到,則直接進(jìn)行故障節(jié)點(diǎn)修復(fù);
[0175] 記憶模塊由不同的記憶細(xì)胞組成,每個記憶細(xì)胞記錄相應(yīng)的故障路由和修復(fù)路由 的信息。在ISRRA初次使用時,可以針對一些故障路由,根據(jù)一定的規(guī)則設(shè)計相應(yīng)的修復(fù)路 由存儲到記憶庫中。在后續(xù)使用中,記憶庫的規(guī)則就可以在線更新了。
[0176] 記憶庫具有一定的容量限制,其最大容量為Mem_Cap。在使用過程中,對記憶庫中 的細(xì)胞按照使用頻率進(jìn)行排序。當(dāng)學(xué)習(xí)模塊提供新的信息需要存儲到記憶庫時,如果記憶 庫存儲的信息還沒有達(dá)到Mem_Cap,那么直接將新信息存儲到記憶庫中;如果記憶庫已經(jīng)達(dá) 至ljMem_Cap,那么將用新的存儲信息替換使用率最低的存儲信息。
[0177] 借助于記憶模塊,當(dāng)相同的路由故障再次出現(xiàn)時,ISRRA通過記憶細(xì)胞將能夠迅速 的提供相應(yīng)的修復(fù)路由。這一特點(diǎn),特別適用于EH_WSNs。這是因?yàn)樵贓H_WSNs中,節(jié)點(diǎn)可以 從自然界中采集能量,由于能量關(guān)系,節(jié)點(diǎn)的狀態(tài)可以在死亡與復(fù)活間不停的切換。因而, 相同的路由故障再次發(fā)生的頻率將遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的WSNs。
[0178] 學(xué)習(xí)模塊的最終相關(guān)信息會存儲在記憶庫中,儲存的信息包括故障路由和對應(yīng)的 修復(fù)路由信息。
[0179] (6)若記憶庫中沒有故障節(jié)點(diǎn)的信息,學(xué)習(xí)模塊開啟,通過改進(jìn)的克隆選擇算法產(chǎn) 生修復(fù)路由pXviJ);
[0180] 如果記憶庫中沒有信息滿足條件式,那么Sink節(jié)點(diǎn)將通過廣播路由修復(fù)請求PRR 信息來啟動學(xué)習(xí)模塊。PRR信息將通過備份路由傳播到源節(jié)點(diǎn)。當(dāng)vi接受到PRR信息后,它將 廣播一條路由修復(fù)應(yīng)答RRR信息,其中RRR信息中包含了該節(jié)點(diǎn)的剩余可用能量和坐標(biāo)。
[0181]如果中繼節(jié)點(diǎn)VI接收到RRR信息,它將根據(jù)自身的狀態(tài)信息繼續(xù)中繼RRR信息。為 了保持k條不相交路由的質(zhì)量,所有接收到RRR信息的中繼節(jié)點(diǎn)都會計算相應(yīng)的參數(shù),計算 的參數(shù)主要包括:
[0182] 1)節(jié)點(diǎn)vi和其父節(jié)點(diǎn)νι_Ρ之間的距離dist(e);
[0183] 2)通信的能量消耗ene(e);
[0184] 3)通信延遲delay(vi);
[0185] 然后節(jié)點(diǎn)vi將上述信息、自己的剩余可用能量rene(vi)以及自身和νι_Ρ的ID添加到 RRR信息中,并繼續(xù)中繼給其他節(jié)點(diǎn)。
[0186] 上述的RRR信息中繼過程會一直持續(xù)到Sink節(jié)點(diǎn)接受RRR信息。然后Sink節(jié)點(diǎn)將從 RRR中提取相應(yīng)的信息并采用改進(jìn)的克隆選擇算法來選擇具有高親和力的路由pXvus)作 為修復(fù)路由。此外,除了對故障路由進(jìn)行修復(fù)外,Sink節(jié)點(diǎn)還將備用路由與其他可用路由的 質(zhì)量進(jìn)行對比。如果存在其他可用路由的質(zhì)量優(yōu)于備用路由,那么相應(yīng)的備份路由將被替 換。在這一過程中,克隆選擇算法將產(chǎn)生對應(yīng)的抗體來修復(fù)故障路由,對整個路由修復(fù)過程 有著重要的作用。但傳統(tǒng)的克隆選擇算法具有抗體種群多樣性差和早熟的缺陷,這將嚴(yán)重 妨礙其產(chǎn)生最佳的抗體。為了克服這些缺陷,受內(nèi)分泌系統(tǒng)中激素調(diào)節(jié)機(jī)制啟發(fā),將激素調(diào) 節(jié)機(jī)制嵌入到抗體的進(jìn)化過程中,從而促進(jìn)算法的全局和局部搜索能力。
[0187] 改進(jìn)的克隆選擇算法主要是用于產(chǎn)生修復(fù)路由i/(Vl,S),其主要步驟描述如下:
[0188 ] 1) S i nk節(jié)點(diǎn)利用提取的信息隨機(jī)生成抗體集Ab s;
[0189 ] 2)利用af f (p j (Vi,s))計算公式,計算每個抗體與抗原之間的親和力;
[0190] 3)從Abs中選擇親和力最佳的T個抗體形成臨時抗體集Abs' ;
[0191] 4)按下式計算抗體與抗體之間的親和力:
[0192]
[0193] 其中,Xi是Abs '中的一個抗體,| Abs' |是Abs'中的抗體數(shù)量,dij是抗體Xi與Xj之間 的歐式距離。af fabb (Xi)的值越大,說明抗體Xi與Abs '中其他抗體的相似性就越大。
[0194] 5)克隆Abs'中的每一抗體??寺∫?guī)模與抗體與抗原之間的親和力以及抗體與抗體 之間的親和力相關(guān)。為了保持優(yōu)良抗體和抗體種群的多樣性,克隆的規(guī)模應(yīng)與抗體與抗原 之間的親和力成正比,與抗體與抗體之間的親和力成反比。如果一個抗體與Abs'中的其他 抗體具有較高/低的相似性,那么該抗體的克隆規(guī)模將得到抑制/促進(jìn)。因此,Abs'中的抗體 Xi的克隆規(guī)模Nc為:
[0195]
[0196] 其中,表示對非整數(shù)取上限,λ是一個預(yù)先定義的克隆系數(shù),克隆系數(shù)λ理論上取 值最小為1而最大可以無上限,I Abs I是Abs中的抗體數(shù)量,aff(Xi)表示抗體Xi與抗原之間的 親和力,如8€;^」(>:1,8))計算公式所示。
[0197] 在上述過程中,將克隆選擇算法中的克隆操作按照內(nèi)分泌系統(tǒng)中激素調(diào)控機(jī)制進(jìn) 行了改進(jìn)。通過這種方式,與抗原親和力高的抗體克隆規(guī)模得到了促進(jìn),與其他抗體相似性 低的抗體克隆規(guī)模也得到促進(jìn),而與其他抗體相似性高的抗體克隆規(guī)模得到抑制,從而有 利于改進(jìn)抗體種群的多樣性。
[0198] 6)克隆后的部分抗體將被選擇進(jìn)行變異。為了防止抗體陷入局部最優(yōu),依據(jù)內(nèi)分 泌系統(tǒng)中激素調(diào)節(jié)機(jī)制,將變異概率從原來的固定概率修改為動態(tài)變化的變異概率??寺?后的抗體的變異概率為:
[0199]
[0200] 其中,是初始的固定變異概率,δ是一個固定的變異系數(shù)。通過這種方式,與抗原 親和力高的抗體具有較小的變異概率,與其他抗體具有較高/低的抗體具有較高/低的變異 概率,從而避免大量相似抗體分布在局部區(qū)域。
[0201] 抗體xf的變異規(guī)則為
[0202]
[0203] 其中是變異后的抗體,N(0,1)是在[0,1]之間的一個均勻分布函數(shù)。然后,變異 后的抗體和Abs中除了T外的其他抗體形成另外一個抗體集合Abs〃。
[0204] 7)對Abs〃中的抗體進(jìn)行重新選擇。在重新選擇規(guī)則中,計算原始抗原和選出的克 隆變異抗體對抗原的刺激程度。對于任意抗體Xt和抗原Yt,二者歐式距離為:
[0205]
[0206] 抗體對抗原的刺激度為:
[0207]
[0208] 然后將各抗體對抗原的刺激度與設(shè)定的閾值進(jìn)行比較,刺激程度高于閾值的抗體 保留,低的將被新的抗體代替。
[0209] 8)如果滿足進(jìn)化尋優(yōu)的終止條件,則停止優(yōu)化過程并并返回親和力最佳的抗體, 形成故障路由對應(yīng)的最佳修復(fù)路由pXvuS)。否則,轉(zhuǎn)到2)。
[0210] 9)比較備份路由和其他抗體的親和力。若存在其他抗體的親和力優(yōu)于備份路由的 親和力,則返回該抗體,形成備份路由的替換路由。
[0211] 通過上面的改進(jìn)克隆選擇算法之后,ISRRA為故障路由設(shè)計了相應(yīng)的修復(fù)路由策 略,并比較了備份路由和其他可用路由的質(zhì)量,對質(zhì)量不佳的備份路由提供相應(yīng)的替換路 由。然后,Sink節(jié)點(diǎn)廣播對RRR_ACK信號,其中RRR_ACK信號包換了修復(fù)路由和替換路由的所 有信息。
[0212] (7)通過改進(jìn)的克隆選擇算法之后,ISRRA開始修復(fù)路由和替換備份路由;同時, ISRRA將故障路由和對應(yīng)的修復(fù)路由信息存儲到記憶庫中。
[0213] 學(xué)習(xí)模塊得到的最終相關(guān)信息會存儲在記憶庫中,儲存的信息包括故障路由和對 應(yīng)的修復(fù)路由信息。
[0214] 記憶模塊由不同的記憶細(xì)胞組成,每個記憶細(xì)胞記錄相應(yīng)的故障路由和修復(fù)路由 的信息。在ISRRA初次使用時,可以針對一些故障路由,根據(jù)一定的規(guī)則設(shè)計相應(yīng)的修復(fù)路 由存儲到記憶庫中。在后續(xù)使用中,記憶庫的規(guī)則就可以在線更新了。
[0215] 借助于記憶模塊,當(dāng)相同的路由故障再次出現(xiàn)時,ISRRA通過記憶細(xì)胞將能夠迅速 的提供相應(yīng)的修復(fù)路由。這一特點(diǎn),特別適用于EH_WSNs。這是因?yàn)樵贓H_WSNs中,節(jié)點(diǎn)可以 從自然界中采集能量,由于能量關(guān)系,節(jié)點(diǎn)的狀態(tài)可以在死亡與復(fù)活間不停的切換。因而, 相同的路由故障再次發(fā)生的頻率將遠(yuǎn)遠(yuǎn)高于傳統(tǒng)的WSNs。
[021 ?] 為了評估ISRRA的性能,ISRRA流程參照圖1,在Mat lab R2010a環(huán)境中設(shè)計了相應(yīng) 的實(shí)驗(yàn),并將ISRRA的實(shí)驗(yàn)結(jié)果與FNR和ICPS0A的實(shí)驗(yàn)結(jié)果進(jìn)行可對比。仿真所用電腦的基 本配置為MS Windows 7系統(tǒng),Intel(R)Core(TM)i5-3470處理器(3.2GHz)及4GB RAM。
[0217] 仿真環(huán)境配置如下:100-500個節(jié)點(diǎn)部署在1000 X 1000m2的二維空間中。一個Sink 節(jié)點(diǎn)部署在該二維區(qū)域的中心位置。每個傳感器節(jié)點(diǎn)均安裝一個l〇mm X 10mm的太陽能板, 當(dāng)節(jié)點(diǎn)能量耗盡或者低于一定閾值時,該節(jié)點(diǎn)可以利用太陽能板采集太陽能來補(bǔ)充能量。 在實(shí)驗(yàn)過程中,取The National Solar Radiation Data Base作為太陽能采集的基本數(shù) 據(jù)。每個傳感器節(jié)點(diǎn)的數(shù)據(jù)采集半徑和傳輸半徑分別為20m和100m。在每一輪數(shù)據(jù)傳輸中, 傳輸?shù)臄?shù)據(jù)包大小m為400bits,節(jié)點(diǎn)的傳輸帶寬為200kb/s。每個源節(jié)點(diǎn)到Sink節(jié)點(diǎn)的不相 交路由數(shù)量為k = 3。用于計算enesen(m),enetx(m,d)和enerx(m)的參數(shù)分別定義為:(^ = 60nJ/bit,0i = 45nJ/bit,β2 = 10nJ/bit,γ i = 135pJ/bit/m2。信道衰減系數(shù)c為2。這些參數(shù) 同樣應(yīng)用至爐冊和10?3(^中。131?^中用到的其他參數(shù)定義為 :人=20,〇0.7』=0.2,一8 =10,T = 5,eneac = 5pJ,eneam= 10pJ,enears = 15pJ 和 enemcs = 10pJ。當(dāng)檢測到故障路由后, 每個算法都運(yùn)行100代。
[0218]首先,比較了路由修復(fù)過程中的能量消耗。為了更加有效地比較各種路由修復(fù)算 法的性能,隨機(jī)選擇了 10個修復(fù)過程并比較每個修復(fù)過程的能量消耗,比較結(jié)果如圖2、圖 3、圖4所示。從圖2、圖3、圖4中可以看出,I SRRA和ICPS0A算法中的路由修復(fù)過程消耗的能量 較FNR少。這是因?yàn)镕NR的修復(fù)過程是基于Grade Diffusion(GD)算法的結(jié)果。但是⑶算法的 結(jié)果在節(jié)點(diǎn)失效的情況下將不再可用,從而導(dǎo)致FNR需要重新計算GD的值來修復(fù)故障路由, 這一過程將消耗掉大量的能量。另外,從圖2、圖3、圖4中還可以看出,ISRRA在100個節(jié)點(diǎn)情 況下的第4次和第9次修復(fù);300個節(jié)點(diǎn)情況下的第7次修復(fù)和500個節(jié)點(diǎn)情況下的第4次、第5 次和第9次修復(fù)均較FNR和ISPS0A消耗了較少的能量,分別如圖2、圖3、圖4所示。這主要是因 為這些修復(fù)過程所修復(fù)的故障路由均是再次發(fā)生故障情況下的修復(fù)。在此情況下,ISRRA已 將對應(yīng)的修復(fù)路由信息存儲在記憶庫中,記憶庫中的記憶細(xì)胞將直接被激活產(chǎn)生相應(yīng)的抗 體來修復(fù)故障路由,這一過程將大大減少修復(fù)過程的能量消耗。但在FNR和ICPS0A算法中, 既使相同的路由故障再次發(fā)生,相同的修復(fù)過程需要再次進(jìn)行,并不能起到節(jié)省修復(fù)過程 能耗的作用。
[0219]然后,比較了修復(fù)路由的數(shù)據(jù)傳輸延遲,如圖5所示??梢园l(fā)現(xiàn),ISRRA和ICPS0A的 延遲類似,均要優(yōu)于FNR。這主要是因?yàn)樵贗SRRA和ICPS0A的修復(fù)路由選擇時,傳輸延時和路 由的長度均進(jìn)行了相應(yīng)的考慮,但這些因素在FNR中并沒有進(jìn)行相應(yīng)的考慮。
[0220]最后,比較了修復(fù)路由的存活時間,修復(fù)路由的存活時間能夠直接體現(xiàn)修復(fù)路由 的質(zhì)量,比較結(jié)果如圖6所示。從圖6中,可以看出ISRRA修復(fù)的路由比FNR算法修復(fù)的路由多 存活28-92輪,比ICPSOA算法修復(fù)的路由多存活8-42輪。這主要是因?yàn)樵谶x擇修復(fù)路由時, ISRRA考慮節(jié)點(diǎn)的可用剩余能量、節(jié)點(diǎn)之間的距離、通信延遲和中繼跳數(shù)等因素。此外,除了 修復(fù)路由外,ISRRA還將備份路由與其他可用路由進(jìn)行質(zhì)量比較,對于質(zhì)量較差的部分路由 進(jìn)行更換。通過這一過程,ISRRA為每個源節(jié)點(diǎn)到Sink節(jié)點(diǎn)之間始終保持了k條最佳的不相 交路由。但在FNR和ICPSOA中,考慮的影響路由質(zhì)量的因素并沒有ISRRA多。而且在FNR和 ICPSOA中,只有故障路由得到了修復(fù),備份路由的質(zhì)量并沒有進(jìn)行相應(yīng)的考慮與替換。因 此,ISRRA的路由質(zhì)量要優(yōu)于FNR和ICPSOA提供的路由質(zhì)量。這種優(yōu)越性隨著節(jié)點(diǎn)數(shù)的增加 而減小,這主要是因?yàn)殡S著節(jié)點(diǎn)數(shù)量的增加,需要傳輸?shù)臄?shù)據(jù)量也在增加,而且相應(yīng)的路由 長度也在增加。但可以看出,相對于FNR和ICPSOA,ISRRA還是最佳的。
【主權(quán)項】
1. 一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,由可充電無線傳感器網(wǎng)絡(luò)靜態(tài)節(jié) 點(diǎn)、Sink節(jié)點(diǎn)、檢測模塊、應(yīng)答模塊、學(xué)習(xí)模塊以及記憶庫組成,其特征是:由節(jié)點(diǎn)能量耗盡 節(jié)點(diǎn)引起的路由故障被視為抗原,與該故障路由對應(yīng)的修復(fù)路由將被視為抗體用來修復(fù)故 障路由,并且將激素調(diào)節(jié)機(jī)制嵌入到抗體的進(jìn)化過程中,得到改進(jìn)的克隆選擇算法,有效地 提供故障路由的修復(fù)策略,從而促進(jìn)算法的全局和局部搜索能力;所述可充電無線傳感器 網(wǎng)絡(luò)免疫路由修復(fù)方法包括以下步驟: (1) 在可充電無線傳感器網(wǎng)絡(luò)的源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交路徑; (2) 檢測模塊檢測可充電無線傳感器網(wǎng)絡(luò)中是否存在故障節(jié)點(diǎn);檢測模塊的功能就是 負(fù)責(zé)抗原的檢測與識別; (3) 若檢測模塊檢測到EH-WSNs存在故障節(jié)點(diǎn),則開啟應(yīng)答模塊; (4) 應(yīng)答模塊開啟后,首先在記憶庫中進(jìn)行搜索,檢索記憶庫中是否具有檢測到的故障 節(jié)點(diǎn)信息;若找到,則直接進(jìn)行故障節(jié)點(diǎn)修復(fù);若未找到,則開啟學(xué)習(xí)模塊; (5) 學(xué)習(xí)模塊開啟后,通過改進(jìn)的克隆選擇算法產(chǎn)生修復(fù)路由i/(Vl,S);由節(jié)點(diǎn)能量耗 盡節(jié)點(diǎn)引起的路由故障被視為抗原,與該故障路由對應(yīng)的修復(fù)路由將被視為抗體,改進(jìn)的 克隆選擇算法主要步驟描述如下: 1. Sink節(jié)點(diǎn)利用提取的信息隨機(jī)生成抗體集Abs; 2) 計算每個抗體與抗原之間的親和力aff (pj(Vi,s)): 3) 從Abs中選擇親和力最佳的T個抗體形成臨時抗體集Abs' ; 4) 計算抗體與抗體之間的親和力: 5) 克隆Abs '中的每一抗體; 6) 克隆后的部分抗體將被選擇進(jìn)行變異;為了防止抗體陷入局部最優(yōu),依據(jù)內(nèi)分泌系 統(tǒng)中激素調(diào)節(jié)機(jī)制,變異概率為動態(tài)變化的變異概率;然后,變異后的抗體和Abs中除了 T外 的其他抗體形成另外一個抗體集合Abs"; 7) 對Abs〃中的抗體進(jìn)行重新選擇;在重新選擇規(guī)則中,計算原始抗原和選出的克隆變 異抗體對抗原的刺激程度;然后將各抗體對抗原的刺激度與設(shè)定的閾值進(jìn)行比較,刺激程 度高于閾值的抗體保留,低的將被新的抗體代替; 8) 如果滿足進(jìn)化尋優(yōu)的終止條件,則停止優(yōu)化過程并返回親和力最佳的抗體,形成故 障路由對應(yīng)的最佳修復(fù)路由Plr(V 1A);否則,轉(zhuǎn)到步驟2); 9) 比較備份路由和其他抗體的親和力;若存在其他抗體的親和力優(yōu)于備份路由的親和 力,則返回該抗體,形成備份路由的替換路由; (6) 開始修復(fù)路由和替換備份路由;同時,將故障路由和對應(yīng)的修復(fù)路由信息存儲到記 憶庫中。2. 根據(jù)權(quán)利要求1所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, 可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法的具體步驟為: (1)在可充電無線傳感器網(wǎng)絡(luò)的源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交路徑; a.初始化可充電無線傳感器網(wǎng)絡(luò)即EH-WSNs: I )EH-WSNs是一個靜態(tài)網(wǎng)絡(luò),節(jié)點(diǎn)在部署完成后將不在移動; 2)每個節(jié)點(diǎn)具有獨(dú)立的ID號,且各節(jié)點(diǎn)均知道自己和Sink節(jié)點(diǎn)的位置信息;位置信息 通過GPS模塊或者其他的定位算法得到; 3. Sink節(jié)點(diǎn)的傳輸功率根據(jù)與其通信的節(jié)點(diǎn)距離進(jìn)行動態(tài)調(diào)整; 4) 節(jié)點(diǎn)與其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙向通信,且通過信息交換,節(jié)點(diǎn)知道其1跳范 圍內(nèi)的鄰居節(jié)點(diǎn)的信息; 有以下參數(shù): 五//-FFSVs中傳感器節(jié)點(diǎn)集合 F ; 中趣為/的節(jié)點(diǎn) %; 中的AM節(jié)點(diǎn) S . 中所有節(jié)點(diǎn)的狀態(tài)信息巧; b.在EH-WSNs的源節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間建立k條不相交路徑,構(gòu)建容錯路由模型; 為了在能量耗盡、硬件故障或通信鏈路錯誤情況下使得網(wǎng)絡(luò)能夠正常工作,EH-WSNs通 過建立k條不相交路徑來實(shí)現(xiàn)容錯;這樣,在最壞情況下,EH-WSNs最多能夠容忍k-Ι次路由 故障;在各節(jié)點(diǎn)部署完成后,從每個源節(jié)點(diǎn)到Sink節(jié)點(diǎn)的k條不相交路由通過DVP,MWATCk或 GATCk算法建立;有以下參數(shù): 節(jié)點(diǎn)%與S之間的所有路由集合 ; 節(jié)點(diǎn)%與S之間的第./條路由 ; /?,·(Λ,4中的失效節(jié)點(diǎn) ν/?? ; 巧('+, S)中/D為/的節(jié)點(diǎn) V" & (Vi,中節(jié)點(diǎn)V/ V;的子節(jié)點(diǎn) ^ fail c I _c 中節(jié)點(diǎn)ν>7/巧的父節(jié)點(diǎn) VimWp' 在節(jié)點(diǎn)Vi與S之間的所有路由集合P( Vi,S )中,影響選擇Pj ( Vi,S )為故障修復(fù)路由的因素 主要包括: 1. Pj (Vi,s)中所有節(jié)點(diǎn)的剩余能量:rene(Vi); 2) 相鄰節(jié)點(diǎn)之間的距離:dist(e); 3) 相鄰節(jié)點(diǎn)之間通信的能量消耗:ene (e); 4) 節(jié)點(diǎn)之間通信的通信延遲:delay(Vi); 5) 從源節(jié)點(diǎn)Vi到Sink節(jié)點(diǎn)的通信跳數(shù):hop (pj (Vi,s)); (2) 檢測模塊檢測可充電無線傳感器網(wǎng)絡(luò)中是否存在故障節(jié)點(diǎn);檢測模塊的功能就是 負(fù)責(zé)抗原的檢測與識別; (3) 若檢測模塊檢測到EH-WSNs存在故障節(jié)點(diǎn),則開啟應(yīng)答模塊; 每個節(jié)點(diǎn)都能夠和其1跳范圍內(nèi)的鄰居節(jié)點(diǎn)進(jìn)行雙向通信;對于路由W(Vl,s)中的節(jié)點(diǎn) V1來說,如果V1能夠正常工作并發(fā)送數(shù)據(jù),那么它的父節(jié)點(diǎn)V1_ P就能夠接收到V1發(fā)送的數(shù)據(jù); 如果父節(jié)點(diǎn)νι_Ρ在一個事先定義的時間間隔內(nèi)沒有收到Vl發(fā)送的數(shù)據(jù),那么就認(rèn)為Vl出現(xiàn)故 障; (4) 應(yīng)答模塊開啟后,首先在記憶庫中進(jìn)行搜索,檢索記憶庫中是否具有檢測到的故障 節(jié)點(diǎn)信息;若找到,則直接進(jìn)行故障節(jié)點(diǎn)修復(fù);若未找到,則開啟學(xué)習(xí)模塊; 在搜索過程中,應(yīng)答模塊將對記憶庫中儲存的故障路由中包含節(jié)點(diǎn)的ID進(jìn)行搜索;假 設(shè)記憶庫中儲存有MEN條故障路由信息,如果記憶庫中存在匹配的故障路由信息,那么與該 故障路由對應(yīng)的修復(fù)路由將被視為抗體用來修復(fù)故障路由;如果在記憶庫中搜索不到相應(yīng) 的記憶信息與故障路由匹配,那么將啟動學(xué)習(xí)模塊來產(chǎn)生抗體; (5) 學(xué)習(xí)模塊開啟后,通過改進(jìn)的克隆選擇算法產(chǎn)生修復(fù)路由Plr(V1A); Sink節(jié)點(diǎn)將通過廣播路由修復(fù)請求PRR信息來啟動學(xué)習(xí)模塊;PRR信息將通過備份路由 傳播到源節(jié)點(diǎn)Vi;當(dāng)Vi接受到PRR信息后,它將廣播一條路由修復(fù)應(yīng)答RRR信息,其中RRR信息 中包含了該節(jié)點(diǎn)的剩余可用能量和坐標(biāo); 如果中繼節(jié)點(diǎn)Vi接收到RRR信息,將根據(jù)自身的狀態(tài)信息繼續(xù)中繼RRR信息;為了保持k 條不相交路由的質(zhì)量,所有接收到RRR信息的中繼節(jié)點(diǎn)都會計算相應(yīng)的參數(shù),參數(shù)包含: 1) 節(jié)點(diǎn)Vi和其父節(jié)點(diǎn)VI』之間的距離dist(e); 2) 通信的能量消耗ene(e); 3) 通信延遲delay(vi); 然后節(jié)點(diǎn)Vi將上述信息、自己的剩余可用能量rene(vi)以及自身和νι_。的ID添加到RRR 信息中,并繼續(xù)中繼給其他節(jié)點(diǎn); 上述的RRR信息中繼過程會一直持續(xù)到Sink節(jié)點(diǎn)接受RRR信息;然后Sink節(jié)點(diǎn)將從RRR 中提取相應(yīng)的信息并采用改進(jìn)的克隆選擇算法來選擇具有高親和力的路由Plr(V1A)作為修 復(fù)路由; 此外,除了對故障路由進(jìn)行修復(fù)外,Sink節(jié)點(diǎn)還將備用路由與其他可用路由的質(zhì)量進(jìn) 行對比;如果存在其他可用路由的質(zhì)量優(yōu)于備用路由,那么相應(yīng)的備份路由將被替換;在這 一過程中,改進(jìn)的克隆選擇算法將產(chǎn)生對應(yīng)的抗體來修復(fù)故障路由; 由節(jié)點(diǎn)能量耗盡節(jié)點(diǎn)引起的路由故障被視為抗原,與該故障路由對應(yīng)的修復(fù)路由將被 視為抗體,改進(jìn)的克隆選擇算法如下: 1. Sink節(jié)點(diǎn)利用提取的信息隨機(jī)生成抗體集Abs; 2) 計算每個抗體與抗原之間的親和力aff (pj(Vi,s)):fl表示的是路由Pj(Vi,S)的路由長度與P(Vi,S)中所有路由長度的比值:f2表示的是路由W(Vl,s)完成一次傳輸所消耗的能量與P(Vl,s)中所有路由完成一次傳 輸所消耗能量和的比值:f3表不的是路由Pj( Vi, S)完成一次傳輸?shù)耐ㄐ叛舆t與P( Vi, S)中所有路由完成一次傳輸 的通信延遲和的比值:f4表示的是路由W(Vl,S)完成一次傳輸?shù)奶鴶?shù)與P(Vl,S)中所有路由完成一次傳輸?shù)奶?數(shù)和的比值:y (01、(〇2、〇3和(04分別為負(fù)、€2、;^3和;^4對應(yīng)的權(quán)值,且《 1+(〇2+〇3+(04=1,其中(〇1 = 0.4,《2 = 0.2,《3 = 0.2以及《4 = 0.2;路由的親和度越高,則該條路由的質(zhì)量就越好; 3) 從Abs中選擇親和力最佳的T個抗體形成臨時抗體集Abs' ; 4) 按下式計算抗體與抗體之間的親和力:其中,Xi是Abs'中的一個抗體,|Abs' I是Abs'中的抗體數(shù)量,dij是抗體Xi與Xj之間的歐 氏距離;af fabb (Xi)的值越大,說明抗體Xi與Abs '中其他抗體的相似性就越大; 5) 克隆Abs '中的每一抗體;Abs '中的抗體Xi的克隆規(guī)模Nc為:其中,|V]表示對非整數(shù)取上限,λ是一個預(yù)先定義的克隆系數(shù),|Abs I是Abs中的抗體數(shù) 量,aff (Xi)表示抗體^與抗原之間的親和力; 6) 克隆后的部分抗體將被選擇進(jìn)行變異;為了防止抗體陷入局部最優(yōu),依據(jù)內(nèi)分泌系 統(tǒng)中激素調(diào)節(jié)機(jī)制,變異概率為動杰奪化的奪異概率:克降后的杭體xf的變異概率為: 其中,是初始的固定變異概率,S是一個固定的變異系數(shù); 抗體矛的變異規(guī)則為:其中,Xfi是變異后的抗體,N(0,1)是在[0,1]之間的一個均勻分布函數(shù);然后,變異后的 抗體和Abs中除了T外的其他抗體形成另外一個抗體集合Abs"; 7) 對Abs〃中的抗體進(jìn)行重新選擇;在重新選擇規(guī)則中,計算原始抗原和選出的克隆變 異抗體對抗原的刺激程度;對于任意抗體Xt和抗原Yt,二者歐氏距離為: 抗體對抗原的刺激度為:然后將各抗體對抗原的刺激度與設(shè)定的閾值進(jìn)行比較,刺激程度高于閾值的抗體保 留,低的將被新的抗體代替; 8) 如果滿足進(jìn)化尋優(yōu)的終止條件,則停止優(yōu)化過程并返回親和力最佳的抗體,形成故 障路由對應(yīng)的最佳修復(fù)路由Plr(V 1A);否則,轉(zhuǎn)到2); 9) 比較備份路由和其他抗體的親和力;若存在其他抗體的親和力優(yōu)于備份路由的親和 力,則返回該抗體,形成備份路由的替換路由; (6)開始修復(fù)路由和替換備份路由;同時,將故障路由和對應(yīng)的修復(fù)路由信息存儲到記 憶庫中; 學(xué)習(xí)模塊得到的最終相關(guān)信息會存儲在記憶庫中,儲存的信息包括故障路由和對應(yīng)的 修復(fù)路由信息;記憶模塊由不同的記憶細(xì)胞組成,每個記憶細(xì)胞記錄相應(yīng)的故障路由和修 復(fù)路由的ig息; 借助于記憶模塊,當(dāng)相同的路由故障再次出現(xiàn)時,通過記憶細(xì)胞將能夠迅速的提供相 應(yīng)的修復(fù)路由。3. 根據(jù)權(quán)利要求2所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, 傳感器節(jié)點(diǎn)集合: 用G=(VU{s},E)來表示由I V I個靜態(tài)節(jié)點(diǎn)和1個S ink節(jié)點(diǎn)s組成的EH-WSNs,其中各傳 感器節(jié)點(diǎn)均安裝有能量采集模塊;這樣節(jié)點(diǎn)能夠從自然界中收集能量,且能量耗盡的節(jié)點(diǎn) 在從自然界中收集能量后能夠再次復(fù)活并進(jìn)行工作;每個節(jié)點(diǎn)均有固定的傳輸和數(shù)據(jù)采集 半徑;若節(jié)點(diǎn)之間或者節(jié)點(diǎn)與Sink節(jié)點(diǎn)之間的距離小于節(jié)點(diǎn)的傳輸距離,那么這些節(jié)點(diǎn)之 間就存在一條邊e e E;當(dāng)源節(jié)點(diǎn)與S i n k節(jié)點(diǎn)之間的距離大于節(jié)點(diǎn)的傳輸距離時,源節(jié)點(diǎn)采 集的數(shù)據(jù)將通過多跳傳輸?shù)姆绞桨l(fā)送到Sink節(jié)點(diǎn);Sink節(jié)點(diǎn)收集各源節(jié)點(diǎn)的數(shù)據(jù)并將其提 供給用戶使用。4. 根據(jù)權(quán)利要求2所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, 所述能量消耗,單個節(jié)點(diǎn)采集、發(fā)送和接收m比特數(shù)據(jù)所消耗的能量分別為: enesen(m) =aim; enetx(m,d) = (0i+&dc)m; enerx(m) = γ im; 其中,d為節(jié)點(diǎn)與其傳輸目標(biāo)節(jié)點(diǎn)之間的距離,enesen(m)表示采集m比特數(shù)據(jù)所消耗的 能量;enetx(m,d)和enerx(m)分別為發(fā)送和接收m比特數(shù)據(jù)所消耗的能量,c為信道衰減系 數(shù),^、^、此和丫:分別是采集電路、發(fā)送電路、發(fā)送放大器和接收電路的能耗參數(shù);在尋優(yōu) 過程的每次迭代中用于抗體克隆、變異、再選擇以及記憶細(xì)胞儲存的能效消耗分別定義為 en6ac ? en6ain? 6n6ars^Den6mcs 〇5. 根據(jù)權(quán)利要求2所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, 開啟應(yīng)答t吳塊: 當(dāng)應(yīng)答模塊被激發(fā)后,將首先在ISRRA的記憶單元中進(jìn)行搜索,判斷記憶單元中是否具 有檢測到的抗原的信息;在免疫系統(tǒng)中,抗原提呈細(xì)胞將會把抗原的特異信息提供給免疫 細(xì)胞,相應(yīng)的抗體將會識別這些信息從而刺激大量抗體的生成,最終達(dá)到清除抗原的效果; 由于建立的是不相交路由,每個中繼節(jié)點(diǎn)只會在一條路由中出現(xiàn),因此,以故障節(jié)點(diǎn)的ID (idfall)作為抗原的特異信息,并用其在記憶庫中進(jìn)行搜索; 在搜索過程中,應(yīng)答模塊將對記憶庫中儲存的故障路由中包含節(jié)點(diǎn)的ID進(jìn)行搜索;現(xiàn) 假設(shè)記憶庫中儲存有MEN條故障路由信息,如果記憶庫中有故障路由信息滿足下式,那么與 該故障路由對應(yīng)的修復(fù)路由將被視為抗體用來修復(fù)故障路由: .^fpi & MEM' idHd,e //λ I < / < Mem _ Cap ; 其中,fPl表示儲存在記憶庫中的第i條故障路由信息,Mem_Cap表示記憶庫的最大儲存 容量; 如果在記憶庫中搜索不到相應(yīng)的記憶信息與故障路由匹配,那么將啟動學(xué)習(xí)模塊來產(chǎn) 生抗體。6. 根據(jù)權(quán)利要求2所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, 步驟(7)中,通過改進(jìn)的克隆選擇算法之后,開始修復(fù)路由和替換備份路由;同時,將故障路 由和對應(yīng)的修復(fù)路由信息存儲到記憶庫中: 當(dāng)Vi中繼節(jié)點(diǎn)接受到RRR_ACK信號后,將在RRR_ACK信號中搜索是否包含自身的ID;如果 自身的ID在RRR_ACK信號中,Vi將和其子節(jié)點(diǎn)1。和父節(jié)點(diǎn)νι_Ρ之間建立通信鏈路并繼續(xù)轉(zhuǎn) 發(fā)RRR_ACK信號;如果自身的ID不包含在RRR_ACK信號中,Vi將不做任何操作并丟棄RRR_ACK 信號;最終,RRR_ACK信號將傳輸?shù)皆垂?jié)點(diǎn)Vi中;當(dāng)接收到RRR_ACK信號后,將通過修復(fù)路由 發(fā)送RRR_END信號給Sink節(jié)點(diǎn);Sink節(jié)點(diǎn)一旦受到RRR_END信號,則修復(fù)路由和替換路由操 作就均完成。7. 根據(jù)權(quán)利要求2所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, 所述能量采集模塊為太陽能板。8. 根據(jù)權(quán)利要求2所述的一種可充電無線傳感器網(wǎng)絡(luò)免疫路由修復(fù)方法,其特征在于, fi、f2、f3和f4對應(yīng)的權(quán)值 ωχ、c〇2、ω3和 ω4: 它們的取值范圍是0〈(〇1,<^2,《3,<^4〈1,且<^1+(〇2+<^3+<^4=1,每項的比重大小表不 對各項的側(cè)重程度高低;若應(yīng)用中針對能量消耗與傳輸延遲需求較高,則分配ω 2和ω 3占據(jù) 較高比例,為ω1 = 0.1,ω2 = 〇.4, ω3 = 〇.4, ω4 = 〇.1;若應(yīng)用中針對路由長度的要求較高 而其他三項要求同等或次要,則分配《:占據(jù)主導(dǎo)地位,分配Co1較大的比重,ω 2、ω3和ω4的 比重整體處于較低水平,為《1 = 0.4,〇2 = 0.2,〇3 = 0.2,〇4=0.2; 預(yù)先設(shè)定的克隆系數(shù)λ = 20,克隆系數(shù)λ理論上取值最小為1而最大可以無上限;抗體xf 的變異概率^(.vf)中的初始固定變異概率if = 0.7,周定變異系數(shù)δ = ο. 2; 用于計算enesen(m)、enetx(m, d)和enerx(m)的參數(shù)分別定義為:Cx1 = GOnJVbit,βι = 45nJ/bit,fe=10nJ/bit,γ i = 135pj/bit/m2;信道衰減系數(shù)c為2。
【文檔編號】H04L12/703GK105897577SQ201610341073
【公開日】2016年8月24日
【申請日】2016年5月19日
【發(fā)明人】丁永生, 姚光順, 張向飛, 田運(yùn), 郝礦榮, 蔡欣, 曹夢琦
【申請人】東華大學(xué)