一種采用改進的人工蜂群算法的無線傳感器部署方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及一種利用改進的人工蜂群算法的無線傳感器部署方法,是一種無線傳 感器部署算法。
【背景技術(shù)】
[0002] 隨著計算機、無線通信技術(shù)W及傳感器的發(fā)展,無線傳感器網(wǎng)絡(luò)(WSN)獲得蓬勃發(fā) 展。由于無線傳感器網(wǎng)絡(luò)中的傳感器需要采集很多物理位置相關(guān)的數(shù)據(jù),無線傳感器的位 置會影響其覆蓋范圍,所W確定傳感器的位置是無線傳感器網(wǎng)絡(luò)中傳感器部署的一個重要 內(nèi)容?,F(xiàn)在的無線傳感器部署算法很多,但是很少有算法可W同時實現(xiàn)靜態(tài)部署和動態(tài)部 署兩種部署策略。本發(fā)明就實現(xiàn)了一種可W動態(tài)或靜態(tài)進行無線傳感器部署的方法。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明目的是:提出一種利用改進的人工蜂群算法部署無線傳感器的方法,既可 W用于靜態(tài)部署也可W用于動態(tài)部署,計算出的無線傳感器覆蓋率較高,并且該方法的收 斂速度也較快。
[0004] 初始化步驟,雇傭蜂步驟,計算選擇概率步驟,跟隨蜂步驟,偵查蜂步驟。算法的流 程與原始的人工蜂群算法相同,主要在各步驟中對原始的食物源初始化W及食物源優(yōu)化策 略進行改進,提高了食物源優(yōu)化的初始基準W及食物源優(yōu)化的效率。
[0005] 利用改進的人工蜂群算法的無線傳感器部署方法,應(yīng)用在一個給定的空間中部署 無線傳感器W達到最大的無線傳感器覆蓋問題,首先,輸入需要部署無線傳感器的區(qū)域,包 括待部署空間的長寬,無線傳感器的數(shù)量,無線傳感器的覆蓋半徑;其次,指定無線傳感器 的覆蓋半徑和數(shù)量,最后,不斷調(diào)整無線傳感器的位置,已盡可能達到最大的無線傳感器覆 蓋率。
[0006] 通過改進的人工蜂群算法生成初始的部署方案,不斷進行優(yōu)化,直到達到較高的 無線傳感器覆蓋率。
[0007] 利用改進的人工蜂群算法進行無線傳感器部署的具體步驟包含W下五步:
[000引1)初始化步驟:假設(shè)需要將N個覆蓋半徑為r的無線傳感器部署在一個邊長為a的 正方形房間;設(shè)定參數(shù)scale,表示切割出的小空間的邊長和無線傳感器覆蓋半徑的比例, 參數(shù)scale的取值范圍為[2,4],根據(jù)空間的切割逆向推出;根據(jù)此參數(shù)計算出無線傳感器 均勻分布的數(shù)量count;
[0010] 對count和N進行比較,如果count大于N,那么無線傳感器的數(shù)量無法滿足運一比 例的均勻分布,那么需要調(diào)整參數(shù)scale的大小重新進行計算;如果count剛好等于N,那么 初始化就能將所有無線傳感器按順序裝入對應(yīng)的切割出的小空間中,即在小空間的范圍中 進行坐標的隨機取得;大部分情況下,count小于N,運時就將前count個無線傳感器在對應(yīng) 的小空間中進行初始化,而剩余的無線傳感器在進行全局范圍的隨機取值.
[0011]食物源的初始化方法如下:
[001^ Xij=( Xmax-Xmin ) X rand ( 0 , I ) +Xmin ,
[0013] 其中i為食物源序號,j為食物源中的變量編號,Xmin和Xmax分別為變量Xij取值范圍 的最小值和最大值,對于前count個無線傳感器,Xmin和Xmax為每個對應(yīng)小的正方形的坐標上 下限,而對于剩余的N-COimt個無線傳感器,Xmin和Xmax的取值范圍為整個大的方形的坐標上 下限;rand(0,l)為隨機取得的(0,1)之間的隨機數(shù);隨機算法總共生成SN個食物源(xi,ie [1,SN]),SN-般取蜂群大小的一半,每個食物源包含M個變量(Xij,j e [ 1,M]);
[0014] 4)雇傭蜂步驟:
[0015] 雇傭蜂步驟會對每個食物源進行鄰居優(yōu)化;雇傭蜂根據(jù)其對于食物源i的位置進 行鄰居捜索,隨機獲取食物源i的鄰居食物源k,并且通過鄰居食物源優(yōu)化其對應(yīng)的食物源, 公式如下:
[0016] yu = xij+rand(-l, 1) X (祉廣Xij),
[0017] 其中je[l,M]為所要優(yōu)化的變量序號,分別為當前食物源和當前食物源選定的鄰 居食物源,rancKO,1)為[-1,1 ]之間隨機取得的隨機數(shù);當經(jīng)過鄰居優(yōu)化取得的變量值超過 其取值范圍Xmin和Xmax時,直接去其接近的最值,此處的Xmin和Xmax值根據(jù)初始化步驟的改變 需要做出相應(yīng)的變化,對于前count個無線傳感器,Xmin和Xmax為每個對應(yīng)小的正方形的坐標 上下限,而對于剩余的N-COimt個無線傳感器,Xmin和Xmax的取值范圍為整個大的方形的坐標 上下限;雇傭蜂會比較原始的食物源Xi和優(yōu)化后的食物源yi的適應(yīng)度,如果原始食物源Xi的 適應(yīng)度更高,則不改變食物源,對食物源的優(yōu)化計數(shù)trail加1;如果優(yōu)化后的食物源yi的適 應(yīng)度更高,則將原始食物源Xi替換成鄰居優(yōu)化后的食物源yi,并將優(yōu)化計數(shù)trai 1置0;
[0018] 設(shè)置優(yōu)化計數(shù)trail是為了在偵查蜂階段選擇無法再優(yōu)化的食物源重新初始化而 設(shè)置得到;
[0019] 在進行一次鄰居優(yōu)化后,雇傭蜂會對對應(yīng)的食物源繼續(xù)進行優(yōu)化,策略為:循環(huán)生 成隨機數(shù)r,只要^MR,就繼續(xù)進行優(yōu)化,只有隨機數(shù)r取值取得大于等于MR的值時,才停止 優(yōu)化;其中MR為鄰居優(yōu)化闊值,是算法中預先設(shè)定的常數(shù);
[0020] 當所有的雇傭蜂對每個食物源都進行鄰居優(yōu)化之后,記錄鄰居優(yōu)化后所有食物源 的新的適應(yīng)度:適應(yīng)度描述一個解即食物源對于全局最優(yōu)解的近似程度,計算方式一般跟 所求解的具體問題相關(guān);適應(yīng)度fitnessi的計算在標準人工蜂群算法中如下面的公式所 示:
[0022] 其中,fi為解i在求解問題函數(shù)中對應(yīng)的函數(shù)值;
[0023] 5)計算選擇概率步驟:
[0024] 在原始的人工蜂群算法中,選擇概率的計算方式為計算食物源適應(yīng)度在所有食物 源適應(yīng)度之和中所占的比例;
[0025] 為了能夠更好的控制跟隨蜂階段的優(yōu)化進度,改進的人工蜂群算法中引入了參數(shù) 選擇概率闊值0來控制選擇概率的計算,方法如下:
[0027]其中選擇概率闊值0為算法一開始需要設(shè)定好的參數(shù),取值范圍為[0,1];0值越 大,計算所得的選擇概率probk越小,跟隨蜂步驟對于低適應(yīng)度的食物源進行鄰居優(yōu)化的概 率越高;e值越小,計算所得的選擇概率probk越大,跟隨蜂步驟越可能對于高適應(yīng)度的食物 源進行優(yōu)化;
[002引4)跟隨蜂步驟:
[0029] 在跟隨蜂步驟中,原始的人工蜂群算法會通過選擇概率決定要優(yōu)化的食物源,對 食物源進行鄰居優(yōu)化。
[0030] 在改進的人工蜂群算法中,鄰居優(yōu)化采用了一種新的策略,加入了鄰居因子和遺 忘因子兩個參數(shù),將鄰居優(yōu)化與當前食物源和選擇的鄰居食物源的適應(yīng)度yu建立了關(guān)聯(lián), 方法如下公式所示。
[0031 ] YU = q X xij+T X rand(-l, 1) X (Xkjj-Xij),
[0032] 其中Tl為鄰居因子,T為遺忘因子;Tl與當前食物源鄰居優(yōu)化選擇的鄰居食物源有 關(guān),與循環(huán)次數(shù)正相關(guān)W防止陷入局部最優(yōu);T與當前待優(yōu)化食物源有關(guān),與循環(huán)次數(shù)負相 關(guān),用于保持當前食物源的信息;運兩個參數(shù)的計算如下公式所示;
[0033] T = AX CO t,
[0034] q二AX 〇h,
[0035] 其中A為根據(jù)當前食物源和所選定的鄰居源的關(guān)系,為算法一開始要設(shè)定的兩個 常數(shù)值,運兩個常數(shù)值一個大于1,一個小于1。當當前食物源的鄰居食物源的適應(yīng)度低于當 前食物源的適應(yīng)度時,則A〉l;反之則A<1。只與當前循環(huán)數(shù)相關(guān),關(guān)系如下公式所示。
[003引其中《1,《2,《3,《4,a,e為算法一開始需要設(shè)定的常數(shù),iter為算法的當前循環(huán) 次數(shù),1113^07(316為算法設(shè)定的最大循環(huán)次數(shù)。0和0的取值范圍分別為[0.8,1]和[1,1.2]。
[0039] 5)偵查蜂步驟:
[0040] 偵查蜂步驟會通過食物源已進行鄰居優(yōu)化的嘗試次數(shù)優(yōu)化計數(shù)trail對食物源進 行優(yōu)化。
[0041] 根據(jù)雇傭蜂中對鄰居優(yōu)化的描述,食物源每進行一次鄰居優(yōu)化,如果食物源未優(yōu) 化成功,即生成的新的食物源適應(yīng)度低于原始食物源,則該食物源的優(yōu)化計數(shù)trai 1加1,反 之,則該食物源的優(yōu)化計數(shù)trai 1置0;
[0042] 在偵查蜂步驟,偵察蜂會對嘗試次數(shù)超過最大嘗試次數(shù)limit的食物源中優(yōu)化計 數(shù)trail最大的一個食物源進行重新初始化。
[0043] 經(jīng)過W上步驟的循環(huán)之后,我們可W得到一個較好的傳感器部署方案,根據(jù)該方 案部署即可。
[0044] 在本發(fā)明中的應(yīng)用的改進的人工蜂群算法中,相比原始的人工蜂群算法,對于人 工蜂群算法的初始化步驟,雇傭蜂步驟,計算選擇概率步驟,跟隨蜂步驟進行了改良,已達 到更好的初始解生成W及更快的收斂速度。
[0045] 本發(fā)明的有益效果是:通過一種改進的人工蜂群算法,逐步優(yōu)化部署結(jié)果,已達到 較高的無線傳感器覆蓋率。采用改進的人工蜂群算法的無線傳感器部署方法,既可W用于 靜態(tài)部