專利名稱:基于蟻群算法的無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu)化方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線傳感技術(shù)和智能計算兩大領(lǐng)域,具體涉及一種基于蟻群算 法的無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu)化方法。 技術(shù)背景
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks, WSN)是隨著微電子、計算和 無線通信等技術(shù)發(fā)展而誕生的一種新型的信息采集與處理技術(shù)。它由部署在監(jiān) 測區(qū)域內(nèi)的大量廉價且微型的傳感器節(jié)點構(gòu)成,并以無線、多跳的通信方式形 成一個自組織的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。這類傳感器可感應(yīng)周邊環(huán)境中的熱、紅外、聲 納、雷達和地震波等信號,以偵測一定范圍內(nèi)的目標物及其改變,并進行數(shù)據(jù) 的處理,將處理后的信息以無線傳輸?shù)姆绞桨l(fā)送回控制中心。
被監(jiān)測對象、傳感器和觀察者(即監(jiān)控中心)是傳感器網(wǎng)絡(luò)的三要素。網(wǎng) 絡(luò)傳感器節(jié)點一般都包括傳感單元、信號處理單元、通信單元以及電源部分, 從而具有傳感、數(shù)據(jù)處理以及無線通信功能,與物理環(huán)境進行交互。對于WSN, 傳感器各節(jié)點之間以無線、多跳的方式進行通信,它們將獲取的信息發(fā)送或是 轉(zhuǎn)發(fā)到網(wǎng)關(guān)處,再由網(wǎng)關(guān)與外部網(wǎng)絡(luò)通過Internet或衛(wèi)星等方式進行通信。對于 大面積的監(jiān)測區(qū)域,將設(shè)置多個網(wǎng)關(guān)。
傳感器節(jié)點受到體積、價格和電量供給等因素的限制,常常只能在自己附 近一定范圍內(nèi)的其它節(jié)點進行通信,要訪問遠處節(jié)點,必須通過多跳路由。為 了保證每一個節(jié)點都能與它所在區(qū)域的網(wǎng)關(guān)進行通信,需要限制節(jié)點與節(jié)點之 間的布置距離,這就要求區(qū)域內(nèi)的傳感器節(jié)點高度密集。在實際應(yīng)用中,傳感 器節(jié)點通常被布置在惡劣、危險的遠程環(huán)境中,或是其它人類無法進入的區(qū)域, 節(jié)點的分布位置常常是隨機的,且無法對其進行供電, 一旦電池用完,此節(jié)點 便不再發(fā)揮任何作用。
無線傳感器網(wǎng)絡(luò)是一個新興的研究領(lǐng)域,它的發(fā)展還不夠成熟,理論、技 術(shù)和應(yīng)用的研究均處于初級階段,且參與研究的人員主要局限在各高校和研究 所內(nèi)。目前它的研究熱點主要集中在以下幾個方面(1) 通信協(xié)議的研究包括物理層、數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層(主要是路由)協(xié) 議的研究。
(2) 能量管理任何技術(shù)和協(xié)議的使用都要以節(jié)能為前提,數(shù)據(jù)傳送消耗 的能量最大。
(3) 提高網(wǎng)絡(luò)安全性防止節(jié)點被入侵,形成監(jiān)測黑洞。
(4) 數(shù)據(jù)查詢管理將分布式查詢處理技術(shù)應(yīng)用于感知數(shù)據(jù)處理。
(5) 傳感器節(jié)點的定位與覆蓋優(yōu)化。
在傳感器的各種應(yīng)用中,觀測者在獲取到信息之后,關(guān)心的第一個問題就 是該事件發(fā)生的位置,因此獲取消息節(jié)點位置必須是傳感器網(wǎng)絡(luò)最基本的功能 之一,這要求無線傳感器對監(jiān)測區(qū)域的覆蓋率達到一定比例。
無線傳感器節(jié)點通常被隨機地布放在監(jiān)測區(qū)域內(nèi),如依靠飛機投放,它們 的分布是無法事先預(yù)知的,因此大規(guī)模地投放傳感器節(jié)點、使其高密度地分布 于監(jiān)測區(qū)域是網(wǎng)絡(luò)覆蓋率的必要保證。但由于傳感器節(jié)點造價高且攜帶能量少, 因此找到如何在保證達到一定覆蓋率的前提下令一部分冗余節(jié)點處于低功耗休 眠狀態(tài)的最優(yōu)覆蓋節(jié)點集是無線傳感網(wǎng)絡(luò)的研究熱點之一。
所謂最優(yōu)覆蓋節(jié)點集,指的是保證傳感器節(jié)點間的連通性、不影響整個網(wǎng) 絡(luò)的覆蓋率的最小節(jié)點集。在最優(yōu)覆蓋節(jié)點集以外的其它節(jié)點,都可以暫時休 眠,直到有最優(yōu)覆蓋節(jié)點集中的節(jié)點電量耗盡時才進入正常工作狀態(tài),作為它 們的代替補充,從而延長網(wǎng)絡(luò)的壽命。
目前,對無限傳感器網(wǎng)絡(luò)覆蓋問題的研究主要分為確定性覆蓋和隨機覆蓋。
確定性覆蓋的區(qū)域大小是確定的,其要解決的問題是在滿足覆蓋率和連通 性要求的前提下,如何盡可能少地使用傳感器節(jié)點,以節(jié)約成本。在WSN狀態(tài) 相對固定或是WSN環(huán)境己知時采用確定性覆蓋,節(jié)點需要知道自身的位置信
息。在研究這類覆蓋時,通常采用最大平均覆蓋法或最大最小覆蓋法。前者保 證對格柵網(wǎng)絡(luò)環(huán)境中的節(jié)點覆蓋的平均率最大化,后者則保證對那些覆蓋能力 最差的格柵節(jié)點的覆蓋最大。
隨機覆蓋方式通常用于危險、惡劣、人類無法進入的環(huán)境中,只能通過火 箭彈射和飛機投放的方式,將足夠多的傳感器投放到監(jiān)測區(qū)域。節(jié)點的分布情況是未知的,網(wǎng)絡(luò)的拓撲情況也無法預(yù)先確定。隨機覆蓋要研究如何將高密度 分布的節(jié)點劃分為互不相交的節(jié)點集合,每個節(jié)點集都能維持監(jiān)測區(qū)域內(nèi)的覆 蓋質(zhì)量,并且在任意時刻只有一個節(jié)點集處于工作狀態(tài),所有節(jié)點集處于輪作 狀態(tài)。隨機覆蓋中節(jié)點密度高,某個點或者某個區(qū)域往往同時被多個節(jié)點覆蓋, 這被稱為"覆蓋冗余"現(xiàn)象,可以通過輪換工作集節(jié)點解決。
本發(fā)明研究的是隨機覆蓋問題,該問題是一個NP完全問題。雖然目前已經(jīng) 有一些確定性的算法和協(xié)議對其進行求解,但這些算法和協(xié)議存在著算法本身
流程復(fù)雜的缺點,而且WSN的覆蓋問題作為一種NP完全問題,這些啟發(fā)式的 確定性算法往往只能得到近似的最優(yōu)覆蓋結(jié)果,這種局部最優(yōu)的缺點也限制著 這些算法和協(xié)議的進一步推廣和使用。蟻群算法具有魯棒性強、全局收斂、啟 發(fā)式搜索以及不需要對優(yōu)化目標進行嚴格的數(shù)學(xué)求導(dǎo)等特,在求解優(yōu)化問題上 具有明顯的優(yōu)勢。在各種優(yōu)化問題上,特別是在離散組合優(yōu)化問題方面取得了 廣泛的應(yīng)用。因此,蟻群算法十分適合用于求解WSN的覆蓋問題。
發(fā)明內(nèi)容
本發(fā)明將蟻群算法運用到無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu)化中。算法的具體步 驟包括
(1) 問題的生成。在"X"區(qū)域內(nèi)隨機散布W個傳感半徑為W的無線 傳感器。
(2) 初始化算法的各個參數(shù)。
(3) 設(shè)"l。
(4) 讓螞蟻A隨機選擇從一個傳感器節(jié)點開始搜索,并選擇該節(jié)點進行覆
生
nn.。
(5) 螞蟻&隨機選擇下一個未考慮的節(jié)點/進行判斷,根據(jù)啟發(fā)式信息和 信息素的取值決定是否選擇該節(jié)點進行覆蓋。選擇節(jié)點f進行覆蓋的概率為-
尸i — 2
IX x《
相應(yīng)的,不選擇節(jié)點/進行覆蓋的概率則為:<formula>formula see original document page 7</formula>
在以上兩式中^和t,2分別指示該節(jié)點"被選擇"和"不被選擇"的信息
量。^和",2則是對應(yīng)的啟發(fā)式信息。T7卜(l-〖/M + 0.01), 77,2=(《/M + 0.01), 其中M為已選擇進行覆蓋的節(jié)點數(shù)量,尺表示與M個節(jié)點中與f相交的節(jié)點數(shù)
(6) 判斷螞蟻是否已經(jīng)考慮了所有節(jié)點,完成解的構(gòu)造。如果是,則繼續(xù) 步驟(7),否則回到步驟(5)。
(7) & = /^ + 1,如果*>^,其中W表示算法中的螞蟻數(shù)量,則繼續(xù)步驟(8), 否則回到步驟(4)。
(8) 評估所有螞蟻構(gòu)造出的解的適應(yīng)值,運用的適應(yīng)值函數(shù)為
max/(X) = (X) + w2 (1 - /2 (JQ)
X ,
r z 、八
腫y
其中,/i表示覆蓋率,/2來表示消耗率。.,5^表示無線傳感器節(jié)點集合,
I代表的節(jié)點子集是5^(S, |x,l}。」表示整個區(qū)域的面積。問表示所有傳感器
節(jié)點的數(shù)目。l力表示開啟的傳感器數(shù)目。W和w2分別表示力和/2的權(quán)重。
(9) 執(zhí)行信息素的更新,加強最優(yōu)解上的信息素,更新公式為
t,r = a x t,' + jS x At
其中,a為蒸發(fā)系數(shù),P為控制信息素增加的系數(shù),Ar為信息素增加的單位值。
對于其余所有節(jié)點上的信息素進行蒸發(fā)
t/" = a x
(10) 如果達到結(jié)束條件,就終止優(yōu)化程序,否則回到步驟(3) 運用蟻群算法對無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋問題進行優(yōu)化求解的優(yōu)勢在于,
算法可以運用 一些與問題相關(guān)的啟發(fā)式信息對搜索過程進行指導(dǎo)。在本發(fā)明中,設(shè)置節(jié)點/被選擇的啟發(fā)式信息則為"^(1-《/M + 0.01)。也就是說,當/和其 它被選擇節(jié)點相交越少時,z'被選擇的渴望度越大。這是因為問題的目標是用最 少的節(jié)點達到盡可能高的覆蓋率,當一個節(jié)點和其余被選擇的節(jié)點相交較少時, 意味著這一節(jié)點附近區(qū)域已被覆蓋的可能性較低,因此選擇使用該節(jié)點的可能 性就越高。使用啟發(fā)式信息可以有效提高問題的求解速度,使得蟻群算法能快 速得到覆蓋問題的最優(yōu)解。
圖1蟻群算法優(yōu)化無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋的流程圖
具體實施例方式
以下結(jié)合附圖進一步對發(fā)明的方法進行描述。
無線傳感器網(wǎng)絡(luò)覆蓋問題的模型通常是這樣建立的假設(shè)將W個參數(shù)配置 相同的傳感器節(jié)點投放到監(jiān)測區(qū)域A。傳感器節(jié)點集合C={q,C2,...,CiV},其中 c產(chǎn)(x,.,乂,/^, (x,.,乂.)是節(jié)點分布坐標,及是監(jiān)測半徑。A是二維平面,常被離散化 為wx"個柵格點,然后通過以下公式計算柵格點(;c,力,1^cSm, 1^^ 有沒有被 節(jié)點c,覆蓋(其中l(wèi)表示被覆蓋,0表示未被覆蓋)。)1,如果(x —x,)2+0; —y,)2^^2
、力',lo,否則
對任意的像素點(x^),只要存在一個整數(shù)/e[l,…;V]使得尸Oj,c,hl,即該 點存在于一個傳感器節(jié)點c,的監(jiān)測范圍內(nèi),就認為它被覆蓋。由此進一步可統(tǒng)計 出區(qū)域A內(nèi)被覆蓋的總節(jié)點數(shù)Z)。并定義
/丄
為該無線傳感器網(wǎng)絡(luò)的覆蓋率。
蟻群算法是通過觀測螞蟻的群體行為得到啟發(fā),用以解決組合優(yōu)化問題的 一種多路并行優(yōu)化方法。在蟻群算法中,螞蟻根據(jù)信息素和啟發(fā)式信息對路徑
進行選擇。在WSN的覆蓋問題求解中,信息素被放置于每個傳感器節(jié)點中,每 個節(jié)點賦予兩個信息素r;和t,2,其中f表示節(jié)點編號,分別指示該節(jié)點"被選 擇"和"不被選擇"的信息量。螞蟻會傾向于選擇信息素較高的一方,也就是 如果t,' ><,那么螞蟻就更傾向于選擇該節(jié)點用于覆蓋??紤]的節(jié)點/和其它所有已經(jīng)被選擇的 節(jié)點/, 1S/SM (M為當前已經(jīng)被選擇了的節(jié)點的總數(shù)),是否相交。這可以
通過兩個節(jié)點的圓心距離和半徑的關(guān)系得到。假設(shè)/與這M個節(jié)點中的《個相 交,那么節(jié)點/被選擇的啟發(fā)式信息則為r^:(l-《/M + 0.01)。也就是說,當f 和其它被選擇節(jié)點相交越少時,/被選擇的渴望度越大,公式最后加了0.01是為 了防止啟發(fā)式信息取值為0。相對應(yīng)的,節(jié)點/不被選擇的啟發(fā)式信息為 A2 ,/M +0.01)。
基于信息素和啟發(fā)式信息,螞蟻就可以對問題的解進行構(gòu)造。運用輪盤賭 的選擇方法對節(jié)點Z'進行判斷,選擇節(jié)點Z'進行覆蓋的概率為
IX x《
;■=1
相應(yīng)的,不選擇節(jié)點/進行覆蓋的概率則為
2 — r,2 x 7,2
在所有螞蟻均完成解的構(gòu)造后,需要根據(jù)適應(yīng)值函數(shù)對每個解進行評估。 在無線傳感器網(wǎng)絡(luò)的覆蓋問題中, 一般會涉及到"覆蓋率"和"消耗率" 兩個指標。覆蓋率是指在當前使用的傳感器的作用下,整個區(qū)域中至少被一個
傳感器覆蓋的面積占區(qū)域面積的百分比;消耗率指的是所需要使用的傳感器數(shù) 量與總數(shù)量的百分比。 一般而言,覆蓋率要越高越好,消耗率是越小越好。一 個好的優(yōu)化算法,就是能夠通過選擇最佳的傳感器組合,使得在使用盡量少的 傳感器的條件下完成盡可能高的區(qū)域覆蓋率。
本發(fā)明使用/i來指示覆蓋率,使用/2來指示消耗率。假設(shè)存在無線傳感器 節(jié)點集合5={&,&,...,&}, 1代表的節(jié)點子集是5*={^, |義廣1},則力和/2的定義 分別如下所示
i:牟》臉^
在以上公式屮,分母^表示整個區(qū)域的面積,分子表示所有開啟的傳感器 的覆蓋區(qū)域的面積疊加,問表示所有傳感器節(jié)點的數(shù)目,i力表示開啟的傳感器 數(shù)目。
事實上,如果直接計算公式,可能會遇到難以計算i:,^Jos》的困難。為
了解決這個問題,本發(fā)明通過區(qū)域離散化的方式,從另外一個角度計算yi。假設(shè) 每個傳感器的傳感半徑都是凡而每個傳感器s的位置是(》,:^,將整個區(qū)域均
勻劃分為附xw的柵格,這樣可以得到每個柵格點的坐標7^".,乂.}。如公式以下
公式所示,如果z『1,則柵格點7;被傳感器s所覆蓋。
;如果(x,-x》2+(少,—A)2-/ 2 :o,否則
由此可以得到柵格點7}被無線傳感器網(wǎng)絡(luò)覆蓋的條件是至少有一個傳感器 S將其覆蓋,用公式可以表示為
因此z產(chǎn)i或者zpo,其中z產(chǎn)i表示柵格點r,被無線傳感器網(wǎng)絡(luò)覆蓋,z嚴o 表示柵格點r,不能被無線傳感器網(wǎng)絡(luò)覆蓋?;谝陨系亩x,可以通過以下公 式計算覆蓋率/口 ,
附x w
得到了 /i和/2之后,就可以通過加權(quán)的方法得到最終的適應(yīng)值函數(shù)/:<formula>formula see original document page 10</formula>
上式中的Wl和w2分別表示_/!和/2的權(quán)重,其值取決于設(shè)計者對該網(wǎng)絡(luò)指標的綜 合要求。 一般要求M+wf1.0??傮w函數(shù)值/介于0 l之間,該值越大,表明方案 越優(yōu)。通過適應(yīng)值函數(shù)就可以綜合評估每種節(jié)點部署方案的優(yōu)劣。
完成對所有解的評估后,對信息素執(zhí)行更新,加強最優(yōu)解上的信息素,更 新公式為
<formula>formula see original document page 10</formula>其中,a為蒸發(fā)系數(shù),^為控制信息素增加的系數(shù),Ar為信息素增加的單位值。 然后,對于其余所有節(jié)點上的信息素進行蒸發(fā)
設(shè)置節(jié)點上的信息素最小值為r^,當節(jié)點上的信息素降低到r皿時,將不再對 該節(jié)點進行信息素的蒸發(fā)。
蟻群算法優(yōu)化無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋的流程圖如圖1所示。 以一個仿真實驗為例對發(fā)明的算法進行測試,假設(shè)實驗是在一個 100mxl00m的區(qū)域內(nèi)進行。首先是隨機投放JV=100個無線傳感器,每個傳感器 的傳感半徑A為llm。然后使用蟻群算法對傳感器節(jié)點進行優(yōu)化選擇。10次運 行結(jié)果的平均適應(yīng)值為0.867589,平均覆蓋率為0.95262,而平均需要的傳感器 數(shù)量則為48.7。從實驗結(jié)果可以看出,蟻群算法優(yōu)化后,僅需使用較少節(jié)點就 可以達到較高的覆蓋率,這證明了發(fā)明的算法在無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu)化 中是十分有效的。
權(quán)利要求
1、一種基于蟻群算法的無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu)化方法,其特征在于,該方法包括以下步驟(1)問題的生成。在D×D區(qū)域內(nèi)隨機散布N個傳感半徑為R的無線傳感器。(2)初始化算法的各個參數(shù)。(3)設(shè)k=1。(4)讓螞蟻k隨機選擇從一個傳感器節(jié)點開始搜索,并選擇該節(jié)點進行覆蓋。(5)螞蟻k隨機選擇下一個未考慮的節(jié)點i進行判斷,根據(jù)啟發(fā)式信息和信息素的取值決定是否選擇該節(jié)點進行覆蓋。(6)判斷螞蟻是否已經(jīng)考慮了所有節(jié)點,完成解的構(gòu)造。如果是,則繼續(xù)步驟(7),否則回到步驟(5)。(7)k=k+1,如果k>N,其中N表示算法中的螞蟻數(shù)量,則繼續(xù)步驟(8),否則回到步驟(4)。(8)評估所有螞蟻構(gòu)造出的解的適應(yīng)值,運用的適應(yīng)值函數(shù)為maxf(X)=w1f1(X)+w2(1-f2(X))其中,f1表示覆蓋率,f2來表示消耗率。S={S1,S2,...,SN}表示無線傳感器節(jié)點集合,X代表的節(jié)點子集是S*={Sj,|xj=1}。A表示整個區(qū)域的面積。|S|表示所有傳感器節(jié)點的數(shù)目。|S*|表示開啟的傳感器數(shù)目。w1和w2分別表示f1和f2的權(quán)重。(9)執(zhí)行信息素的更新。(10)如果達到結(jié)束條件,就終止優(yōu)化程序,否則回到步驟(3)。
2、 基于權(quán)利要求1所述的一種基于蟻群算法的無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu) 化方法,其特征在于螞蟻選擇節(jié)點/進行覆蓋的概率為<formula>formula see original document page 3</formula>相應(yīng)的,不選擇節(jié)點i進行覆蓋的概率則為:<formula>formula see original document page 3</formula>在以上兩式中7T,'和7:,2分別指示該節(jié)點"被選擇"和"不被選擇"的信息量。 和77,2則是對應(yīng)的啟發(fā)式信息。^-(l-尺/M + 0.01), 77,2 =(X/M +0.01),其中 M為已選擇進行覆蓋的節(jié)點數(shù)量,K表示與M個節(jié)點中與/相交的節(jié)點數(shù)量。
3、基于權(quán)利要求1所述的一種基于蟻群算法的無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋優(yōu) 化方法,其特征在于在信息素更新時,加強最優(yōu)解上的信息素,更新公式為<formula>formula see original document page 3</formula>其中,a為蒸發(fā)系數(shù),j3為控制信息素增加的系數(shù),Ar為信息素增加的單位值。并對于其余所有節(jié)點上的信息素進行蒸發(fā)<formula>formula see original document page 3</formula>
全文摘要
本發(fā)明將蟻群算法運用到無線傳感器網(wǎng)絡(luò)節(jié)點最優(yōu)覆蓋問題上。在使用蟻群優(yōu)化算法作為優(yōu)化工具對問題進行求解的時候,將問題的重點放在無線傳感器網(wǎng)絡(luò)節(jié)點覆蓋中的隨機覆蓋問題上,并將問題模型化為0/1規(guī)劃問題,然后運用蟻群算法進行求解。在提出的算法中,將信息素放置在傳感器網(wǎng)絡(luò)節(jié)點上,每個節(jié)點賦予兩個信息素,分別指示該節(jié)點“被選擇”和“不被選擇”的信息量。同時,在算法中設(shè)置了有效的啟發(fā)式信息以引導(dǎo)螞蟻的搜索行為。螞蟻將根據(jù)信息素和啟發(fā)式信息決定使用哪些節(jié)點進行覆蓋。最后,通過仿真測試驗證了發(fā)明的算法的有效性和高效性。
文檔編號H04W16/00GK101459914SQ20081022063
公開日2009年6月17日 申請日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者馮心玲, 軍 張, 詹志輝, 霓 陳, 陳夢君, 韜 黃, 龔月姣 申請人:中山大學(xué)