李予東, 黃宏光, 向西西
(四川大學(xué)電氣信息學(xué)院,四川成都610065)
ZigBee是一種低成本、低功耗、低速率的短距離雙向無(wú)線通信技術(shù),主要針對(duì)低速率的無(wú)線傳感網(wǎng)絡(luò)而設(shè)計(jì)。文獻(xiàn)[1]針對(duì)ZigBee無(wú)線通信協(xié)議從物理層、數(shù)據(jù)鏈路層到網(wǎng)絡(luò)層、應(yīng)用匯聚層進(jìn)行了全面地剖析,給出了各層協(xié)議實(shí)現(xiàn)技術(shù)的細(xì)節(jié)。文獻(xiàn)[2-3]在介紹ZigBee網(wǎng)絡(luò)配置、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)層各項(xiàng)關(guān)鍵技術(shù)的基礎(chǔ)上進(jìn)行仿真,得出AODVjr[4]的控制開(kāi)銷小于AODV;Cluster-Tree[5]適合存儲(chǔ)能力受限的節(jié)點(diǎn),具有較大的平均端到端時(shí)延,不需要路由發(fā)現(xiàn)過(guò)程,然而在節(jié)點(diǎn)分布不均勻的網(wǎng)絡(luò)中,容易造成業(yè)務(wù)量分布不均衡;AODVjr需要足夠的存儲(chǔ)空間來(lái)儲(chǔ)存路由表,而且具有較高的控制開(kāi)銷;Cluster-Tree+AODVjr算法能夠找到最優(yōu)或相對(duì)于Cluster-Tree較優(yōu)的路由,減少平均端到端時(shí)延,使網(wǎng)絡(luò)中業(yè)務(wù)量分布不均衡的情況也得到了緩解,在保證分組遞交率的情況下,具有較低的控制開(kāi)銷和平均時(shí)延。
通常通信網(wǎng)絡(luò)路由算法主要考慮如何實(shí)現(xiàn)較少的路由跳數(shù)和較短的端到端時(shí)延。考慮到WSN網(wǎng)絡(luò)的具體情況,節(jié)點(diǎn)的能量供應(yīng)采用電池形式,在能量耗盡后無(wú)法更換電池既成為死亡節(jié)點(diǎn),不能繼續(xù)承擔(dān)收發(fā)數(shù)據(jù)的功能,導(dǎo)致路由鏈的斷裂,甚至割裂整個(gè)WSN網(wǎng)絡(luò),致使通信中斷。因此在WSN網(wǎng)絡(luò)中犧牲一定的路由跳數(shù)和端到端時(shí)延來(lái)?yè)Q取節(jié)點(diǎn)更長(zhǎng)的生存時(shí)間就成為一種必要。本文在Cluster-Tree+AODVjr算法基礎(chǔ)上詳細(xì)闡述了對(duì)現(xiàn)有基于能量均衡的ZigBee路由算法的改進(jìn)方案并輔以仿真,對(duì)比分析加以說(shuō)明。
文獻(xiàn)[6]針對(duì)節(jié)點(diǎn)間的父子關(guān)系提出了一種改進(jìn)方案,即當(dāng)目的節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)的父類節(jié)點(diǎn)時(shí),不適合向當(dāng)前節(jié)點(diǎn)的后裔子節(jié)點(diǎn)發(fā)送RREQ分組,反之當(dāng)目的節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)后裔子節(jié)點(diǎn)時(shí),不適合向當(dāng)前節(jié)點(diǎn)的父類節(jié)點(diǎn)發(fā)送RREQ分組。但考慮到節(jié)點(diǎn)間的位置關(guān)系,如目的節(jié)點(diǎn)在當(dāng)前節(jié)點(diǎn)一跳或者較少跳范圍內(nèi)時(shí),仍然可以發(fā)現(xiàn)高效的路由路徑,因此需要對(duì)其做出改進(jìn),本文中加入鄰居表,保證在適當(dāng)控制AODVjr泛洪方向的同時(shí)能尋找到比文獻(xiàn)[6]有效的路由。如表1所示定義了鄰居表。
表1 鄰居表定義
ZigBee網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)被分成4種類型:Coordinator、RN+、RN-、RFD。如果待發(fā)送數(shù)據(jù)的目的節(jié)點(diǎn)是自己的鄰居,直接通信即可。Coordinator和RN+可以啟動(dòng)AODVjr,主動(dòng)查找到目標(biāo)節(jié)點(diǎn)的最佳路由,且可以扮演路由代理的角色,幫助其它節(jié)點(diǎn)查找路由;RN-只能使用Cluster-Tree算法,它可通過(guò)計(jì)算判斷把數(shù)據(jù)包交給自己的父節(jié)點(diǎn)還是由某個(gè)子節(jié)點(diǎn)轉(zhuǎn)發(fā);而RFD只能充當(dāng)Cluster-Tree的葉子,把數(shù)據(jù)交給父節(jié)點(diǎn)轉(zhuǎn)發(fā)。除RFD節(jié)點(diǎn)外每個(gè)節(jié)點(diǎn)都存儲(chǔ)一張鄰居表,記錄該節(jié)點(diǎn)與其它節(jié)點(diǎn)的鄰居關(guān)系,在鄰居表中有四個(gè)字段:
Address:鄰居節(jié)點(diǎn)的地址;
NodeType:鄰居節(jié)點(diǎn)的設(shè)備類型,0表示該鄰居節(jié)點(diǎn)不具有路由功能,只能接收數(shù)據(jù)或者轉(zhuǎn)發(fā)給其父節(jié)點(diǎn),1具有路由功能;
RoutingCost為該鄰居節(jié)點(diǎn)的路由代價(jià);若節(jié)點(diǎn)為類型為RFD,因其不具備路由功能,則該值為無(wú)效值0xFFFF,表示路由代價(jià)無(wú)限大。
RNRouting為RN-節(jié)點(diǎn)鄰居表的特殊值,由于RN-節(jié)點(diǎn)不能存儲(chǔ)路由表,該值為1表示該節(jié)點(diǎn)是RN-節(jié)點(diǎn)的下一跳,用于路由建立后轉(zhuǎn)發(fā)數(shù)據(jù),為0表示該節(jié)點(diǎn)是RN-節(jié)點(diǎn)的上一跳,用于接收路由建立時(shí)由目的節(jié)點(diǎn)向源節(jié)點(diǎn)返回的 RREP包。在 Coordinator、RN+節(jié)點(diǎn)的鄰居表中該值被置為無(wú)效值0xFFFF。
RN-節(jié)點(diǎn)只能使用Cluster-Tree算法,它可通過(guò)計(jì)算判斷該把數(shù)據(jù)包交給自己的父節(jié)點(diǎn)還是由某個(gè)子節(jié)點(diǎn)轉(zhuǎn)發(fā)。文獻(xiàn)[7]針對(duì)Cluster-Tree提出了一種計(jì)算鄰居表內(nèi)節(jié)點(diǎn)到目的節(jié)點(diǎn)路由的思路,但僅比較了目的地為非當(dāng)前節(jié)點(diǎn)的子節(jié)點(diǎn)的情況。文獻(xiàn)[8]僅基于節(jié)點(diǎn)能量來(lái)計(jì)算Cluster-Tree算法的路由路徑代價(jià)。本文充分利用鄰居表,比較鄰居表中節(jié)點(diǎn)與Cluster-Tree算法中下一條節(jié)點(diǎn)的路由代價(jià),選擇路由代價(jià)最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn),從而達(dá)到針對(duì)RN-節(jié)點(diǎn)改進(jìn)Cluster-Tree算法的目的。
文獻(xiàn)[9]中對(duì)節(jié)點(diǎn)路由代價(jià)定義僅劃分了中心協(xié)調(diào)器和普通路由節(jié)點(diǎn),而忽略了各個(gè)普通路由節(jié)點(diǎn)仍有很大的特性,本文中對(duì)除RFD節(jié)點(diǎn)以外的所有節(jié)點(diǎn)定義了統(tǒng)一的路由代價(jià)如下公式所示
路由代價(jià)用于表示路由發(fā)現(xiàn)過(guò)程中該節(jié)點(diǎn)被選擇為新的路由節(jié)點(diǎn)的概率,路由代價(jià)越大,則被選為新的路由節(jié)點(diǎn)的概率越小。
PowerRemaining表示該節(jié)點(diǎn)的剩余能量,剩余能量越多則成為新路由節(jié)點(diǎn)的概率越大,以減少剩余能量較小節(jié)點(diǎn)成為新的路由節(jié)點(diǎn)的概率;
Count用于計(jì)數(shù)當(dāng)前節(jié)點(diǎn)作為路由節(jié)點(diǎn)的次數(shù),即每次發(fā)現(xiàn)路由過(guò)程中若該節(jié)點(diǎn)被選為路由節(jié)點(diǎn)則其計(jì)數(shù)值加1,用于表示該節(jié)點(diǎn)可能承擔(dān)的路由分量。因其一旦作為路由節(jié)點(diǎn),則在之后就有可能大量的轉(zhuǎn)發(fā)數(shù)據(jù)、消耗節(jié)點(diǎn)能量。因此該值越大,則在新的路由發(fā)現(xiàn)過(guò)程中被選為路由節(jié)點(diǎn)的概率就越小。
Suns表示該節(jié)點(diǎn)所擁有的子孫節(jié)點(diǎn)數(shù),Depth表示該節(jié)點(diǎn)的深度,擁有的子孫節(jié)點(diǎn)數(shù)越多,在樹結(jié)構(gòu)中的深度越小則在Cluster-Tree算法中越有可能作為路由節(jié)點(diǎn),因此應(yīng)當(dāng)在發(fā)送RREQ分組選擇新路由節(jié)點(diǎn)過(guò)程中盡量繞過(guò)這樣的節(jié)點(diǎn)。
文獻(xiàn)[9]中將節(jié)點(diǎn)能量劃分為4個(gè)等級(jí),根據(jù)不同的能量狀況,在接收到RREQ分組選擇不同的處理機(jī)制。但已經(jīng)判斷過(guò)是否為目的節(jié)點(diǎn),警戒狀態(tài)再次判斷沒(méi)有意義,而瀕臨失效的節(jié)點(diǎn)對(duì)目的節(jié)點(diǎn)為自身的節(jié)點(diǎn)也不回應(yīng),既相當(dāng)于是死亡節(jié)點(diǎn)。本文中將節(jié)點(diǎn)能量劃分為3個(gè)等級(jí):充足、偏低和綜合警戒、瀕臨失效節(jié)點(diǎn)為警戒一種節(jié)點(diǎn)。能量充足節(jié)點(diǎn)可以根據(jù)節(jié)點(diǎn)類型選擇Cluster-Tree算法或AODVjr算法發(fā)現(xiàn)路由,能量偏低節(jié)點(diǎn)根據(jù)一定的公式延遲發(fā)送AODVjr泛洪包,能量警戒節(jié)點(diǎn)只對(duì)目的地址是自身的做出回應(yīng)。
文獻(xiàn)[6,9-10]分別定義了不同的節(jié)點(diǎn)能量警戒值,均為動(dòng)態(tài)更新,以便警戒節(jié)點(diǎn)在一定條件下能夠重新恢復(fù)為有效路由節(jié)點(diǎn)。但充足能量值和偏低能量值均為固定值,不能隨網(wǎng)絡(luò)能量狀況的改變而改變,導(dǎo)致大量節(jié)點(diǎn)能量等級(jí)處于偏低狀態(tài),影響路由發(fā)現(xiàn)。文獻(xiàn)[6]中的警戒值為網(wǎng)絡(luò)運(yùn)行時(shí)間的函數(shù),網(wǎng)絡(luò)運(yùn)行時(shí)間越長(zhǎng),警戒值越低,但僅以時(shí)間為變量,不能充分描述網(wǎng)絡(luò)中節(jié)點(diǎn)能量的具體情況。文獻(xiàn)[9-10]則以成為警戒節(jié)點(diǎn)的計(jì)數(shù)為變量,但公式較復(fù)雜。本文簡(jiǎn)化文獻(xiàn)[9-10]的公式,并定義動(dòng)態(tài)更新的節(jié)點(diǎn)能量充足值、偏低值和警戒值如下
Power為節(jié)點(diǎn)的初始能量值,、和 為固定系數(shù),N為初始值為1的計(jì)數(shù)值。當(dāng)警戒節(jié)點(diǎn)個(gè)數(shù)與所有節(jié)點(diǎn)個(gè)數(shù)比Waring Nodes/Nodes達(dá)到一定臨界值Threshold時(shí)則N計(jì)數(shù)加1。
在初始化階段,中心協(xié)凋器Coordinator根據(jù)網(wǎng)絡(luò)地址分配機(jī)制[11]為每個(gè)節(jié)點(diǎn)分配惟一的網(wǎng)絡(luò)地址;網(wǎng)絡(luò)中除RFD節(jié)點(diǎn)外每個(gè)節(jié)點(diǎn)初始化本身的鄰居列表,記錄所有鄰居節(jié)點(diǎn)的相關(guān)信息;并且將自身剩余能量值與節(jié)點(diǎn)能量等級(jí)部分定義的各個(gè)臨界值相比較,判斷出該節(jié)點(diǎn)所在的能量區(qū)域,從而在傳輸數(shù)據(jù)的時(shí)候選擇不同的路由策略。
如圖1所示,路由發(fā)現(xiàn)階段當(dāng)節(jié)點(diǎn)作為中間節(jié)點(diǎn)接收到RREQ包時(shí),將按如下步驟處理:
(1)判斷本身是否為目的地,若是則返回RREP包,否則進(jìn)入下一步。
圖1 中間節(jié)點(diǎn)對(duì)RREQ包處理流程
(2)檢測(cè)自身剩余能量是否處于警戒狀態(tài),若是則直接丟棄RREQ包,并向Coordinator節(jié)點(diǎn)發(fā)送數(shù)據(jù)并由Coordinator節(jié)點(diǎn)更新警戒節(jié)點(diǎn)計(jì)數(shù)WaringNodes,同時(shí)向其所有鄰居節(jié)點(diǎn)發(fā)送數(shù)據(jù),由其鄰居節(jié)點(diǎn)更新各自的鄰居表,將該警戒節(jié)點(diǎn)的Nodetype置0,以便之后不再向其發(fā)送RREQ包;否則進(jìn)入下一步。
(3)判斷目的節(jié)點(diǎn)是否在鄰居表內(nèi),若是則向目的節(jié)點(diǎn)發(fā)送RREQ包;否則進(jìn)入下一步。
(4)判斷節(jié)點(diǎn)類型是否為RN-,若是則掃描鄰居表中是否有RNRouting值為1的節(jié)點(diǎn),若有則向該節(jié)點(diǎn)發(fā)送RREQ包,若無(wú)則比較鄰居表中節(jié)點(diǎn)的路由代價(jià) RoutingCost,并選擇RoutingCost最小的節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)(根據(jù)Cluster-Tree算法計(jì)算得出的下一跳節(jié)點(diǎn)也必然在鄰居表內(nèi))轉(zhuǎn)發(fā)RREQ包,并將鄰居表中該節(jié)點(diǎn)的RNRouting置1,同時(shí)將鄰居表中上一跳節(jié)點(diǎn)RNRouting置0以便其可以接收到返回的RREP包,從而結(jié)合鄰居表根據(jù)節(jié)點(diǎn)能量等級(jí)達(dá)到優(yōu)化Cluster-Tree算法的目的;否則進(jìn)入下一步。
(5)判斷目的節(jié)點(diǎn)是否在當(dāng)前節(jié)點(diǎn)的父親節(jié)點(diǎn)或子節(jié)點(diǎn)的鄰居表內(nèi),若是則向父親節(jié)點(diǎn)或子節(jié)點(diǎn)轉(zhuǎn)發(fā)RREQ包;否則進(jìn)入下一步。
(6)檢測(cè)自身剩余能量是否充足,若是則判斷目的節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn)的父類節(jié)點(diǎn)或是后裔節(jié)點(diǎn):若是父類節(jié)點(diǎn),則只向父親節(jié)點(diǎn)轉(zhuǎn)發(fā)RREQ包,若是后裔節(jié)點(diǎn)則只向子節(jié)點(diǎn)轉(zhuǎn)發(fā)RREQ包,與步驟5結(jié)合達(dá)到適當(dāng)控制AODVjr泛洪方向的目的,否則進(jìn)入下一步。
(7)此時(shí)節(jié)點(diǎn)能量等級(jí)必為偏低,則按照步驟6轉(zhuǎn)發(fā)RREQ包,在轉(zhuǎn)發(fā)RREQ包時(shí)加入一定的延時(shí)T
(8)RFD節(jié)點(diǎn)則根據(jù)節(jié)點(diǎn)能量等級(jí)選擇延遲或直接轉(zhuǎn)發(fā)RREQ包給其父節(jié)點(diǎn)。
AODVjr算法中節(jié)點(diǎn)只接受最先到達(dá)的RREQ包,這樣若節(jié)點(diǎn)已經(jīng)接收到RREQ包,則會(huì)丟棄該由于延遲而較晚到達(dá)的RREQ包,從而變相的選擇了路由代價(jià)較小的路由路徑。
當(dāng)目的節(jié)點(diǎn)接收到RREQ包時(shí)則向源節(jié)點(diǎn)沿該RREQ包發(fā)送路徑返回RREP包,源節(jié)點(diǎn)接收到RREP包則路由路徑建立。
在數(shù)據(jù)傳遞過(guò)程中,需要對(duì)路由和節(jié)點(diǎn)狀態(tài)進(jìn)行實(shí)時(shí)的更新與維護(hù),以反映網(wǎng)絡(luò)能量狀態(tài)的變化:節(jié)點(diǎn)一旦成為路由節(jié)點(diǎn)則其成為路由節(jié)點(diǎn)的計(jì)數(shù)Count加1;節(jié)點(diǎn)在每次轉(zhuǎn)發(fā)數(shù)據(jù)后都會(huì)更新自己的能量值,判斷能量等級(jí)是否發(fā)生變化,若節(jié)點(diǎn)能量等級(jí)更新為PowerWaring,則向源節(jié)點(diǎn)發(fā)送數(shù)據(jù)表示該路由失效進(jìn)而使源節(jié)點(diǎn)重新啟動(dòng)路由發(fā)現(xiàn),同時(shí)向Coordinator節(jié)點(diǎn)更新WaringNodes計(jì)數(shù),若警戒節(jié)點(diǎn)個(gè)數(shù)與所有節(jié)點(diǎn)個(gè)數(shù)比WaringNodes/Nodes達(dá)到臨界值Threshold則N計(jì)數(shù)加1從而根據(jù)公式更新節(jié)點(diǎn)能量等級(jí)值。
本仿真實(shí)驗(yàn)利用OMNeT++4.0和MF模型實(shí)現(xiàn)。網(wǎng)絡(luò)覆蓋面積為100m×100m,網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目設(shè)置為100個(gè),節(jié)點(diǎn)初始能量均為1000J,、和 分別為0.75、0.5和0.25,為100,Threshold為0.5,采用的傳輸信道數(shù)據(jù)傳輸率為250KB,數(shù)據(jù)包長(zhǎng)度為128bit。
如圖2所示,由于本文算法引入了鄰居表,選擇路由節(jié)點(diǎn)時(shí)考慮了較文獻(xiàn)[10]更多的因素,能量等級(jí)均為動(dòng)態(tài)變化且真正實(shí)現(xiàn)了AODVjr算法和Cluster-Tree算法的結(jié)合,因此能夠選擇出能量消耗更小的路由路徑。雖然在網(wǎng)絡(luò)初始化階段網(wǎng)絡(luò)總體能量消耗與文獻(xiàn)[10]算法基本相當(dāng),但一旦路由建立,本文算法在網(wǎng)絡(luò)總體能量消耗上明顯優(yōu)于原算法和文獻(xiàn)[10]算法。
圖2 網(wǎng)絡(luò)總體能量消耗
圖3 網(wǎng)絡(luò)死亡節(jié)點(diǎn)個(gè)數(shù)
如圖3所示,在網(wǎng)絡(luò)初始化階段,每個(gè)節(jié)點(diǎn)的能量都很充足,3種算法均不會(huì)產(chǎn)生死亡節(jié)點(diǎn),隨著網(wǎng)絡(luò)運(yùn)行時(shí)間的增長(zhǎng),原算法沒(méi)有考慮節(jié)點(diǎn)能量狀況,有的節(jié)點(diǎn)頻繁作為路由節(jié)點(diǎn)消耗很大的能量,最先出現(xiàn)死亡節(jié)點(diǎn)。本文考慮節(jié)點(diǎn)能量狀況的同時(shí)適當(dāng)控制RREQ包的轉(zhuǎn)發(fā),并且在Cluster-Tree算法中也加入了對(duì)節(jié)點(diǎn)能量狀況的考慮,能夠更好的選擇能量狀況較好的節(jié)點(diǎn)作為路由節(jié)點(diǎn),均衡了網(wǎng)絡(luò)能量消耗,最大化網(wǎng)絡(luò)生存時(shí)間,較文獻(xiàn)[10]在死亡節(jié)點(diǎn)出現(xiàn)時(shí)間和死亡節(jié)點(diǎn)個(gè)數(shù)上均有較大優(yōu)化。
本文針對(duì)原ZigBee路由算法和現(xiàn)有能量均衡算法中的不足,分別提出了基于能量均衡的AODVjr算法和Cluster-Tree算法改進(jìn)方案,并結(jié)合兩種算法,有效使用鄰居表實(shí)現(xiàn)RN-節(jié)點(diǎn)的路由功能同時(shí)控制RREQ包轉(zhuǎn)發(fā)方向;提出了基于節(jié)點(diǎn)剩余能量、成為路由節(jié)點(diǎn)次數(shù)、子孫數(shù)目和深度的能夠全面體現(xiàn)節(jié)點(diǎn)現(xiàn)有和將來(lái)能量狀況的路由代價(jià);提出了動(dòng)態(tài)更新的節(jié)點(diǎn)能量等級(jí),使網(wǎng)絡(luò)能夠選擇出能量代價(jià)最小的路由路徑,同時(shí)均衡整個(gè)網(wǎng)絡(luò)的能量消耗。仿真表明本文算法確實(shí)優(yōu)化了ZigBee網(wǎng)絡(luò)的能量消耗狀況。
[1] 任秀麗,于海斌.ZigBee無(wú)線通信協(xié)議實(shí)現(xiàn)技術(shù)的研究[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(6):143-145.
[2] 杜煥軍,張維勇,劉國(guó)田.ZigBee路由協(xié)議的研究[J].合肥工業(yè)大學(xué)學(xué)報(bào),2008,10(31):1617-1621.
[3] 耿萌,于宏毅,張效義.ZigBee路由協(xié)議分析與性能評(píng)估[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(26):116-120.
[4] Fechner J.ZigBee in industrial applications[C].Nurnberg,Germany:Proceedingsofthe 2006International Conference on Power Electronics Intelligent Motion and Power Quality,2006:61-62.
[5] Leek K,Kims H,Choiy S,et al.A mesh routing protocol using cluster label in the ZigBee network[C].New York:IEEE International Conference on Mobile Ad Hoc and Sensor Systems,2006:801-806.
[6] 班艷麗,柴喬林,王芳.改進(jìn)的ZigBee網(wǎng)絡(luò)路由算法[J].計(jì)算機(jī)工程與應(yīng)用,2009,45(5):95-116.
[7] 李剛,陳俊杰,葛文濤.一種改進(jìn)的ZigBee網(wǎng)絡(luò)Cluster-Tree路由算法[J].測(cè)控技術(shù),2009,28(9):52-55.
[8] 王琛,柴喬林,王芳.基于樹形結(jié)構(gòu)的ZigBee能量均衡協(xié)議研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(15):3534-3586.
[9] 王芳,柴喬林,班艷麗.一種改進(jìn)的ZigBee mesh網(wǎng)絡(luò)路由算法[J].計(jì)算機(jī)應(yīng)用,2008,28(11):3534-3586.
[10]班艷麗,柴喬林,王琛.基于能量均衡的ZigBee網(wǎng)絡(luò)樹路由算法[J].計(jì)算機(jī)應(yīng)用,2008,28(11):2791-2794.
[11]Asano Y,Imai H,Toyoda M,et al.Finding neighbor communities in the web using an inter-site graph[J].IEICE Transactions on Information and Systems,2004(9):2163-2170.