本發(fā)明屬于無(wú)線傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法。
背景技術(shù):
近年來(lái)無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)在環(huán)境監(jiān)測(cè)、火情監(jiān)測(cè)、戰(zhàn)場(chǎng)探察等諸多方面都得到了廣泛的應(yīng)用。在這些網(wǎng)絡(luò)的應(yīng)用中,大量的傳感器節(jié)點(diǎn)被部署到被監(jiān)測(cè)區(qū)域中,當(dāng)有網(wǎng)絡(luò)關(guān)注的敏感事件發(fā)生時(shí),傳感器節(jié)點(diǎn)就將收集到的事件的數(shù)據(jù)經(jīng)由多跳路徑傳輸給一個(gè)靜止的匯聚節(jié)點(diǎn)(sink node,SN)。由于整個(gè)收集的信息都會(huì)逐漸中轉(zhuǎn)、匯聚,因此會(huì)導(dǎo)致靠近sink節(jié)點(diǎn)的傳感器節(jié)點(diǎn)由于不但需要承載自身的信息傳輸任務(wù)還需要轉(zhuǎn)發(fā)遠(yuǎn)端傳感器節(jié)點(diǎn)的信息,因此會(huì)承載更多的傳輸負(fù)荷。從而,會(huì)消耗更多的能量,加速其死亡,導(dǎo)致整個(gè)網(wǎng)絡(luò)生存時(shí)間的縮短,這就是所謂的“能量空洞”問(wèn)題。為了解決“能量空洞”問(wèn)題,近年來(lái)移動(dòng)sink的應(yīng)用應(yīng)運(yùn)而生。但是在實(shí)際的應(yīng)用環(huán)境中,無(wú)線傳感器網(wǎng)絡(luò)的布設(shè)范圍通常比較廣闊,受移動(dòng)承載平臺(tái)的限制移動(dòng)sink的移動(dòng)速度大多不高。因此,與靜止sink節(jié)點(diǎn)的無(wú)線傳感器網(wǎng)絡(luò)相較,采用移動(dòng)sink節(jié)點(diǎn)的無(wú)線傳感器網(wǎng)絡(luò)常常需要更多的時(shí)間才能完成全網(wǎng)數(shù)據(jù)的收集工作。然而,在多數(shù)應(yīng)用實(shí)踐中用戶對(duì)全網(wǎng)信息收集的時(shí)延都有所要求。但是通常網(wǎng)絡(luò)構(gòu)建完成之后,移動(dòng)載體類型、能力也隨之固定,載體的移動(dòng)速度難以大范圍進(jìn)行修改提高。在移動(dòng)載體能力不變的條件下,為了提高全網(wǎng)信息收集的時(shí)效性,只有縮短信息收集路徑的長(zhǎng)度。因此,在引入移動(dòng)sink的傳感器網(wǎng)絡(luò)中,為了保證全網(wǎng)信息收集時(shí)延的需求,問(wèn)題的核心就集中到如何構(gòu)建更短的信息收集路徑以縮短信息收集時(shí)延的問(wèn)題之上。因此,有必要深入研究移動(dòng)sink的移動(dòng)路徑規(guī)劃問(wèn)題,從而盡可能減少數(shù)據(jù)包的延遲。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法,旨在解決采用移動(dòng)sink節(jié)點(diǎn)的無(wú)線傳感器網(wǎng)絡(luò)完成全網(wǎng)數(shù)據(jù)的收集工作存在收集周期較長(zhǎng),收集速度較慢的問(wèn)題。
本發(fā)明是這樣實(shí)現(xiàn)的,一種基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法,所述基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法包括以下步驟:
步驟一,使用粗粒度柵格對(duì)布設(shè)區(qū)域進(jìn)行劃分,獲得初級(jí)劃分柵格;
步驟二,利用可變長(zhǎng)度編碼單親遺傳算法獲得初級(jí)信息收集路徑的途徑柵格,構(gòu)建初級(jí)最佳信息收集路徑;對(duì)每一個(gè)初級(jí)最佳信息收集路徑途經(jīng)的初級(jí)柵格,再次使用細(xì)粒度柵格間隔進(jìn)行劃分,獲得二級(jí)劃分柵格;
步驟三,使用固定長(zhǎng)度編碼遺傳算法對(duì)初級(jí)最佳信息收集路徑進(jìn)行優(yōu)化,最終獲得最佳信息收集路徑;
所述可變長(zhǎng)度編碼單親遺傳算法包括置換算子:隨機(jī)刪除個(gè)體中某兩個(gè)相鄰基因位k、k+1對(duì)應(yīng)的柵格位置;獲得所刪除基因位置對(duì)應(yīng)覆蓋的傳感器節(jié)點(diǎn)的集合的并集其中表示信息收集點(diǎn)k所能夠覆蓋的傳感器節(jié)點(diǎn)的集合。在柵格中心點(diǎn)集合中搜索一個(gè)中心節(jié)點(diǎn)位置替換前述k、k+1基因位。
進(jìn)一步,在劃分初級(jí)柵格時(shí),使用邊長(zhǎng)為L(zhǎng)1的柵格劃無(wú)線傳感器網(wǎng)絡(luò)的分布設(shè)區(qū)域。以柵格劃分后形成的網(wǎng)狀柵格的中心點(diǎn)坐標(biāo)作為備選信息收集點(diǎn)位置。即移動(dòng)sink僅在這些信息收集點(diǎn)上時(shí)開(kāi)機(jī)收集信息。為了節(jié)省能量與簡(jiǎn)化控制,在其余位置移動(dòng)sink關(guān)閉其收發(fā)信機(jī),不接收信息。因此,為了保證移動(dòng)sink能夠收集到所有位置的傳感器節(jié)點(diǎn)信息,設(shè)移動(dòng)sink的通信半徑為R,那么以柵格中心點(diǎn)為圓心、半徑為R的圓形區(qū)域應(yīng)該能夠完全覆蓋以L1為邊長(zhǎng)的整個(gè)柵格區(qū)域。所以柵格邊長(zhǎng)L1的上限為
進(jìn)一步,在二級(jí)柵格劃分時(shí),針對(duì)初級(jí)柵格劃分上形成的初級(jí)信息收集路徑所途經(jīng)的初級(jí)柵格。再次使用一個(gè)更小的邊長(zhǎng)L2再次對(duì)這些初級(jí)柵格進(jìn)行劃分。二級(jí)柵格劃分邊長(zhǎng)L2越小,那么獲得的信息收集路徑的精確度(優(yōu)化精度)越高。但是同時(shí)L2越小,二級(jí)柵格的數(shù)量就會(huì)增多,那么計(jì)算量就會(huì)增高。所以我們選擇一個(gè)折中值
進(jìn)一步,用整數(shù)表示柵格中心節(jié)點(diǎn)坐標(biāo)其中s=(x-1)×I+j。因此,通過(guò)中心點(diǎn)序列的路徑可以用一個(gè)有序整數(shù)序列來(lái)表示。
進(jìn)一步,二級(jí)柵格劃分的方法根據(jù)需替換的第k、k+1個(gè)柵格中心點(diǎn)的柵格位置,設(shè)第k個(gè)信息收集點(diǎn)的位置是柵格的中心點(diǎn)坐標(biāo)第k+1個(gè)信息收集點(diǎn)的位置為柵格中心點(diǎn)位置坐標(biāo)那么就選擇至與至之間的所有柵格作為備選柵格,即選擇以和為頂點(diǎn)的矩形柵格范圍之內(nèi)的所有柵格作為備選柵格;然后逐次檢測(cè)以每個(gè)柵格的中心點(diǎn)作為替換點(diǎn)位置是否能夠覆蓋原來(lái)的兩個(gè)柵格中心點(diǎn)位置所能覆蓋的傳感器節(jié)點(diǎn)的集合;若能則直接替換,若無(wú)法找到替換柵格則直接跳過(guò)步驟。
進(jìn)一步,第二級(jí)柵格劃分后最佳路徑的搜索方法的流程如下:
若通過(guò)第一級(jí)柵格劃分后獲得的初級(jí)最優(yōu)路徑為:其中該路徑涉及的柵格依次為對(duì)于這些初級(jí)最優(yōu)路徑途經(jīng)的柵格根據(jù)二級(jí)柵格跨度大小L2做更細(xì)致的第二層?xùn)鸥駝澐?;使用遺傳算法計(jì)算最佳信息收集路徑;在該處由于計(jì)算過(guò)程中,分別從中各自選擇一個(gè)二級(jí)柵格來(lái)進(jìn)行進(jìn)一步的迭代搜索,用傳統(tǒng)的固定長(zhǎng)度編碼的遺傳算法即可,獲得最終的最佳信息收集路徑形如
本發(fā)明的另一目的在于提供一種利用所述基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法的無(wú)線傳感器網(wǎng)絡(luò)。
本發(fā)明的另一目的在于提供一種利用所述基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法的環(huán)境監(jiān)測(cè)系統(tǒng)。
本發(fā)明的另一目的在于提供一種利用所述基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法的火情監(jiān)測(cè)系統(tǒng)。
本發(fā)明的另一目的在于提供一種利用所述基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法的戰(zhàn)場(chǎng)探察系統(tǒng)。
本發(fā)明提供的基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法,在無(wú)線傳感器網(wǎng)絡(luò)中引入移動(dòng)sink后,利用移動(dòng)sink的“移動(dòng)能力”可以有效地優(yōu)化無(wú)線傳感器網(wǎng)絡(luò)中的數(shù)據(jù)采集過(guò)程,并顯著延長(zhǎng)整個(gè)無(wú)線傳感器網(wǎng)絡(luò)的生存時(shí)間。并且,也可利用移動(dòng)sink來(lái)進(jìn)行傳感器節(jié)點(diǎn)的輔助節(jié)點(diǎn)定位,由此顯著提高傳感器節(jié)點(diǎn)的定位精度。通過(guò)以上的研究結(jié)論,可以看出由于移動(dòng)sink節(jié)點(diǎn)在收集信息時(shí)更靠近傳感器節(jié)點(diǎn),因此更利于提高信息收集的數(shù)量與質(zhì)量,有效地解決sink節(jié)點(diǎn)固定時(shí)節(jié)點(diǎn)間耗能均衡的問(wèn)題。信息收集是無(wú)線傳感器網(wǎng)絡(luò)研究領(lǐng)域中的一個(gè)關(guān)鍵應(yīng)用領(lǐng)域,是無(wú)線傳感器網(wǎng)絡(luò)實(shí)際應(yīng)用的基礎(chǔ)。移動(dòng)sink的引入使sink節(jié)點(diǎn)只需要通過(guò)傳感器節(jié)點(diǎn)通信范圍即可完成節(jié)點(diǎn)信息的收集,減少了信息傳輸?shù)木嚯x,簡(jiǎn)化了信息收集協(xié)議的復(fù)雜度。本發(fā)明方法在充分考慮傳感器與sink節(jié)點(diǎn)的無(wú)線通信特性的基礎(chǔ)上,研究了移動(dòng)sink在無(wú)線傳感器網(wǎng)絡(luò)中的最佳信息收集路徑構(gòu)建問(wèn)題。在移動(dòng)sink最佳信息收集路徑的搜索過(guò)程中,本發(fā)明采用二次柵格劃分的方法來(lái)逐步縮小信息收集點(diǎn)的搜索范圍,簡(jiǎn)化了算法的計(jì)算復(fù)雜度。在信息收集路徑構(gòu)建過(guò)程中使用基于可變長(zhǎng)編碼的單親遺傳算法來(lái)進(jìn)行路徑搜索。仿真結(jié)果表明本發(fā)明所述方法與傳統(tǒng)的基于TSP的算法相比,能夠獲得更好(短)的信息收集路徑長(zhǎng)度,減少了傳感器節(jié)點(diǎn)的傳輸能耗、延長(zhǎng)了網(wǎng)絡(luò)的生存時(shí)間。與其它基于TSPN的算法相比本發(fā)明原理簡(jiǎn)單,擴(kuò)展性好,能夠獲得更好的信息收集路徑長(zhǎng)度。因此,本發(fā)明非常適用于大規(guī)模WSN網(wǎng)絡(luò)信息收集路徑的構(gòu)建應(yīng)用。在不同的仿真配置下,本發(fā)明提出的二次柵格劃分方法算法都取得了更加優(yōu)異的成績(jī)。因此,二次柵格劃分方法算法能有效的減少移動(dòng)sink的信息收集路徑長(zhǎng)度,從而降低了移動(dòng)sink系統(tǒng)的信息收集時(shí)延,進(jìn)而提高了整個(gè)傳感器網(wǎng)絡(luò)系統(tǒng)的執(zhí)行效率。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法流程圖。
圖2是本發(fā)明實(shí)施例提供的二次柵格劃分方法示意圖。
圖3是本發(fā)明實(shí)施例提供的倒序算子的運(yùn)行流程示意圖。
圖4是本發(fā)明實(shí)施例提供的置換算子運(yùn)行流程示意圖。
圖5是本發(fā)明實(shí)施例提供的二級(jí)柵格的構(gòu)建與搜索示意圖。
圖6是本發(fā)明實(shí)施例提供的節(jié)點(diǎn)通信半徑固定時(shí)的二次柵格劃分方法的性能示意圖。
圖7是本發(fā)明實(shí)施例提供的節(jié)點(diǎn)數(shù)固定時(shí)的二次柵格劃分方法的性能示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明構(gòu)建信息收集路徑的核心是確定信息收集路徑上信息收集點(diǎn)的位置。在選擇好信息收集點(diǎn)位置之后,將相鄰的信息收集點(diǎn)使用直線段連接起來(lái)構(gòu)成信息收集路徑。所以,可以將信息收集路徑地構(gòu)建問(wèn)題歸納為:在給定傳感器網(wǎng)絡(luò)節(jié)點(diǎn)分布的條件下,選擇合適的信息收集點(diǎn)集合,并基于該集合確定一條最短的信息收集路徑,依次遍歷所有信息收集點(diǎn)收集信息,最終使信息收集過(guò)程的時(shí)延最小。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
如圖1所示,本發(fā)明實(shí)施例提供的基于二次柵格劃分的移動(dòng)sink信息收集路徑構(gòu)建方法包括以下步驟:
S101:使用粗粒度柵格對(duì)布設(shè)區(qū)域進(jìn)行劃分,獲得初級(jí)劃分柵格;
S102:利用可變長(zhǎng)度編碼單親遺傳算法獲得初級(jí)信息收集路徑的途徑柵格,構(gòu)建初級(jí)最佳信息收集路徑;對(duì)每一個(gè)初級(jí)最佳信息收集路徑途經(jīng)的初級(jí)柵格,再次使用細(xì)粒度柵格間隔進(jìn)行劃分,獲得二級(jí)劃分柵格;
S103:使用固定長(zhǎng)度編碼遺傳算法對(duì)初級(jí)最佳信息收集路徑進(jìn)行優(yōu)化,最終獲得最佳信息收集路徑。
下面結(jié)合附圖對(duì)本發(fā)明的應(yīng)用原理作進(jìn)一步的描述。
假設(shè)移動(dòng)sink以及其它傳感器節(jié)點(diǎn)的通信半徑均為R?;谶@種假設(shè),在以移動(dòng)sink為圓心半徑為R范圍之內(nèi)的傳感器節(jié)點(diǎn)都可以將自己的信息傳輸給移動(dòng)sink節(jié)點(diǎn)。在傳感器布設(shè)位置已知的條件下,首先以邊長(zhǎng)L1對(duì)布設(shè)區(qū)域進(jìn)行柵格劃分。對(duì)于第一層?xùn)鸥癖景l(fā)明標(biāo)記為(x1,y1)表示在第一層?xùn)鸥裰幸苑抡鎱^(qū)域左下角柵格為起點(diǎn)的當(dāng)前柵格的位置標(biāo)識(shí),由左到右由下到上,i1表示柵格的行數(shù)、j1表示柵格的列數(shù)。對(duì)于第一層?xùn)鸥窨梢园凑者呴L(zhǎng)L2做第二層?xùn)鸥駝澐?。?duì)于第二稱柵格本發(fā)明標(biāo)記為其中上標(biāo)表示是第2級(jí)柵格劃分中的柵格,(x1,y1)(x2,y2)表示第二層?xùn)鸥竦奈恢脴?biāo)識(shí),其中的(x1,y1)表示該二級(jí)柵格是對(duì)第一層?xùn)鸥裰械?x1,y1)位置上的柵格進(jìn)行的二級(jí)劃分,(x2,y2)表示在一級(jí)柵格(x1,y1)中對(duì)應(yīng)的二級(jí)柵格的位置標(biāo)識(shí),標(biāo)識(shí)方法與一級(jí)柵格中的意義相同。同理,本發(fā)明用表示1級(jí)柵格(x1,y1)的中心點(diǎn)位置坐標(biāo),用表示2級(jí)柵格(x1,y1)(x2,y2)的中心點(diǎn)位置坐標(biāo)?;谝陨隙x,分別用表示一級(jí)柵格中心點(diǎn)的x、y坐標(biāo)值,用分別表示二級(jí)柵格中心的橫縱坐標(biāo)值?;谝陨霞僭O(shè),那么以每個(gè)柵格中心為圓心R為半徑的圓,也就是移動(dòng)sink在某個(gè)柵格中心點(diǎn)位置上能夠覆蓋的區(qū)域。該區(qū)域中所包含的節(jié)點(diǎn)集合可以表示為:
上式中,nodel表示第l個(gè)傳感器節(jié)點(diǎn)的位置坐標(biāo),I、J分別表示橫、縱軸劃分的柵格數(shù),N表示場(chǎng)景中的節(jié)點(diǎn)數(shù),|| ||表示進(jìn)行歐氏距離計(jì)算。
在以上參數(shù)描述的基礎(chǔ)上,本發(fā)明所提出的算法的流程敘述如下:
Step1:產(chǎn)生初始種群
為了表示方便,用整數(shù)表示柵格中心節(jié)點(diǎn)坐標(biāo)其中s=(x-1)×I+j。因此,通過(guò)中心點(diǎn)序列的路徑用一個(gè)有序整數(shù)序列來(lái)表示。同時(shí)在生成遺傳算法的初始個(gè)體的時(shí)候需要保證以該中心點(diǎn)集合為信息收集點(diǎn)位置能夠覆蓋到布設(shè)區(qū)域內(nèi)的所有傳感器節(jié)點(diǎn),并且還需要足夠隨機(jī)。
Step2:計(jì)算適應(yīng)值
適應(yīng)值是遺傳算法的進(jìn)化依據(jù)。在本發(fā)明中,由于本發(fā)明的是最小化信息收集時(shí)延的問(wèn)題,對(duì)應(yīng)的本發(fā)明就選擇每個(gè)遺傳個(gè)體對(duì)應(yīng)的信息收集路徑的長(zhǎng)度作為個(gè)體的適應(yīng)值。適應(yīng)值越小,代表該個(gè)體表示的信息收集路徑越短,即信息收集時(shí)間越短,所以個(gè)體越優(yōu)秀。
Step3:第一級(jí)柵格劃分&可變長(zhǎng)度編碼遺傳算法
為了在引入可變長(zhǎng)度編碼的條件下進(jìn)行遺傳算法的迭代運(yùn)算,同時(shí)保持進(jìn)化過(guò)程中個(gè)體長(zhǎng)度的可變特性,本發(fā)明設(shè)計(jì)了兩個(gè)遺傳算子:倒序算子和置換算子。使用這兩個(gè)算子來(lái)代替?zhèn)鹘y(tǒng)遺傳算法中的交織、變異等算子。本發(fā)明首先來(lái)描述一下這兩個(gè)本發(fā)明定義的新算子。
倒序算子:對(duì)于一個(gè)個(gè)體根據(jù)個(gè)體長(zhǎng)度隨機(jī)選擇兩個(gè)位置——倒序的起始、終結(jié)位置k1,k2,不失一般性設(shè)k1≤k2,然后將k1→k2的路徑倒置為k2→k1的路徑。
從圖3中可以看出倒序算子思路非常簡(jiǎn)單,僅需要產(chǎn)生倒序的起始、終結(jié)位置即可。同時(shí)由于僅是倒置了起始、終結(jié)位置之間的序列結(jié)構(gòu),因此并不會(huì)導(dǎo)致算法存儲(chǔ)空間的增多。從之前相關(guān)文獻(xiàn)的仿真結(jié)果和本發(fā)明算法仿真過(guò)程來(lái)看倒序算子具有優(yōu)秀的執(zhí)行效率,由其在算法初期的搜索階段該算子具有非常高的搜索效率。
與此同時(shí),從當(dāng)前的研究結(jié)果可以看出,基于TSP和TSPN問(wèn)題的最短信息收集路徑問(wèn)題的最優(yōu)解其信息收集點(diǎn)位置的數(shù)量都是隨著搜索過(guò)程的進(jìn)行而逐漸減小的。而倒序算子雖然具有很好的搜索能力,但是該算子并不改變信息收集點(diǎn)的數(shù)量,所以并不能進(jìn)一步優(yōu)化現(xiàn)有個(gè)體。因此,基于以上分析結(jié)果,本發(fā)明認(rèn)為需要添加一種能夠在滿足布設(shè)區(qū)域內(nèi)傳感器節(jié)點(diǎn)完全覆蓋的條件下的能夠優(yōu)化信息收集點(diǎn)數(shù)量的新的算子。用這個(gè)新的算子能夠進(jìn)行更加細(xì)致的局部搜索,從而形成對(duì)倒序算子構(gòu)成有效的補(bǔ)充。這就是本發(fā)明下面要論述的“置換算子”。
置換算子:為了進(jìn)一步優(yōu)化算法的局部搜索能力,本發(fā)明提出一種全新的遺傳操作算子——置換算子。置換算子的想法是隨機(jī)刪除個(gè)體中某兩個(gè)相鄰基因位k、k+1;獲得所刪除基因位置對(duì)應(yīng)覆蓋的傳感器節(jié)點(diǎn)的集合的并集在柵格中心點(diǎn)集合中搜索數(shù)量盡量少的一些其它中心節(jié)點(diǎn)位置組成替換點(diǎn)集。
由于替換點(diǎn)集合覆蓋的傳感器節(jié)點(diǎn)集合能夠完全包含刪除的基因位所覆蓋的傳感器節(jié)點(diǎn)集合找到后用替換點(diǎn)集合替換這兩個(gè)基因位,若無(wú)法找到替換點(diǎn)集合則跳過(guò)該步操作,執(zhí)行Step4。
通過(guò)置換算子的流程描述可以看出,置換算子的核心是使用一個(gè)新的信息收集點(diǎn)位置替換原個(gè)體中的兩個(gè)信息收集點(diǎn)位置。從圖5可以看出,使用新的信息收集點(diǎn)位置替換原來(lái)的信息收集點(diǎn)之后,信息收集路徑從原來(lái)的轉(zhuǎn)化為根據(jù)簡(jiǎn)單的幾何學(xué)原理——三角形的兩邊長(zhǎng)度之和大于第三邊的長(zhǎng)度。設(shè)X為邊與邊的交點(diǎn)。那么顯而易見(jiàn)邊與之和大于邊的長(zhǎng)度,邊與的長(zhǎng)度和大于邊的長(zhǎng)度。因此,路徑的長(zhǎng)度必然大于路徑的長(zhǎng)度。所以如果能夠找到一個(gè)合適的信息收集點(diǎn)E,那么就能夠縮短信息收集路徑的長(zhǎng)度?,F(xiàn)在問(wèn)題的關(guān)鍵轉(zhuǎn)化為如何能夠找到該合適的替換節(jié)點(diǎn)位置的問(wèn)題。在本發(fā)明中,由于是采用二級(jí)柵格劃分的方法來(lái)縮小路徑搜索的范圍,所以本發(fā)明采用一個(gè)相對(duì)簡(jiǎn)單的方法,在這里本發(fā)明稱之為“局部柵格搜索”的方法。在局部柵格搜索方法中,本發(fā)明根據(jù)需替換的第k、k+1個(gè)柵格中心點(diǎn)的柵格位置,不失一般性假設(shè)第k個(gè)信息收集點(diǎn)的位置是柵格的中心點(diǎn)坐標(biāo)第k+1個(gè)信息收集點(diǎn)的位置為柵格中心點(diǎn)位置坐標(biāo)假設(shè)那么們就選擇至與至之間的所有柵格作為備選柵格。也就是選擇以和為頂點(diǎn)的矩形柵格范圍之內(nèi)的所有柵格作為備選柵格。然后逐次檢測(cè)以每個(gè)柵格的中心點(diǎn)作為替換點(diǎn)位置是否能夠覆蓋原來(lái)的兩個(gè)柵格中心點(diǎn)位置所能覆蓋的傳感器節(jié)點(diǎn)的集合。若能則直接替換,若無(wú)法找到替換柵格則直接跳過(guò)該步驟。這樣就可以有效的降低置換算子所需要搜索的柵格范圍,也就降低了算法的復(fù)雜度與計(jì)算量。
Step4:最優(yōu)個(gè)體保持策略
在遺傳算法的迭代過(guò)程中,本發(fā)明選擇使用最優(yōu)個(gè)體保持策略來(lái)保證最優(yōu)個(gè)體在迭代過(guò)程中的延續(xù)。具體操作方法是將每一代中的最佳解(最優(yōu)個(gè)體)保存下來(lái);在倒序、置換操作完成后,比較上一代的最佳解(最優(yōu)個(gè)體值)與當(dāng)代最佳解(最優(yōu)個(gè)體值)的適應(yīng)值;若當(dāng)代最佳解(最優(yōu)個(gè)體)較差,則使用上代最佳解(最優(yōu)個(gè)體)替換當(dāng)代個(gè)體中最差個(gè)體。若當(dāng)代最佳值(最優(yōu)個(gè)體)的適應(yīng)值更好,則使用當(dāng)代最佳解來(lái)替換上一代的最佳解,作為至今最佳解保存下來(lái)。
Step5:退出條件判斷
“退出條件”是用來(lái)判斷算法在迭代的過(guò)程中是否應(yīng)當(dāng)退出的一個(gè)重要步驟。在本發(fā)明設(shè)置的“退出條件”為:至今最佳解的適應(yīng)值在若干代中的變化范圍小于至今最佳解的適應(yīng)值的某個(gè)預(yù)設(shè)比例。其具體的含義是就是判斷迭代過(guò)程所生成的各代最佳解的適應(yīng)值在某些代中如果沒(méi)有明顯的變化,那么就意味著算法已經(jīng)搜索到全局最佳解了。所以,根據(jù)這個(gè)設(shè)置的“退出條件”若判定算法滿足了該退出條件或已經(jīng)到達(dá)最大迭代次數(shù)門限,算法就退出迭代,將至今最佳解作為最終解輸出。否者,則繼續(xù)進(jìn)行迭代過(guò)程。
Step6:第二級(jí)柵格劃分&固定長(zhǎng)度編碼遺傳算法
在通過(guò)Step3-Step5的第一級(jí)柵格劃分及可變長(zhǎng)度編碼遺傳算法的求解過(guò)程后,就可以在大粒度上大致確定最佳信息收集路徑。為了在此基礎(chǔ)上獲得更加精確的信息收集路徑,進(jìn)一步減少信息收集路徑長(zhǎng)度與降低信息收集時(shí)延,本發(fā)明對(duì)所獲得的一級(jí)最佳路徑上信息收集點(diǎn)所在的一級(jí)柵格再次使用更小粒度的柵格進(jìn)行劃分。并且,在每一個(gè)粗粒度柵格中只選擇一個(gè)細(xì)粒度柵格中心作為路徑的信息收集點(diǎn)的備選位置。通過(guò)這樣進(jìn)一步的求精過(guò)程,整個(gè)路徑的構(gòu)建就轉(zhuǎn)化為對(duì)每個(gè)粗粒度柵格中細(xì)粒度柵格中心的選擇過(guò)程,由于此時(shí)粗粒度柵格的數(shù)目已經(jīng)確定,所以這里的搜索問(wèn)題就變成一個(gè)固定信息收集點(diǎn)數(shù)量的路徑優(yōu)化問(wèn)題,即信息收集路徑上的信息收集點(diǎn)的數(shù)目是固定的。因此,本發(fā)明在這里就可以采用定長(zhǎng)編碼的單親遺傳算法來(lái)加以解決,最終可以獲得一條更好、更短的信息收集路徑。
根據(jù)這個(gè)思路第二級(jí)柵格劃分后最佳路徑的搜索方法的流程如下:
Step6-1:假設(shè)通過(guò)第一級(jí)柵格劃分后獲得的初級(jí)最優(yōu)路徑為:其中該路徑涉及的柵格依次為對(duì)于這些初級(jí)最優(yōu)路徑途經(jīng)的柵格根據(jù)二級(jí)柵格跨度大小L2做更細(xì)致的第二層?xùn)鸥駝澐帧?/p>
Step6-2:使用遺傳算法計(jì)算最佳信息收集路徑。在該處由于計(jì)算過(guò)程中,分別從中各自選擇一個(gè)二級(jí)柵格來(lái)進(jìn)行進(jìn)一步的迭代搜索。所以只是用傳統(tǒng)的固定長(zhǎng)度編碼的遺傳算法即可。最終如圖5所示,獲得最終的最佳信息收集路徑
下面結(jié)合仿真對(duì)本發(fā)明的應(yīng)用效果作詳細(xì)的描述。為了表示方便在仿真結(jié)果分析中我們將本文的方法稱謂TGDA方法。
在仿真中,傳感器節(jié)點(diǎn)均勻分布在在500m×500m的矩形區(qū)域里;節(jié)點(diǎn)數(shù)50-100個(gè)節(jié)點(diǎn);傳感器節(jié)點(diǎn)與移動(dòng)sink節(jié)點(diǎn)具有相同的通信半徑R,通信半徑設(shè)置為20m-100m;每次生成100個(gè)拓?fù)洌恳粋€(gè)拓?fù)浞抡?0次。
為了對(duì)比清晰,本發(fā)明采用兩種方式進(jìn)行仿真對(duì)比。首先本發(fā)明使用相同的節(jié)點(diǎn)的通信半徑——50m和100m,傳感器節(jié)點(diǎn)的數(shù)量由50個(gè)逐級(jí)增加到100個(gè)。在這一過(guò)程中對(duì)三個(gè)算法的性能進(jìn)行仿真,結(jié)果如圖5。然后,本發(fā)明固定傳感器節(jié)點(diǎn)數(shù)為50個(gè)和100個(gè),傳感器節(jié)點(diǎn)的通信半徑從20m逐漸增加到100m,再次對(duì)三個(gè)算法進(jìn)行仿真對(duì)比,獲得的仿真結(jié)果顯示為圖6。
從圖6的仿真結(jié)果可以看出,在節(jié)點(diǎn)通信半徑固定的情況下,無(wú)論網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)為50個(gè)還是100個(gè),以上三種算法所獲得的最佳路徑長(zhǎng)度都在逐漸增加。這是由于隨著網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)數(shù)的增多,移動(dòng)sink需要經(jīng)歷的節(jié)點(diǎn)數(shù)也會(huì)同步增長(zhǎng),所以移動(dòng)sink的信息收集路徑長(zhǎng)度會(huì)隨之增加。在節(jié)點(diǎn)數(shù)的不同情況下,顯而易見(jiàn)基于TSP的算法的性能都是最差的。這是由于在基于TSP的算法中,每個(gè)傳感器節(jié)點(diǎn)的位置就是信息收集點(diǎn)的位置。因此在此類算法中,移動(dòng)sink需要遍歷所有節(jié)點(diǎn)位置才能完成信息收集任務(wù),所以該類算法所獲得的信息收集路徑長(zhǎng)度必然是所有算法中最長(zhǎng)一個(gè)。相較于基于TSP的算法,COM算法的性能有了不小的提高。由于COM算法會(huì)根據(jù)相鄰信息收集點(diǎn)所覆蓋范圍的重疊程度選擇合并相鄰的信息收集點(diǎn)。相對(duì)于基于TSP的算法,這樣以來(lái)COM算法生成的路徑中所包含的信息收集點(diǎn)個(gè)數(shù)更少,所以生成的信息收集路徑長(zhǎng)度相對(duì)更短。相較于以上兩種對(duì)比算法,本發(fā)明的二次柵格劃分方法算法具有最好的性能。在通信半徑50m、節(jié)點(diǎn)數(shù)50的情況下二次柵格劃分方法算法生成的路徑長(zhǎng)度比COM算法縮短了33.37%。若節(jié)點(diǎn)數(shù)增加為100,二次柵格劃分方法算法的優(yōu)勢(shì)更是擴(kuò)大到了35.19%。與基于TSP的算法相比,二次柵格劃分方法算法的性能更是遠(yuǎn)遠(yuǎn)超過(guò)。
在第二種測(cè)試方式下,本發(fā)明首先固定節(jié)點(diǎn)數(shù)為50和100,節(jié)點(diǎn)通信半徑由20m逐步增加到100m時(shí),仿真結(jié)果與第一種測(cè)試方法非常類似。從圖7可以看出,在固定節(jié)點(diǎn)數(shù)時(shí)由于基于TSP的算法遍歷所有的節(jié)點(diǎn)位置,因此在節(jié)點(diǎn)數(shù)不變的情況下TSP算法的性能基本沒(méi)有變化。隨著傳感器節(jié)點(diǎn)通信半徑的逐步增加,由于COM和二次柵格劃分方法算法都考慮到節(jié)點(diǎn)的通信范圍能力,因此這兩種算法的性能都有了相應(yīng)的提高。并且節(jié)點(diǎn)通信半徑越大意味著移動(dòng)sink節(jié)點(diǎn)可以在更大的范圍內(nèi)收集到傳感器節(jié)點(diǎn)所上傳的信息。所以可以看出,隨著通信半徑的增長(zhǎng),COM和二次柵格劃分方法算法的性能提高程度都隨之?dāng)U大,但二次柵格劃分方法算法提高程度更大。從圖4中本發(fā)明可以看到,在節(jié)點(diǎn)數(shù)為50、通信半徑為100m時(shí),相較于COM算法二次柵格劃分方法算法的路徑長(zhǎng)度減少了43.51%,若節(jié)點(diǎn)數(shù)增加到100,TGA算法的優(yōu)勢(shì)擴(kuò)大到48.16%。
從以上所述仿真結(jié)果可見(jiàn),在不同的仿真配置下,本發(fā)明提出的二次柵格劃分方法算法都取得了更加優(yōu)異的成績(jī)。因此,二次柵格劃分方法算法能有效的減少移動(dòng)sink的信息收集路徑長(zhǎng)度,從而降低了移動(dòng)sink系統(tǒng)的信息收集時(shí)延,進(jìn)而提高了整個(gè)傳感器網(wǎng)絡(luò)系統(tǒng)的執(zhí)行效率。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。