專利名稱:基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信息技術(shù)領(lǐng)域的方法,涉及一種基于蟻群算法的無線自組(Ad Hoc)網(wǎng)絡(luò)節(jié)能按需路由方法。
背景技術(shù):
Ad Hoc網(wǎng)絡(luò)是一種沒有基礎(chǔ)設(shè)施、多跳、無線自組織網(wǎng)絡(luò)。分布式的網(wǎng)絡(luò)結(jié)構(gòu)使得網(wǎng)絡(luò)非常靈活,特別適合于臨時(shí)信息共享的網(wǎng)絡(luò)應(yīng)用,如會(huì)議、軍事行動(dòng)和災(zāi)難救助等。Ad Hoc網(wǎng)絡(luò)的多跳路由、隨機(jī)移動(dòng)等特點(diǎn)使得其路由發(fā)現(xiàn)和維護(hù)過程非常復(fù)雜。而且設(shè)備終端通常都是采用電池供電,網(wǎng)絡(luò)的壽命很大程度上都取決于電池的能量消耗,因此節(jié)能策略成為Ad Hoc網(wǎng)絡(luò)研究的熱點(diǎn),如何有效地管理節(jié)點(diǎn)的能量消耗,延長(zhǎng)整個(gè)網(wǎng)絡(luò)的工作壽命是無線通信領(lǐng)域最具挑戰(zhàn)性的課題之一。
目前在Ad Hoc網(wǎng)絡(luò)領(lǐng)域已經(jīng)提出了很多節(jié)能策略,涵蓋了無線網(wǎng)絡(luò)的各個(gè)功能層。如IEEE 802.11標(biāo)準(zhǔn)提出一種MAC層的節(jié)能策路,節(jié)點(diǎn)處于空閑時(shí),通過將節(jié)點(diǎn)設(shè)置成睡眠狀態(tài)而達(dá)到節(jié)能目的。類似的MAC層節(jié)能策略還有EC-MAC、PAMAS等。在網(wǎng)絡(luò)層,也有很多以節(jié)能為目的的方法,如MTPR,MBCR,MMBCR等。近年來,已有人將蟻群算法應(yīng)用到移動(dòng)Ad Hoc網(wǎng)絡(luò)的路由中來,利用蟻群算法的分布式、自適應(yīng)、正反饋和負(fù)反饋的特點(diǎn),來自動(dòng)配置、自適應(yīng)網(wǎng)絡(luò)的動(dòng)態(tài)變化,根據(jù)網(wǎng)絡(luò)的狀態(tài)及時(shí)調(diào)整路由,以實(shí)現(xiàn)多個(gè)QoS的優(yōu)化,例如AntHocNet、EARA、ANSI、ARAMA。這些方法中,螞蟻在進(jìn)行路由發(fā)現(xiàn)過程中需要記錄所有訪問過的節(jié)點(diǎn)信息,螞蟻分組結(jié)構(gòu)復(fù)雜,甚至還需要專門的控制分組來增強(qiáng)網(wǎng)絡(luò)路徑,因此在網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量較多時(shí),會(huì)增加網(wǎng)絡(luò)的開銷,甚至造成擁塞。目前基于蟻群算法的路由協(xié)議中很少?gòu)墓?jié)能角度來考慮路由建立過程。
經(jīng)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),O.Hussein等在《IEEE conferenceProceedings onPerformance,Computing,and Communications》(IEEE會(huì)刊性能、計(jì)算和通信)(2003年4月)上發(fā)表的“Ant routing algorithm formobile ad-hoc networks(ARAMA)”(“用于移動(dòng)Ad hoc網(wǎng)絡(luò)的螞蟻路由算法(ARAMA)”),該文中提出的ARAMA算法采用路由跳數(shù)和節(jié)點(diǎn)能量消耗作為網(wǎng)絡(luò)QoS指標(biāo),算法中前向螞蟻分組進(jìn)行路由搜索時(shí)隨機(jī)選擇一個(gè)鄰居節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),該分組在轉(zhuǎn)發(fā)過程中需要按訪問順序記錄所經(jīng)過的節(jié)點(diǎn)地址作為路由路徑,當(dāng)目標(biāo)節(jié)點(diǎn)收到前向螞蟻分組時(shí),對(duì)該分組記錄的路徑進(jìn)行評(píng)估,然后沿著該路徑向源節(jié)點(diǎn)發(fā)送反向螞蟻分組,同時(shí)增強(qiáng)路徑上各節(jié)點(diǎn)相應(yīng)的信息素表。其不足在于該方法所發(fā)出的前向螞蟻分組的數(shù)量與網(wǎng)絡(luò)的動(dòng)態(tài)特性有關(guān),當(dāng)網(wǎng)絡(luò)變化頻繁時(shí)需要增加前向螞蟻分組數(shù)量,這必然會(huì)增加網(wǎng)絡(luò)開銷,甚至造成網(wǎng)絡(luò)擁塞;此外,螞蟻需要記錄所有訪問過的節(jié)點(diǎn)信息,使得螞蟻分組的結(jié)構(gòu)復(fù)雜,特別當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)較多、密度較大時(shí),螞蟻分組的傳輸會(huì)占用較多的網(wǎng)絡(luò)帶寬,這些不足該文中都沒有予以解決。
發(fā)明內(nèi)容
本發(fā)明針對(duì)現(xiàn)有技術(shù)的不足,提出一種基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,使其在相同的網(wǎng)絡(luò)初始狀態(tài)和網(wǎng)絡(luò)負(fù)載條件下,網(wǎng)絡(luò)壽命(在本發(fā)明中定義為從開始數(shù)據(jù)傳輸?shù)降谝粋€(gè)網(wǎng)絡(luò)節(jié)點(diǎn)能量衰竭所經(jīng)歷的時(shí)間)相對(duì)于常規(guī)的距離矢量按需路由(AODV)方法可以延長(zhǎng)15%以上,特別是在網(wǎng)絡(luò)負(fù)載較大時(shí),網(wǎng)絡(luò)壽命的延長(zhǎng)效果更為明顯。
本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明實(shí)現(xiàn)分為路由建立和路由維護(hù)兩部分。
所述的路由建立,具體為通過源節(jié)點(diǎn)向網(wǎng)絡(luò)廣播路由請(qǐng)求螞蟻,分布式地搜索網(wǎng)絡(luò)狀態(tài)信息,將這些信息進(jìn)行規(guī)范化處理以后保存在一種與源節(jié)點(diǎn)和鄰居節(jié)點(diǎn)相對(duì)應(yīng)的反向信息素表中。目標(biāo)節(jié)點(diǎn)收到請(qǐng)求螞蟻以后,根據(jù)請(qǐng)求螞蟻收集到的節(jié)點(diǎn)能量、跳數(shù)和傳輸能耗等信息,采用輪盤賭法選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),單播出路由應(yīng)答螞蟻,并依此方法逐跳返回到源節(jié)點(diǎn),同時(shí)在返回的過程中建立從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路由。
所述路由維護(hù),具體為節(jié)點(diǎn)周期性的檢查自身的剩余能量與路由表中相應(yīng)路由條目的路由能量的比值和該路由條目的生命期,當(dāng)節(jié)點(diǎn)剩余能量和路由能量的比值小于某一個(gè)閾值或者生命期結(jié)束時(shí),則將該路由條目設(shè)置成無效狀態(tài),這樣在下一次需要使用該路由條目時(shí),就需要觸發(fā)新的路由發(fā)現(xiàn)過程。
本發(fā)明是基于AODV路由協(xié)議的改進(jìn),因此本發(fā)明的路由維護(hù)主要采用AODV的方法來進(jìn)行,如采用對(duì)節(jié)點(diǎn)序列號(hào)的管理來避免路由回路等。但是由于本發(fā)明是一種考慮網(wǎng)絡(luò)節(jié)點(diǎn)能量消耗的方法,為了延長(zhǎng)網(wǎng)絡(luò)的使用壽命,避免出現(xiàn)個(gè)別節(jié)點(diǎn)由于過度使用而能量衰竭,從而過早的死亡,對(duì)整個(gè)網(wǎng)絡(luò)的壽命產(chǎn)生影響。采用本發(fā)明上述的路由維護(hù)方法,在新的路由發(fā)現(xiàn)過程中就可以根據(jù)當(dāng)前的網(wǎng)絡(luò)狀態(tài),選擇具有更多能量的節(jié)點(diǎn)參與路由轉(zhuǎn)發(fā),從而避免了節(jié)點(diǎn)的過度使用,均衡了整個(gè)網(wǎng)絡(luò)的負(fù)載分配,可以有效地延長(zhǎng)網(wǎng)絡(luò)的壽命。
所述的路由建立過程,包括以下步驟步驟一源節(jié)點(diǎn)s有數(shù)據(jù)發(fā)送請(qǐng)求時(shí),首先判斷是否存在到達(dá)目標(biāo)節(jié)點(diǎn)d的有效路由,如果存在則用此路由發(fā)送數(shù)據(jù)包;否則,廣播請(qǐng)求螞蟻分組進(jìn)行路由搜索,該請(qǐng)求螞蟻分組主要包含參數(shù)跳數(shù)、節(jié)點(diǎn)能量、路徑能耗、目標(biāo)節(jié)點(diǎn)地址、源節(jié)點(diǎn)地址。
步驟二中間節(jié)點(diǎn)j收到來自節(jié)點(diǎn)i的請(qǐng)求螞蟻,首先判斷自己是不是該請(qǐng)求螞蟻的源節(jié)點(diǎn),如果是則丟棄該請(qǐng)求螞蟻分組,否則,按照下式對(duì)該請(qǐng)求螞蟻分組進(jìn)行評(píng)估,得出其規(guī)范化的評(píng)估值Msji。
Msji=exp(γ1Rje+γ2Rjh+γ3Rjc)]]>其中Msji表示源節(jié)點(diǎn)s發(fā)出的請(qǐng)求螞蟻經(jīng)過節(jié)點(diǎn)i到達(dá)節(jié)點(diǎn)j這條路徑的性能評(píng)估;Rje=eiE0,]]>表示請(qǐng)求螞蟻攜帶的前一節(jié)點(diǎn)的相對(duì)剩余能量;Rjh=1-hjHmax,]]>表示規(guī)范化的請(qǐng)求螞蟻所經(jīng)過的跳數(shù);Rjc=1-cjCmax,]]>表示規(guī)范化的分組在該路徑上傳遞所消耗的能量;γ1、γ2和γ3為各QoS指標(biāo)的權(quán)重系數(shù)。
然后判斷中間節(jié)點(diǎn)j的反向信息素表中有沒有對(duì)應(yīng)于源節(jié)點(diǎn)s、鄰居節(jié)點(diǎn)i的信息素條目,如果沒有,則建立對(duì)應(yīng)于(s,i)的信息素條目并將該條目的信息素值初始化為0。比較Msji與(s,i)對(duì)應(yīng)的信息素條目的信息素值,如果Msji更大些,則用節(jié)點(diǎn)j的剩余能量代替該請(qǐng)求螞蟻分組的剩余能量,用重新計(jì)算的能量消耗代替該請(qǐng)求螞蟻分組的路徑能耗,跳數(shù)加一,然后轉(zhuǎn)發(fā)該請(qǐng)求螞蟻分組。如果Msji較小,則丟棄該請(qǐng)求螞蟻分組。最后更新信息素表,如下式所示τsji(t)=MsjiMsji>τsji(t-1)(1-ρ)τsji(t-1)otherwise]]>其中τsji(t)表示t時(shí)刻節(jié)點(diǎn)j收到從節(jié)點(diǎn)i轉(zhuǎn)發(fā)的來自源節(jié)點(diǎn)s的這條路徑的信息素值;ρ表示信息素?fù)]發(fā)系數(shù)。
上式表明,當(dāng)前路徑的性能評(píng)估值高于節(jié)點(diǎn)以前發(fā)現(xiàn)的路徑對(duì)應(yīng)的信息素時(shí),對(duì)其對(duì)應(yīng)的信息素值進(jìn)行更新,否則對(duì)其信息素進(jìn)行揮發(fā)處理。
節(jié)點(diǎn)中保存的反向信息素表是一種反映請(qǐng)求螞蟻所搜集的當(dāng)前網(wǎng)絡(luò)狀態(tài)信息的二維表格。反向信息素表的橫軸對(duì)應(yīng)于節(jié)點(diǎn)j所收到的各請(qǐng)求螞蟻對(duì)應(yīng)的源節(jié)點(diǎn),縱軸表示節(jié)點(diǎn)j的鄰居節(jié)點(diǎn),每個(gè)源節(jié)點(diǎn)和鄰居節(jié)點(diǎn)對(duì)應(yīng)一個(gè)信息素值τsji,表示節(jié)點(diǎn)j收到從節(jié)點(diǎn)i轉(zhuǎn)發(fā)的來自源節(jié)點(diǎn)s的這條路徑的性能評(píng)價(jià)值。
步驟三目標(biāo)節(jié)點(diǎn)d收到該請(qǐng)求螞蟻分組時(shí),首先對(duì)此分組進(jìn)行評(píng)估,并更新對(duì)應(yīng)的反向信息素表。然后根據(jù)反向信息素表中對(duì)應(yīng)于源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)的信息素值計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psdi,計(jì)算公式如下psdi=τsdiΣk∈{1,2,Λ,Nd}τsdk]]>其中psdi表示在目標(biāo)節(jié)點(diǎn)d選擇節(jié)點(diǎn)i作為下一跳節(jié)點(diǎn)返回到源節(jié)點(diǎn)s的概率;τsdi為源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)i所對(duì)應(yīng)的信息素的量,{1,2,Λ,Nb}表示節(jié)點(diǎn)d的所有鄰居集合。
根據(jù)節(jié)點(diǎn)的選擇概率采用輪盤賭法選擇返回s的下一跳節(jié)點(diǎn),然后對(duì)信息素表進(jìn)行更新,并向該選擇的節(jié)點(diǎn)單播應(yīng)答螞蟻分組。
步驟四中間節(jié)點(diǎn)j接收到應(yīng)答螞蟻分組以后,首先更新對(duì)應(yīng)于目標(biāo)節(jié)點(diǎn)d的路由條目,將下一跳節(jié)點(diǎn)設(shè)置成該應(yīng)答螞蟻分組的發(fā)送者,并且將該路由條目的路由能量設(shè)置成該節(jié)點(diǎn)的剩余能量,用當(dāng)前時(shí)間更新該路由條目的生命期。然后同步驟三的方法計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psji,并選擇一個(gè)返回s的下一跳節(jié)點(diǎn),對(duì)信息素表進(jìn)行更新以后向所選擇的節(jié)點(diǎn)單播應(yīng)答螞蟻分組。
步驟五源節(jié)點(diǎn)s收到返回的應(yīng)答螞蟻分組以后,更新對(duì)應(yīng)于目標(biāo)節(jié)點(diǎn)d的路由表?xiàng)l目,丟棄該應(yīng)答螞蟻分組,路由建立過程結(jié)束。源節(jié)點(diǎn)s就可以按照所建立的路由向目標(biāo)節(jié)點(diǎn)d發(fā)送數(shù)據(jù)包。
綜上所述,本發(fā)明相對(duì)其他同類協(xié)議,具有以下的優(yōu)點(diǎn)l、簡(jiǎn)化了基于蟻群算法的路由協(xié)議結(jié)構(gòu)。本發(fā)明設(shè)計(jì)了一種反向信息素表結(jié)構(gòu),并重新設(shè)計(jì)螞蟻分組的結(jié)構(gòu),使得螞蟻分組在進(jìn)行路由發(fā)現(xiàn)的過程中,只需要攜帶少量的節(jié)點(diǎn)狀態(tài)信息,就可以優(yōu)化路由的QoS,提高網(wǎng)絡(luò)的壽命。而其他的同類協(xié)議如AntHocNet、EARA、ANSI、ARAMA通常都需要螞蟻攜帶所訪問節(jié)點(diǎn)的列表,螞蟻分組結(jié)構(gòu)復(fù)雜,不易實(shí)現(xiàn),而且在網(wǎng)絡(luò)中傳遞時(shí)需要占用大量?jī)?nèi)存和網(wǎng)絡(luò)帶寬,當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)較多時(shí)甚至?xí)鹁W(wǎng)絡(luò)擁塞。
2、在路由選擇過程中將節(jié)點(diǎn)剩余能量、路徑能耗和跳數(shù)作為QoS指標(biāo)。通過對(duì)這三個(gè)QoS指標(biāo)的規(guī)范化處理,使得具有較大節(jié)點(diǎn)剩余能量、較小能耗和跳數(shù)的路徑具有更多的機(jī)會(huì)參與路由,從而避免節(jié)點(diǎn)過度使用或者節(jié)點(diǎn)過早死亡。并且采用概率選擇機(jī)制,可以均衡節(jié)點(diǎn)的負(fù)載分配,有助于延長(zhǎng)網(wǎng)絡(luò)的工作壽命。
3、在路由維護(hù)中結(jié)合節(jié)點(diǎn)的剩余能量采用主動(dòng)的方式觸發(fā)路由請(qǐng)求過程。本發(fā)明中每個(gè)路由條目都增加路由能量信息,記錄在建立該條路由時(shí)節(jié)點(diǎn)的剩余能量。這樣當(dāng)路由路徑上的節(jié)點(diǎn)能量降到路由能量的某一百分比時(shí),則將該路由條目設(shè)置成無效狀態(tài),從而觸發(fā)新的路由發(fā)現(xiàn)過程,避免了節(jié)點(diǎn)被過度使用,延長(zhǎng)整個(gè)網(wǎng)絡(luò)的壽命。
綜上所述,采用本發(fā)明的路由方法可以使網(wǎng)絡(luò)壽命相對(duì)于采用AODV作為路由時(shí)延長(zhǎng)至少15%,特別是在網(wǎng)絡(luò)負(fù)載較大時(shí),網(wǎng)絡(luò)壽命的延長(zhǎng)效果更為明顯。
圖1為本發(fā)明中的路由建立過程流程圖具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說明本實(shí)施例在以本發(fā)明技術(shù)方案為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
本實(shí)施例在網(wǎng)絡(luò)仿真軟件NS-2(版本2.30)中進(jìn)行,該軟件是一種免費(fèi)的網(wǎng)絡(luò)性能測(cè)試軟件,可以直接從網(wǎng)上下載。
本實(shí)施例中路由建立過程實(shí)施如下1.源節(jié)點(diǎn)s有數(shù)據(jù)發(fā)送請(qǐng)求時(shí),首先判斷是否存在到達(dá)目標(biāo)節(jié)點(diǎn)d的有效路由,如果存在則用此路由發(fā)送數(shù)據(jù)包;否則,調(diào)用發(fā)送請(qǐng)求(sendRequest)過程發(fā)送請(qǐng)求螞蟻分組進(jìn)行路由搜索,并將發(fā)送方式設(shè)置成廣播,該請(qǐng)求螞蟻分組初始化為Packet Type=Request_Ant,Hop Count=0,Remain Energy=節(jié)點(diǎn)剩余能量,Energy Cost=0,Destination Address=d,Source Address=s。
2.節(jié)點(diǎn)對(duì)請(qǐng)求螞蟻分組的處理都在接收請(qǐng)求(recvRequest)過程中實(shí)現(xiàn),節(jié)點(diǎn)收到來自節(jié)點(diǎn)i的請(qǐng)求螞蟻以后,首先判斷自己是不是該請(qǐng)求螞蟻的源節(jié)點(diǎn),如果是則丟棄該請(qǐng)求螞蟻分組,否則,按照發(fā)明內(nèi)容中步驟二中的計(jì)算方法對(duì)該路徑進(jìn)行性能評(píng)估、更新反向信息素表。判斷自己是不是目標(biāo)節(jié)點(diǎn),如果不是,則繼續(xù)調(diào)用轉(zhuǎn)發(fā)(Forward)過程轉(zhuǎn)發(fā)該請(qǐng)求螞蟻。
3.如果自己就是目標(biāo)節(jié)點(diǎn),則根據(jù)反向信息素表中對(duì)應(yīng)于源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)的信息素值計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psdi,然后采用輪盤賭法選擇返回s的下一跳節(jié)點(diǎn),然后對(duì)信息素表進(jìn)行更新,并調(diào)用發(fā)送響應(yīng)(sendReply)過程向該選擇的節(jié)點(diǎn)單播應(yīng)答螞蟻分組。
4.節(jié)點(diǎn)對(duì)應(yīng)答螞蟻分組的處理在接收響應(yīng)(recvReply)過程中實(shí)現(xiàn),首先更新對(duì)應(yīng)于目標(biāo)節(jié)點(diǎn)d的路由條目,將下一跳節(jié)點(diǎn)設(shè)置成該應(yīng)答螞蟻分組的發(fā)送者,并且將該路由條目的路由能量設(shè)置成該節(jié)點(diǎn)的剩余能量,用當(dāng)前時(shí)間更新該路由條目的生命期。然后判斷自己是否該應(yīng)答螞蟻所請(qǐng)求的源節(jié)點(diǎn),如果不是,則根據(jù)反向信息素表中對(duì)應(yīng)于源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)的信息素值計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psji,然后采用輪盤賭法選擇返回s的下一跳節(jié)點(diǎn),然后對(duì)信息素表進(jìn)行更新,并向該選擇的節(jié)點(diǎn)單播應(yīng)答螞蟻分組。
5.如果自己就是源節(jié)點(diǎn),則丟棄該應(yīng)答螞蟻分組,路由建立過程結(jié)束。
本實(shí)施例中路由維護(hù)過程可以在網(wǎng)絡(luò)仿真軟件NS-2(版本2.30)的定時(shí)器處理函數(shù)中實(shí)現(xiàn),通過檢查路由條目的生命期是否到期,或者節(jié)點(diǎn)當(dāng)前剩余能量和路由能量的比值是否低于閾值(實(shí)驗(yàn)中設(shè)置為60%),如果以上條件有一個(gè)滿足,則將該路由條目設(shè)置成無效(Invalid)狀態(tài),下一次需要用到該路由條目時(shí)則會(huì)強(qiáng)制重新進(jìn)行路由發(fā)現(xiàn)過程。
本實(shí)施例通過在網(wǎng)絡(luò)仿真軟件NS-2(版本2.30)中進(jìn)行仿真,在仿真試驗(yàn)中,選用25個(gè)節(jié)點(diǎn)均勻分布在500米×500米的區(qū)域,節(jié)點(diǎn)最大傳輸距離為150米,并且采用512bytes的恒定數(shù)據(jù)流(CBR)作為測(cè)試數(shù)據(jù)源,當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)初始能量都相同時(shí),采用本發(fā)明的路由方法可以使網(wǎng)絡(luò)壽命相對(duì)于采用AODV作為路由時(shí)延長(zhǎng)至少15%,特別是在網(wǎng)絡(luò)負(fù)載較大時(shí)(20個(gè)CBR分組/秒),網(wǎng)絡(luò)壽命可以延長(zhǎng)5倍。
權(quán)利要求
1.一種基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,其特征在于,包括路由建立和路由維護(hù)兩部分,其中所述的路由建立,具體為通過源節(jié)點(diǎn)向網(wǎng)絡(luò)廣播路由請(qǐng)求螞蟻,分布式地搜索網(wǎng)絡(luò)狀態(tài)信息,將這些信息進(jìn)行規(guī)范化處理以后保存在一種與源節(jié)點(diǎn)和鄰居節(jié)點(diǎn)相對(duì)應(yīng)的反向信息素表中,目標(biāo)節(jié)點(diǎn)收到請(qǐng)求螞蟻以后,根據(jù)請(qǐng)求螞蟻收集到的節(jié)點(diǎn)能量、跳數(shù)和傳輸能耗等信息,采用輪盤賭法選擇一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),單播出路由應(yīng)答螞蟻,并依此方法逐跳返回到源節(jié)點(diǎn),同時(shí)在返回的過程中建立從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路由;所述路由維護(hù),具體為節(jié)點(diǎn)周期性的檢查自身的剩余能量與路由表中相應(yīng)路由條目的路由能量的比值和該路由條目的生命期,當(dāng)節(jié)點(diǎn)剩余能量和路由能量的比值小于某一個(gè)閾值或者生命期結(jié)束時(shí),則將該路由條目設(shè)置成無效狀態(tài),這樣在下一次需要使用該路由條目時(shí),就需要觸發(fā)新的路由發(fā)現(xiàn)過程。
2.如權(quán)利要求1所述的基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,其特征是,所述路由建立,包括以下步驟步驟一源節(jié)點(diǎn)s有數(shù)據(jù)發(fā)送請(qǐng)求時(shí),首先判斷是否存在到達(dá)目標(biāo)節(jié)點(diǎn)d的有效路由,如果存在則用此路由發(fā)送數(shù)據(jù)包,否則,廣播路由請(qǐng)求螞蟻分組進(jìn)行路由搜索;步驟二中間節(jié)點(diǎn)j收到來自節(jié)點(diǎn)i的請(qǐng)求螞蟻,首先判斷自己是不是該請(qǐng)求螞蟻的源節(jié)點(diǎn),如果是則丟棄該請(qǐng)求螞蟻分組,否則,對(duì)該請(qǐng)求螞蟻分組進(jìn)行評(píng)估,得出其規(guī)范化的評(píng)估值Msji,然后判斷中間節(jié)點(diǎn)j的反向信息素表中有沒有對(duì)應(yīng)于源節(jié)點(diǎn)s、鄰居節(jié)點(diǎn)i的信息素條目,如果沒有,則建立對(duì)應(yīng)于(s,i)的信息素條目并將該條目的信息素值初始化為0,比較Msji與(s,i)對(duì)應(yīng)的信息素條目的信息素值,如果Msji更大些,則用節(jié)點(diǎn)j的剩余能量代替該請(qǐng)求螞蟻分組的剩余能量,用重新計(jì)算的能量消耗代替該請(qǐng)求螞蟻分組的路徑能耗,跳數(shù)加一,然后轉(zhuǎn)發(fā)該請(qǐng)求螞蟻分組,如果Msji較小,則丟棄該請(qǐng)求螞蟻分組,最后更新反向信息素表;步驟三目標(biāo)節(jié)點(diǎn)d收到該請(qǐng)求螞蟻分組時(shí),首先對(duì)此分組進(jìn)行評(píng)估,并更新對(duì)應(yīng)的信息素表,然后根據(jù)反向信息素表中對(duì)應(yīng)于源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)的信息素值計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psdi,表示在目標(biāo)節(jié)點(diǎn)d選擇節(jié)點(diǎn)i作為下一跳節(jié)點(diǎn)返回到源節(jié)點(diǎn)s的概率,根據(jù)節(jié)點(diǎn)的選擇概率選擇返回s的下一跳節(jié)點(diǎn)以后,對(duì)信息素表進(jìn)行更新,并向該節(jié)點(diǎn)單播路由應(yīng)答螞蟻分組;步驟四中間節(jié)點(diǎn)j接收到應(yīng)答螞蟻分組以后,首先更新對(duì)應(yīng)于目標(biāo)節(jié)點(diǎn)d的路由條目,將下一跳節(jié)點(diǎn)設(shè)置成該應(yīng)答螞蟻分組的發(fā)送者,并且將該路由條目的路由能量設(shè)置成該節(jié)點(diǎn)的剩余能量,并更新該路由條目的生命期,然后計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psji,并選擇一個(gè)返回s的下一跳節(jié)點(diǎn),對(duì)信息素表進(jìn)行更新以后向所選擇的節(jié)點(diǎn)單播應(yīng)答螞蟻分組;步驟五源節(jié)點(diǎn)s收到返回的應(yīng)答螞蟻分組以后,更新對(duì)應(yīng)于目標(biāo)節(jié)點(diǎn)d的路由表?xiàng)l目,丟棄該應(yīng)答螞蟻分組,路由建立過程結(jié)束,源節(jié)點(diǎn)s就按照所建立的路由向目標(biāo)節(jié)點(diǎn)d發(fā)送數(shù)據(jù)包;所述路由維護(hù)中,節(jié)點(diǎn)周期性的檢查自身的剩余能量與路由表中相應(yīng)路由條目的路由能量的比值和該路由條目的生命期,當(dāng)節(jié)點(diǎn)剩余能量和路由能量的比值小于某一個(gè)閾值或者生命期結(jié)束時(shí),則將該路由條目設(shè)置成無效狀態(tài),這樣在下一次需要使用該路由條目時(shí),就需要觸發(fā)新的路由發(fā)現(xiàn)過程。
3.如權(quán)利要求2所述的基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,其特征是,步驟二中,所述的對(duì)該請(qǐng)求螞蟻分組進(jìn)行評(píng)估,得出其規(guī)范化的評(píng)估值Msji,采用以下公式進(jìn)行Msji=exp(γ1Rje+γ2Rjh+γ3Rjc)]]>其中Msji表示源節(jié)點(diǎn)s發(fā)出的請(qǐng)求螞蟻經(jīng)過節(jié)點(diǎn)i到達(dá)節(jié)點(diǎn)j這條路徑的性能評(píng)估;Rje=eiE0,]]>表示請(qǐng)求螞蟻攜帶的前一節(jié)點(diǎn)的相對(duì)剩余能量;Rjh=1-hjHmax,]]>表示規(guī)范化的請(qǐng)求螞蟻所經(jīng)過的跳數(shù);Rjc=1-cjCmax,]]>表示規(guī)范化的分組在該路徑上傳遞所消耗的能量;γ1、γ2和γ3為各QoS指標(biāo)的權(quán)重系數(shù)。
4.如權(quán)利要求2所述的基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,步驟二中,所述節(jié)點(diǎn)的反向信息素表中,橫軸對(duì)應(yīng)于節(jié)點(diǎn)j所收到的各請(qǐng)求螞蟻對(duì)應(yīng)的源節(jié)點(diǎn),縱軸表示節(jié)點(diǎn)j的鄰居節(jié)點(diǎn),每個(gè)源節(jié)點(diǎn)和鄰居節(jié)點(diǎn)對(duì)應(yīng)一個(gè)信息素值τsji,表示節(jié)點(diǎn)j收到從節(jié)點(diǎn)i轉(zhuǎn)發(fā)的來自源節(jié)點(diǎn)s的這條路徑的性能評(píng)價(jià)值,信息素表反映了請(qǐng)求螞蟻所搜集的當(dāng)前網(wǎng)絡(luò)狀態(tài)信息。
5.如權(quán)利要求2所述的基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,其特征是,步驟二中,所述更新反向信息素表,采用如下公式τsji(t)=MsjiMsji>τsji(t-1)(1-ρ)τsji(t-1)otherwise]]>其中τsji(t)表示t時(shí)刻節(jié)點(diǎn)j收到從節(jié)點(diǎn)i轉(zhuǎn)發(fā)的來自源節(jié)點(diǎn)s的這條路徑的信息素值,ρ表示信息素?fù)]發(fā)系數(shù),上式表明,當(dāng)前路徑的性能評(píng)估值高于節(jié)點(diǎn)以前發(fā)現(xiàn)的路徑對(duì)應(yīng)的信息素時(shí),對(duì)其對(duì)應(yīng)的信息素值進(jìn)行更新,否則對(duì)其信息素進(jìn)行揮發(fā)處理。
6.如權(quán)利要求2所述的基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,其特征是,步驟三,所述根據(jù)反向信息素表中對(duì)應(yīng)于源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)的信息素值計(jì)算各鄰居節(jié)點(diǎn)的選擇概率psdi,計(jì)算公式如下psdi=τsdiΣk∈{1,2,Λ,Nd}τsdk]]>其中psdi表示在目標(biāo)節(jié)點(diǎn)d選擇節(jié)點(diǎn)i作為下一跳節(jié)點(diǎn)返回到源節(jié)點(diǎn)s的概率;τsdi為源節(jié)點(diǎn)s和鄰居節(jié)點(diǎn)i所對(duì)應(yīng)的信息素的量,{1,2,Λ,Nd}表示節(jié)點(diǎn)d的所有鄰居集合。
全文摘要
本發(fā)明涉及一種信息技術(shù)領(lǐng)域的基于蟻群算法的無線自組網(wǎng)絡(luò)節(jié)能按需路由方法,包括路由建立和路由維護(hù)兩部分。其中路由建立步驟為1)源節(jié)點(diǎn)廣播請(qǐng)求螞蟻搜索網(wǎng)絡(luò)的狀態(tài)信息,并經(jīng)過規(guī)范化處理后保存在各節(jié)點(diǎn)的反向信息素表中;2)目標(biāo)節(jié)點(diǎn)收到請(qǐng)求螞蟻以后,立即產(chǎn)生應(yīng)答螞蟻,并采用概率選擇的方法選擇一個(gè)鄰居節(jié)點(diǎn)作為下一跳返回源節(jié)點(diǎn);3)在應(yīng)答螞蟻返回源節(jié)點(diǎn)的過程中建立從源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路由。路由維護(hù)主要是將能量參數(shù)引入路由維護(hù)中,當(dāng)路由路徑上的節(jié)點(diǎn)能量消耗過多時(shí),就強(qiáng)制進(jìn)行新的路由發(fā)現(xiàn)過程,避免節(jié)點(diǎn)過早死亡。
文檔編號(hào)H04L12/56GK101083616SQ200710043430
公開日2007年12月5日 申請(qǐng)日期2007年7月5日 優(yōu)先權(quán)日2007年7月5日
發(fā)明者陳佳品, 雙兵, 李振波 申請(qǐng)人:上海交通大學(xué)