本發(fā)明涉及網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)技術(shù)領(lǐng)域,特別是涉及一種網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)方法及裝置。
背景技術(shù):
在現(xiàn)實生活中,與周圍人交流是個人的主要行為,人與人之間總是通過某種關(guān)系相互連接形成一個社會網(wǎng)絡(luò),也稱為社交網(wǎng)絡(luò)社區(qū)。實際的社交網(wǎng)絡(luò)社區(qū)往往具有的網(wǎng)絡(luò)拓撲結(jié)構(gòu):每個網(wǎng)絡(luò)社區(qū)內(nèi)部節(jié)點之間的連接相對較為緊密,各個網(wǎng)絡(luò)社區(qū)之間的連接相對較為稀疏。
網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)技術(shù)在社交網(wǎng)絡(luò)分析和數(shù)據(jù)挖掘中是一種非常重要的技術(shù)。對于研究大規(guī)模的復(fù)雜網(wǎng)絡(luò),探尋并發(fā)現(xiàn)該網(wǎng)絡(luò)中潛在的網(wǎng)絡(luò)社區(qū),具有很重要的研究意義。該技術(shù)的應(yīng)用非常廣泛,主要涉及的領(lǐng)域有:社會網(wǎng)絡(luò)分析領(lǐng)域、數(shù)據(jù)挖掘領(lǐng)域、機器學(xué)習(xí)領(lǐng)域、統(tǒng)計學(xué)領(lǐng)域、空間(圖)數(shù)據(jù)庫技術(shù)領(lǐng)域、生物學(xué)和市場學(xué)等領(lǐng)域。
現(xiàn)有技術(shù)中,大多數(shù)的網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法都是針對靜態(tài)網(wǎng)絡(luò),即網(wǎng)絡(luò)中的節(jié)點以及節(jié)點之間的連接關(guān)系是一成不變的。然而,在實際應(yīng)用中,網(wǎng)絡(luò)是動態(tài)變化的。這些變化的不斷積累造成整個網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的變化,如新網(wǎng)絡(luò)社區(qū)的產(chǎn)生、舊網(wǎng)絡(luò)社區(qū)的消失、網(wǎng)絡(luò)社區(qū)的合并或分裂、網(wǎng)絡(luò)社區(qū)規(guī)模的變大或變小等。針對網(wǎng)絡(luò)的快速且不可預(yù)測的變化性,使得對動態(tài)網(wǎng)絡(luò)中的網(wǎng)絡(luò)社區(qū)的檢測和發(fā)現(xiàn)面臨著巨大的挑戰(zhàn)。
技術(shù)實現(xiàn)要素:
本發(fā)明主要解決的技術(shù)問題是提供一種網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)方法及裝置,能夠有效辨別和監(jiān)測當前時刻下動態(tài)網(wǎng)絡(luò)中網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的變化,并對當前時刻下的網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)進行更新。
為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)方法,包括:在時間段T內(nèi)以預(yù)定周期檢測時刻t0的網(wǎng)絡(luò)結(jié)構(gòu)G0的拓撲變化ΔG0;基于所述網(wǎng)絡(luò)結(jié)構(gòu)G0和所述拓撲變化ΔG0,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT)。
其中,所述在時間段T內(nèi)以預(yù)定周期檢測時刻t0的網(wǎng)絡(luò)結(jié)構(gòu)G0的拓撲變化ΔG0之前,還包括:在所述時刻t0基于所述網(wǎng)絡(luò)結(jié)構(gòu)G0,形成網(wǎng)絡(luò)社區(qū)集合C(G0),其中,G0=(V0,E0),C(G0)=(C1(G0),C2(G0),......,Ck(G0)),所述V0為所述時刻t0的節(jié)點集合,所述E0為所述時刻t0的邊的集合,Ci(G0)為所述網(wǎng)絡(luò)社區(qū)集合C(G0)中任意一個網(wǎng)絡(luò)社區(qū),所述i的數(shù)值是從1至k,所述k為所述網(wǎng)絡(luò)結(jié)構(gòu)G0形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量;所述基于所述網(wǎng)絡(luò)結(jié)構(gòu)G0和所述拓撲變化ΔG0,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),包括:對所述網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點、刪除ΔV0中減少的所有節(jié)點、增加ΔE0中增加的所有邊以及刪除ΔE0中減少的所有邊四個過程中的至少一個過程,其中,ΔG0=(ΔV0,ΔE0),所述ΔV0為所述時間段T內(nèi)節(jié)點的變化集合,所述ΔE0為所述時間段T內(nèi)邊的變化集合;根據(jù)執(zhí)行的所述至少一個過程的結(jié)果,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),其中,GT=(VT,ET),C(GT)=(C1(GT),C2(GT),......,Cm(GT)),GT=G0∪ΔG0,所述VT為所述時刻t0+T的節(jié)點集合,所述ET為所述時刻t0+T的邊的集合,Ci(GT)為所述網(wǎng)絡(luò)社區(qū)集合C(GT)中任意一個網(wǎng)絡(luò)社區(qū),所述i的數(shù)值是從1至m,所述m為網(wǎng)絡(luò)結(jié)構(gòu)GT形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量。
其中,所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點的過程,包括:將所述ΔV0中增加的節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)中,所述u為所述ΔV0中增加的所有節(jié)點中的任意一個;所述根據(jù)執(zhí)行的所述至少一個過程的結(jié)果,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),包括:當所述節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)后,若所述網(wǎng)絡(luò)社區(qū)Ci(G0)內(nèi)的邊、連接到所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的邊均沒有增加,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當 所述節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)后,且若所述網(wǎng)絡(luò)社區(qū)Ci(G0)連接到所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)中的至少一個的邊同步增加,則當引力度BDin(u,Ci(GT))大于或等于引力度BDout(u,Ci(GT))時,將所述節(jié)點u增加到所述Ci(G0)中,以形成所述Ci(GT),當所述BDin(u,Ci(GT))小于所述BDout(u,Ci(GT))時,將所述節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū),且所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量,其中,所述引力度BDin(u,Ci(GT))表示所述網(wǎng)絡(luò)社區(qū)Ci(GT)中除所述節(jié)點u之外的所有節(jié)點對所述節(jié)點u的引力大小,所述引力度BDout(u,Ci(GT))表示除所述網(wǎng)絡(luò)社區(qū)Ci(GT)之外的所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點對所述節(jié)點u的引力大小;當所述ΔV0中增加的所有節(jié)點的數(shù)量為一個以上時,返回所述將所述ΔV0中增加的節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)中的步驟,直到ΔV0中增加的所有節(jié)點分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點的過程。
其中,所述引力度BDin(u,Ci(GT))和所述引力度BDout(u,Ci(GT))的大小分別:
其中,所述表示在所述時刻t0+T下,與所述節(jié)點u連接的所有邊之和,所述表示所述節(jié)點u與所述Ci(GT)中所有節(jié)點可能連接的所有邊之和,所述表示所述節(jié)點u與所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點可能連接的所有邊之和。
其中,所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔV0中減少的所有節(jié)點的過程,包括:在所述網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除所述ΔV0中減少的節(jié)點v,所述v為所述ΔV0中減少的所有節(jié)點中的任意一個;所述根據(jù)執(zhí)行的所述至少一個過程的結(jié)果,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合 C(GT),包括:當所述節(jié)點v為單孤立節(jié)點,若從所述網(wǎng)絡(luò)社區(qū)Ci(G0)刪除所述節(jié)點v后對所述網(wǎng)絡(luò)結(jié)構(gòu)G0沒有產(chǎn)生變化,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點v從所述網(wǎng)絡(luò)社區(qū)Ci(G0)刪除后,若與所述節(jié)點v連接的邊同步刪除,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與所述節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT);當所述ΔV0中減少的所有節(jié)點的數(shù)量為一個以上時,返回所述在所述網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除所述ΔV0中減少的節(jié)點v的步驟,直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔV0中減少的所有節(jié)點,否則,結(jié)束所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔV0中減少的所有節(jié)點的過程。
其中,所述更新與所述節(jié)點u連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)之后,還包括:當更新與所述節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)之后,所述節(jié)點v的鄰居節(jié)點的鄰居節(jié)點產(chǎn)生網(wǎng)絡(luò)社區(qū)的變化時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與所述節(jié)點v連接的鄰居節(jié)點的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),直至所述G0中所有節(jié)點的所屬網(wǎng)絡(luò)社區(qū)不再發(fā)生變化。
其中,所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔE0中增加的所有邊的過程,包括:將所述ΔE0中增加的邊(x,y)增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)中,所述邊(x,y)為所述ΔE0中增加的所有邊中的任意一個,所述x,y分別表示所述邊(x,y)的兩個節(jié)點;所述根據(jù)執(zhí)行的所述至少一個過程的結(jié)果,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),包括:當所述節(jié)點x,y屬于同一個網(wǎng)絡(luò)社區(qū)時,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點x,y分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新所述節(jié)點x,y、與所述節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成所述網(wǎng)絡(luò)社區(qū)集合C(GT);當所述ΔE0中增加的所有邊的數(shù)量為一個以上時,返回所述將所述ΔE0中增加的邊(x,y)增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)中的步驟,直到ΔE0中增加的所有邊分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔE0中增加的所有邊的過程。
其中,所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔE0中減少的所有邊的過程,包括:在所述網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除所述ΔE0中減少的邊(a,b),所述邊(a,b)為所述ΔE0中減少的所有邊中的任意一個,所述a,b分別表示所述邊(a,b)的兩個節(jié)點;所述根據(jù)執(zhí)行的所述至少一個過程的結(jié)果,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),包括:當所述節(jié)點a,b分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點a,b屬于同一個網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新所述節(jié)點x,y、與所述節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成所述網(wǎng)絡(luò)社區(qū)集合C(GT);當所述ΔE0中減少的所有邊的數(shù)量為一個以上時,返回所述在所述網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除所述ΔE0中減少的邊(a,b)的步驟,直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔE0中減少的所有邊,否則,結(jié)束所述對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔE0中減少的所有邊的過程。
為解決上述技術(shù)問題,本發(fā)明采用的另一個技術(shù)方案是:提供一種網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)裝置,所述裝置包括:檢測模塊,用于在時間段T內(nèi)以預(yù)定周期檢測時刻t0的網(wǎng)絡(luò)結(jié)構(gòu)G0的拓撲變化ΔG0;第一形成模塊,用于基于所述網(wǎng)絡(luò)結(jié)構(gòu)G0和所述拓撲變化ΔG0,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT)。
其中,所述裝置還包括:第二形成模塊,用于在所述時刻t0基于所述網(wǎng)絡(luò)結(jié)構(gòu)G0,形成網(wǎng)絡(luò)社區(qū)集合C(G0),其中,G0=(V0,E0),C(G0)=(C1(G0),C2(G0),......,Ck(G0)),所述V0為所述時刻t0的節(jié)點集合,所述E0為所述時刻t0的邊的集合,Ci(G0)為所述網(wǎng)絡(luò)社區(qū)集合C(G0)中任意一個網(wǎng)絡(luò)社區(qū),所述i的數(shù)值是從1至k,所述k為所述網(wǎng)絡(luò)結(jié)構(gòu)G0形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量;所述第一形成模塊包括:執(zhí)行單元,用于對所述網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點、刪除ΔV0中減少的所有節(jié)點、增加ΔE0中增加的所有邊以及刪除ΔE0中減少的所有邊四個過程中的至少一個過程,其中,ΔG0=(ΔV0,ΔE0),所述ΔV0為所述時間段T內(nèi)節(jié)點的變化集合,所述ΔE0為所述時間段T內(nèi)邊的變化集合;形成單元, 用于根據(jù)執(zhí)行的所述至少一個過程的結(jié)果,形成在所述時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),其中,GT=(VT,ET),C(GT)=(C1(GT),C2(GT),......,Cm(GT)),GT=G0∪ΔG0,所述VT為所述時刻t0+T的節(jié)點集合,所述ET為所述時刻t0+T的邊的集合,Ci(GT)為所述網(wǎng)絡(luò)社區(qū)集合C(GT)中任意一個網(wǎng)絡(luò)社區(qū),所述i的數(shù)值是從1至m,所述m為網(wǎng)絡(luò)結(jié)構(gòu)GT形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量。
其中,所述執(zhí)行單元具體用于將所述ΔV0中增加的節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)中,所述u為所述ΔV0中增加的所有節(jié)點中的任意一個;所述形成單元具體用于當所述節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)后,若所述網(wǎng)絡(luò)社區(qū)Ci(G0)內(nèi)的邊、連接到所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的邊均沒有增加,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)后,且若所述網(wǎng)絡(luò)社區(qū)Ci(G0)連接到所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)中的至少一個的邊同步增加,則當引力度BDin(u,Ci(GT))大于或等于引力度BDout(u,Ci(GT))時,將所述節(jié)點u增加到所述Ci(G0)中,以形成所述Ci(GT),當所述BDin(u,Ci(GT))小于所述BDout(u,Ci(GT))時,將所述節(jié)點u增加到所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū),且所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量,其中,所述引力度BDin(u,Ci(GT))表示所述網(wǎng)絡(luò)社區(qū)Ci(GT)中除所述節(jié)點u之外的所有節(jié)點對所述節(jié)點u的引力大小,所述引力度BDout(u,Ci(GT))表示除所述網(wǎng)絡(luò)社區(qū)Ci(GT)之外的所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點對所述節(jié)點u的引力大?。划斔靓0中增加的所有節(jié)點的數(shù)量為一個以上時,返回所述執(zhí)行單元,直到ΔV0中增加的所有節(jié)點分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束所述執(zhí)行單元的操作。
其中,所述引力度BDin(u,Ci(GT))和所述引力度BDout(u,Ci(GT))的大小分別為:
其中,所述表示在所述時刻t0+T下,與所述節(jié)點u連接的所有邊之和,所述表示所述節(jié)點u與所述Ci(GT)中所有節(jié)點可能連接的所有邊之和,所述表示所述節(jié)點u與所述網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點可能連接的所有邊之和。
其中,所述執(zhí)行單元具體用于在所述網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除所述ΔV0中減少的節(jié)點v,所述v為所述ΔV0中減少的所有節(jié)點中的任意一個;所述形成單元具體用于當所述節(jié)點v為單孤立節(jié)點,若從所述網(wǎng)絡(luò)社區(qū)Ci(G0)刪除所述節(jié)點v后對所述網(wǎng)絡(luò)結(jié)構(gòu)G0沒有產(chǎn)生變化,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點v從所述網(wǎng)絡(luò)社區(qū)Ci(G0)刪除后,若與所述節(jié)點v連接的邊同步刪除,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與所述節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT);當所述ΔV0中減少的所有節(jié)點的數(shù)量為一個以上時,返回所述執(zhí)行單元,直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔV0中減少的所有節(jié)點,否則,結(jié)束所述執(zhí)行單元的操作。
其中,所述形成單元還用于當更新與所述節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)之后,所述節(jié)點v的鄰居節(jié)點的鄰居節(jié)點產(chǎn)生網(wǎng)絡(luò)社區(qū)的變化時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與所述節(jié)點v連接的鄰居節(jié)點的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),直至所述G0中所有節(jié)點的所屬網(wǎng)絡(luò)社區(qū)不再發(fā)生變化。
其中,所述執(zhí)行單元具體用于將所述ΔE0中增加的邊(x,y)增加到所述網(wǎng)絡(luò)社區(qū)Ci(G0)中,所述邊(x,y)為所述ΔE0中增加的所有邊中的任意一個,所述x,y分別表示所述邊(x,y)的兩個節(jié)點;所述形成單元具體用于當所述節(jié)點x,y屬于同一個網(wǎng)絡(luò)社區(qū)時,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點x,y分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則 按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新所述節(jié)點x,y、與所述節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成所述網(wǎng)絡(luò)社區(qū)集合C(GT);當所述ΔE0中增加的所有邊的數(shù)量為一個以上時,返回所述執(zhí)行單元,直到ΔE0中增加的所有邊分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束所述執(zhí)行單元的操作。
其中,所述執(zhí)行單元具體用于在所述網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除所述ΔE0中減少的邊(a,b),所述邊(a,b)為所述ΔE0中減少的所有邊中的任意一個,所述a,b分別表示所述邊(a,b)的兩個節(jié)點;所述形成單元具體用于當所述節(jié)點a,b分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則所述Ci(GT)中節(jié)點的數(shù)量為所述Ci(G0)中節(jié)點的數(shù)量;當所述節(jié)點a,b屬于同一個網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新所述節(jié)點x,y、與所述節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成所述網(wǎng)絡(luò)社區(qū)集合C(GT);當所述ΔE0中減少的所有邊的數(shù)量為一個以上時,返回所述執(zhí)行單元,直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔE0中減少的所有邊,否則,結(jié)束所述執(zhí)行單元的操作。
本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過檢測前一時刻的網(wǎng)絡(luò)結(jié)構(gòu)的拓撲變化,在確定后一時刻網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)社區(qū)時,充分利用該拓撲變化,通過這種方式,能夠有效辨別和監(jiān)測當前時刻下動態(tài)網(wǎng)絡(luò)中網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的變化,并對當前時刻下的網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)進行更新。
附圖說明
圖1是某一時刻網(wǎng)絡(luò)社區(qū)拓撲示意圖;
圖2是本發(fā)明網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)方法一實施方式的流程圖;
圖3是本發(fā)明網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)方法另一實施方式的流程圖;
圖4是本發(fā)明網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)裝置一實施方式的結(jié)構(gòu)示意圖;
圖5是本發(fā)明網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)裝置另一實施方式的結(jié)構(gòu)示意圖。
具體實施方式
在介紹本發(fā)明之前,首先介紹一下與本發(fā)明相關(guān)的現(xiàn)有技術(shù)的情況。
隨著移動互聯(lián)網(wǎng)的廣泛應(yīng)用,社交網(wǎng)絡(luò)已成為人們?nèi)粘I钪胁豢扇鄙俚男畔⒔粨Q工具。在社交網(wǎng)絡(luò)中,網(wǎng)絡(luò)社區(qū)是一種重要的結(jié)構(gòu)。所謂網(wǎng)絡(luò)社區(qū)是指社交網(wǎng)絡(luò)中的節(jié)點被分為一些團組,團組成員(節(jié)點)之間具有較強的聯(lián)系,而不同的團組之間的節(jié)點則具有稀疏的聯(lián)系。
在大型復(fù)雜網(wǎng)絡(luò)中進行網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)(Community Detection)具有重要的實際意義。在社會網(wǎng)絡(luò)中,網(wǎng)絡(luò)社區(qū)信息顯示了社區(qū)成員的興趣、職業(yè)、地域、背景等特征,利用這些信息可以進行人物性格特征分析、就業(yè)推薦、好友推薦和精準廣告營銷。在引文網(wǎng)絡(luò)中(如LinkedIn、DBLP),用戶根據(jù)搜索主題詞、作者信息、內(nèi)容、單位等搜索文章,系統(tǒng)則可以按照用戶的搜索詞進行相關(guān)推薦,這些推薦的基礎(chǔ)就是網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)理論。在生物化學(xué)網(wǎng)絡(luò)中,某一類型的功能單元可以看成網(wǎng)絡(luò)社區(qū),檢測這些網(wǎng)絡(luò)社區(qū)有助于理解網(wǎng)絡(luò)的進化和發(fā)展,例如可以進行食物鏈和人類基因分析等。此外,網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)還廣泛應(yīng)用于萬維網(wǎng)、協(xié)同網(wǎng)絡(luò)和通信網(wǎng)絡(luò)分析。
網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)技術(shù)在探查性分析和數(shù)據(jù)挖掘中是一種非常重要的技術(shù),它的應(yīng)用非常廣泛。近些年來,網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)發(fā)現(xiàn)算法已經(jīng)成為研究的熱點。
現(xiàn)有技術(shù)中,大多數(shù)的網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法都是針對靜態(tài)網(wǎng)絡(luò),即網(wǎng)絡(luò)中的節(jié)點以及節(jié)點之間的連接關(guān)系是一成不變的。然而,在實際應(yīng)用中,網(wǎng)絡(luò)是動態(tài)變化的。這些變化的不斷積累造成整個網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的變化,如新網(wǎng)絡(luò)社區(qū)的產(chǎn)生、舊網(wǎng)絡(luò)社區(qū)的消失、網(wǎng)絡(luò)社區(qū)的合并或分裂、網(wǎng)絡(luò)社區(qū)規(guī)模的變大或變小等。針對網(wǎng)絡(luò)的快速且不可預(yù)測的變化性,使得對動態(tài)網(wǎng)絡(luò)中的網(wǎng)絡(luò)社區(qū)的檢測和發(fā)現(xiàn)面臨著巨大的挑戰(zhàn)。
本發(fā)明針對社交網(wǎng)絡(luò)拓撲結(jié)構(gòu)隨時間變化的動態(tài)特性,建立一種自適應(yīng)此情況的快速檢測和識別網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的方法,該方法可以充分利用前一時刻的網(wǎng)絡(luò)結(jié)構(gòu)及前一時刻和后一時刻之間的網(wǎng)絡(luò)變化,來對當前(后一時刻)的網(wǎng)絡(luò)結(jié)構(gòu)進行分析,從而確定當前網(wǎng)絡(luò)結(jié)構(gòu)中的網(wǎng)絡(luò) 社區(qū)情況。通過這種方式,可以網(wǎng)絡(luò)中網(wǎng)絡(luò)社區(qū)的變化,例如:是否產(chǎn)生新網(wǎng)絡(luò)社區(qū)、舊網(wǎng)絡(luò)社區(qū)是否消失、是否產(chǎn)生網(wǎng)絡(luò)社區(qū)的合并或分裂、網(wǎng)絡(luò)社區(qū)規(guī)模是變大還是變小等等。
人們在研究復(fù)雜系統(tǒng)的時候,習(xí)慣于把復(fù)雜系統(tǒng)抽象為網(wǎng)絡(luò)圖來進行分析和研究,因此圖成為復(fù)雜系統(tǒng)重要的描述工具,并被應(yīng)用到社會、生物、基因、信息網(wǎng)絡(luò)等諸多領(lǐng)域。一個網(wǎng)絡(luò)圖可表示為G=(V,E),其中,G代表這個網(wǎng)絡(luò)的結(jié)構(gòu)(即網(wǎng)絡(luò)圖),V代表這個網(wǎng)絡(luò)圖中的節(jié)點集合,E代表網(wǎng)絡(luò)圖中連接節(jié)點之間的邊集合,一般用N=|V|表示網(wǎng)絡(luò)圖的節(jié)點總數(shù),用M=|E|表示網(wǎng)絡(luò)圖的邊數(shù)。復(fù)雜網(wǎng)絡(luò)中的節(jié)點代表現(xiàn)實復(fù)雜系統(tǒng)中的實體或者元素,也可以代表虛擬網(wǎng)絡(luò)社區(qū)中的虛擬個體,邊則代表這些實體或者元素、或虛擬個體之間的相互關(guān)系。
網(wǎng)絡(luò)圖可以分為無向圖、有向圖、加權(quán)圖以及異構(gòu)圖,在本發(fā)明一實施方式中,網(wǎng)絡(luò)圖采用無向無權(quán)圖,當然也可以采用其他的圖,例如有向有權(quán)圖。無向是指邊沒有方向,無權(quán)是指兩節(jié)點之間的連線沒有長度,也就是說兩個節(jié)點之間連接其距離就是1,不連接其距離是0。另外,與某個節(jié)點u存在邊的那些節(jié)點均為該節(jié)點u的鄰居接點;給定一個節(jié)點u,其鄰居節(jié)點的個數(shù)稱為該節(jié)點u的點度數(shù),記為du。對于任何mK表示為節(jié)點子集K中所有節(jié)點之間存在邊的總數(shù),dK表示為節(jié)點子集K中所有節(jié)點的點度數(shù)之和,euK表示為節(jié)點u和節(jié)點子集K中所有節(jié)點可能存在的邊數(shù)。
在網(wǎng)絡(luò)結(jié)構(gòu)G中,C=(C1,C2,......,Cl)表示當前網(wǎng)絡(luò)中存在l個不重疊的網(wǎng)絡(luò)社區(qū)。其中Ci∈C表示Ci為C其中的一個網(wǎng)絡(luò)社區(qū)。具體示意圖如圖1所示。圖1中,G=(12,14),網(wǎng)絡(luò)存在4個網(wǎng)絡(luò)社區(qū),4個網(wǎng)絡(luò)社區(qū)互不重疊,網(wǎng)絡(luò)社區(qū)1包括4個節(jié)點5條邊,網(wǎng)絡(luò)社區(qū)2包括3個節(jié)點3條邊,網(wǎng)絡(luò)社區(qū)3包括3個節(jié)點2條邊,網(wǎng)絡(luò)節(jié)點4包括2個節(jié)點1條邊,其中,網(wǎng)絡(luò)社區(qū)1的節(jié)點4分別與網(wǎng)絡(luò)社區(qū)2的節(jié)點6、網(wǎng)絡(luò)社區(qū)3的節(jié)點10存在網(wǎng)絡(luò)社區(qū)之間的連接,網(wǎng)絡(luò)社區(qū)2的節(jié)點7與網(wǎng)絡(luò)社區(qū)4的節(jié)點11存在網(wǎng)絡(luò)社區(qū)之間的連接。從圖1還可以看出,網(wǎng)絡(luò)社區(qū)內(nèi)部聯(lián)系比較緊密,網(wǎng)絡(luò)社區(qū)之間聯(lián)系比較稀疏。
下面結(jié)合附圖和實施方式對本發(fā)明進行詳細說明。
參閱圖2,圖2是本發(fā)明網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)方法一實施方式的流程圖,包括:
步驟S101:在時間段T內(nèi)以預(yù)定周期檢測時刻t0的網(wǎng)絡(luò)結(jié)構(gòu)G0的拓撲變化ΔG0。
時間段T可以預(yù)先設(shè)計,根據(jù)實際應(yīng)用的需要,時間段可以長,也可以短,例如:可以以小時為單位計算,或者以天為單位計算,或者以月為單位計算等等。對于網(wǎng)絡(luò)結(jié)構(gòu)變化很快的網(wǎng)絡(luò),時間段可以短一些,對于網(wǎng)絡(luò)結(jié)構(gòu)變化比較慢、相對穩(wěn)定的網(wǎng)絡(luò),時間段可以長一些。
預(yù)定周期的設(shè)置根據(jù)時間段T的設(shè)置,例如,如果時間段是1小時,那么檢測的周期可以是每20分鐘,或者每30分鐘等等。
時刻t0為前一某時刻,網(wǎng)絡(luò)結(jié)構(gòu)G0為前一時刻t0的網(wǎng)絡(luò)結(jié)構(gòu),包括節(jié)點的總個數(shù),邊的總個數(shù),網(wǎng)絡(luò)社區(qū)的個數(shù)與結(jié)構(gòu)等等。拓撲變化是指原來的網(wǎng)絡(luò)結(jié)構(gòu)中,節(jié)點的變化和邊的變化,例如:增加了某些節(jié)點,減少了某些節(jié)點,增加了一些邊,減少了一些邊等等。
ΔG0=(ΔV0,ΔE0),ΔV0為從時刻t0到時刻t0+T的時間段T內(nèi)節(jié)點的變化集合,ΔE0為從時刻t0到時刻t0+T的時間段T內(nèi)邊的變化集合。
后一某時間段內(nèi)檢測前一某時刻的網(wǎng)絡(luò)結(jié)構(gòu)的拓撲變化,從而可以檢測網(wǎng)絡(luò)結(jié)構(gòu)的變化。
步驟S102:基于網(wǎng)絡(luò)結(jié)構(gòu)G0和拓撲變化ΔG0,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT)。
當檢測到拓撲變化后,根據(jù)前一時刻t0的網(wǎng)絡(luò)結(jié)構(gòu)G0和從時刻t0到時刻t0+T的時間段T內(nèi)拓撲變化ΔG0,通過現(xiàn)有技術(shù)中有關(guān)的網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法即可形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT)。例如,傳統(tǒng)算法、譜分析算法、基于模塊度的算法、動態(tài)算法、基于統(tǒng)計推斷的方法等等。
本發(fā)明實施方式通過檢測前一時刻的網(wǎng)絡(luò)結(jié)構(gòu)的拓撲變化,在確定后一時刻網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)社區(qū)時,充分利用該拓撲變化,通過這種方式,能夠有效辨別和監(jiān)測當前時刻下動態(tài)網(wǎng)絡(luò)中網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的變化,并對 當前時刻下的網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)進行更新。
其中,參見圖3,步驟S101之前,還包括:
步驟S103:在時刻t0基于網(wǎng)絡(luò)結(jié)構(gòu)G0,形成網(wǎng)絡(luò)社區(qū)集合C(G0),其中,G0=(V0,E0),C(G0)=(C1(G0),C2(G0),......,Ck(G0)),V0為時刻t0的節(jié)點集合,E0為時刻t0的邊的集合,Ci(G0)為網(wǎng)絡(luò)社區(qū)集合C(G0)中任意一個網(wǎng)絡(luò)社區(qū),i的數(shù)值是從1至k,k為網(wǎng)絡(luò)結(jié)構(gòu)G0形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量。
在前一時刻t0,首先基于網(wǎng)絡(luò)結(jié)構(gòu)G0,形成時刻t0網(wǎng)絡(luò)社區(qū)集合C(G0),也就是說,基于前一時刻的網(wǎng)絡(luò)結(jié)構(gòu),利用現(xiàn)有技術(shù)中有關(guān)的網(wǎng)絡(luò)社區(qū)發(fā)現(xiàn)算法即可形成時刻t0網(wǎng)絡(luò)社區(qū)集合C(G0)。通過這種方式,可以進行前后時刻下網(wǎng)絡(luò)社區(qū)集合的比較,從而更進一步地確定網(wǎng)絡(luò)社區(qū)變化的具體情況和細節(jié),有利于預(yù)測網(wǎng)絡(luò)社區(qū)變化的趨勢。
模塊度也稱模塊化度量值,是目前常用的一種衡量網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)強度的方法。模塊度值的大小主要取決于網(wǎng)絡(luò)中節(jié)的社區(qū)分配,即網(wǎng)絡(luò)的社區(qū)劃分情況,可以用來定量的衡量網(wǎng)絡(luò)社區(qū)劃分質(zhì)量,其值越接近1,表示網(wǎng)絡(luò)劃分出的社區(qū)結(jié)構(gòu)的強度越強,也就是劃分質(zhì)量越好。因此可以通過最大化模塊度Q來獲得最優(yōu)的網(wǎng)絡(luò)社區(qū)劃分。
本發(fā)明實施方式中,利用模塊度最優(yōu)調(diào)整算法來形成網(wǎng)絡(luò)社區(qū)集合,可以劃分出最優(yōu)的網(wǎng)絡(luò)社區(qū)。
具體來說,模塊度Q的計算參考如下:
其中,C是當前網(wǎng)絡(luò)中網(wǎng)絡(luò)社區(qū)的總數(shù)目;c是當前網(wǎng)絡(luò)中任一網(wǎng)絡(luò)社區(qū),mc是網(wǎng)絡(luò)社區(qū)c中所有內(nèi)部邊的總數(shù)目,M是當前網(wǎng)絡(luò)中邊的總數(shù)目,d是網(wǎng)絡(luò)社區(qū)c中所有節(jié)點的點度數(shù)之和。
c
此時,步驟S102具體包括:子步驟S1021和子步驟S1022。
子步驟S1021:對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點、刪除ΔV0中減少的所有節(jié)點、增加ΔE0中增加的所有邊以及刪除ΔE0中減少的所有邊四個過程中的至少一個過程,其中,ΔG0=(ΔV0,ΔE0),ΔV0為 時間段T內(nèi)節(jié)點的變化集合,ΔE0為時間段T內(nèi)邊的變化集合。
子步驟S1022:根據(jù)執(zhí)行的至少一個過程的結(jié)果,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),其中,GT=(VT,ET),C(GT)=(C1(GT),C2(GT),......,Cm(GT)),GT=G0∪ΔG0,VT為時刻t0+T的節(jié)點集合,ET為時刻t0+T的邊的集合,Ci(GT)為網(wǎng)絡(luò)社區(qū)集合C(GT)中任意一個網(wǎng)絡(luò)社區(qū),i的數(shù)值是從1至m,m為網(wǎng)絡(luò)結(jié)構(gòu)GT形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量。
在本發(fā)明實施方式中,動態(tài)網(wǎng)絡(luò)社區(qū)的檢測發(fā)現(xiàn)是通過前一時刻G0中網(wǎng)絡(luò)社區(qū)內(nèi)部或網(wǎng)絡(luò)社區(qū)間的節(jié)點變化以及對應(yīng)邊的變化而產(chǎn)生。因此,動態(tài)網(wǎng)絡(luò)社區(qū)的檢測發(fā)現(xiàn)可以通過前一時刻網(wǎng)絡(luò)結(jié)構(gòu)經(jīng)歷以下四種狀態(tài)過渡形成,即:前一時刻網(wǎng)絡(luò)結(jié)構(gòu)變化產(chǎn)生的網(wǎng)絡(luò)社區(qū)都是通過增加節(jié)點或刪除節(jié)點,以及增加節(jié)點之間相連的邊或刪除節(jié)點之間相連的邊(簡稱為DCDA算法)而產(chǎn)生后續(xù)時刻的網(wǎng)絡(luò)社區(qū),并確保產(chǎn)生網(wǎng)絡(luò)社區(qū)的模塊度Q最大化來完成對動態(tài)網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)。
在網(wǎng)絡(luò)結(jié)構(gòu)G0對應(yīng)網(wǎng)絡(luò)社區(qū)集合C(G0)中通過DCDA算法構(gòu)造更新下一時刻的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT)。四種過程分別具體定義如下(分別以一個節(jié)點和一條邊為例進行說明):
(1)增加節(jié)點(C(G0),u):在網(wǎng)絡(luò)結(jié)構(gòu)G0對應(yīng)網(wǎng)絡(luò)社區(qū)集合C(G0)的每一個網(wǎng)絡(luò)社區(qū)中分別執(zhí)行增加一個節(jié)點u的操作。
(2)刪除節(jié)點(C(G0),v):在網(wǎng)絡(luò)結(jié)構(gòu)G0對應(yīng)網(wǎng)絡(luò)社區(qū)集合C(G0)的每一個網(wǎng)絡(luò)社區(qū)中分別執(zhí)行刪除一個節(jié)點u及其相連的邊的操作。
(3)增加邊(C(G0),e):在網(wǎng)絡(luò)結(jié)構(gòu)G0對應(yīng)網(wǎng)絡(luò)社區(qū)集合C(G0)的每一個網(wǎng)絡(luò)社區(qū)中分別執(zhí)行增加一條邊e的操作。
(4)刪除邊(C(G0),f):在網(wǎng)絡(luò)結(jié)構(gòu)G0對應(yīng)網(wǎng)絡(luò)社區(qū)集合C(G0)的每一個網(wǎng)絡(luò)社區(qū)中分別執(zhí)行刪除一條邊f(xié)的操作。
上述過程可以簡單表示為:
簡單來說,從時刻t0到時刻t0+T,隨著網(wǎng)絡(luò)結(jié)構(gòu)G0到網(wǎng)絡(luò)結(jié)構(gòu)GT的過渡,相應(yīng)的網(wǎng)絡(luò)社區(qū)通過DCDA算法從網(wǎng)絡(luò)社區(qū)集合C(G0)更新為網(wǎng)絡(luò)社區(qū)集合C(GT)。
ΔG0=(ΔV0,ΔE0),ΔV0為時間段T內(nèi)節(jié)點的變化集合,ΔE0為時間段T內(nèi)邊的變化集合。節(jié)點的變化包括節(jié)點的增加和節(jié)點的減少,邊的變化包括邊的增加和邊的減少。網(wǎng)絡(luò)結(jié)構(gòu)的拓撲變化可以是增加節(jié)點、減少節(jié)點、增加邊以及減少邊中的至少一種情況,而且增加的節(jié)點數(shù)目、減少的節(jié)點數(shù)目、增加的邊數(shù)目以及減少的邊數(shù)目可以是一個以上。當增加的節(jié)點數(shù)目、減少的節(jié)點數(shù)目、增加的邊數(shù)目以及減少的邊數(shù)目可以是一個以上時,分別重復(fù)上述的四種過程。
其中,子步驟S1021和子步驟S1022中,對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點的過程,根據(jù)執(zhí)行的至少一個過程的結(jié)果,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),具體包括:
(1)將ΔV0中增加的節(jié)點u增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,u為ΔV0中增加的所有節(jié)點中的任意一個;
(2)當節(jié)點u增加到網(wǎng)絡(luò)社區(qū)Ci(G0)后,若網(wǎng)絡(luò)社區(qū)Ci(G0)內(nèi)的邊、連接到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的邊均沒有增加,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;
(3)當節(jié)點u增加到網(wǎng)絡(luò)社區(qū)Ci(G0)后,且若網(wǎng)絡(luò)社區(qū)Ci(G0)連接到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)中的至少一個的邊同步增加,則當引力度BDin(u,Ci(GT))大于或等于引力度BDout(u,Ci(GT))時,將節(jié)點u增加到Ci(G0)中,以形成Ci(GT),當BDin(u,Ci(GT))小于BDout(u,Ci(GT))時,將節(jié)點u增加到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū),且Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量,其中,引力度BDin(u,Ci(GT))表示網(wǎng)絡(luò)社區(qū)Ci(GT)中除節(jié)點u之外的所有節(jié)點對節(jié)點u的引力大小,引力度BDout(u,Ci(GT))表示除網(wǎng)絡(luò)社區(qū)Ci(GT)之外的網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點對節(jié)點u的引力大?。?/p>
(4)當ΔV0中增加的所有節(jié)點的數(shù)量為一個以上時,返回上述的 (1),直到ΔV0中增加的所有節(jié)點分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點的過程。
在網(wǎng)絡(luò)中存在著很多不同的節(jié)點,節(jié)點彼此之間都存在一定的關(guān)系,如果兩個節(jié)點中,分別與該兩個節(jié)點連接的節(jié)點的數(shù)量相同或相近,通常認為這兩個節(jié)點之間的引力較小,否則,認為與一個節(jié)點連接的其它節(jié)點的數(shù)量較大的節(jié)點對與另一節(jié)點連接的其它節(jié)點的數(shù)量較小的節(jié)點有很大的引力。依此類推,在某一網(wǎng)絡(luò)中,某一網(wǎng)絡(luò)社區(qū)1中所有節(jié)點對某一節(jié)點1的引力之和有一個數(shù)值1,而網(wǎng)絡(luò)社區(qū)集合中除網(wǎng)絡(luò)社區(qū)1之外的其它網(wǎng)絡(luò)社區(qū)的所有節(jié)點對節(jié)點1的引力之和有另一個數(shù)值2,比較數(shù)值1和數(shù)值2的大小,如果數(shù)值1大于數(shù)值2,很顯然網(wǎng)絡(luò)社區(qū)1對節(jié)點1的引力大,節(jié)點1歸屬于網(wǎng)絡(luò)社區(qū)1,如果數(shù)值1小于數(shù)值2,很顯然網(wǎng)絡(luò)社區(qū)1對節(jié)點1的引力小于其它網(wǎng)絡(luò)社區(qū)對節(jié)點1的引力,節(jié)點1不歸屬于網(wǎng)絡(luò)社區(qū)1,如果數(shù)值1等于數(shù)值2,網(wǎng)絡(luò)社區(qū)1對節(jié)點1的引力等于其它網(wǎng)絡(luò)社區(qū)對節(jié)點1的引力,但是,其它網(wǎng)絡(luò)社區(qū)(其它網(wǎng)絡(luò)社區(qū)的數(shù)量大于等于2)合在一起的引力才等于網(wǎng)絡(luò)社區(qū)1的引力,總體來說,網(wǎng)絡(luò)社區(qū)1對節(jié)點1的引力還是大于其它各個網(wǎng)絡(luò)社區(qū)分別對節(jié)點1的引力,因此,節(jié)點1還是歸屬于網(wǎng)絡(luò)社區(qū)1。
上述過程以一個具體的例子來詳細說明,具體是:以圖1的網(wǎng)絡(luò)結(jié)構(gòu)為例,增加的節(jié)點為節(jié)點A和節(jié)點B。
首先將節(jié)點A增加到網(wǎng)絡(luò)社區(qū)1中,如果網(wǎng)絡(luò)社區(qū)1內(nèi)的邊、連接到其它網(wǎng)絡(luò)社區(qū)2、3、4的邊均沒有增加,說明節(jié)點A沒有對網(wǎng)絡(luò)社區(qū)1產(chǎn)生影響,節(jié)點A不應(yīng)該增加到網(wǎng)絡(luò)社區(qū)1中,網(wǎng)絡(luò)社區(qū)1的節(jié)點數(shù)量還是維持不變。然后將節(jié)點A加入其它網(wǎng)絡(luò)社區(qū)中,例如當節(jié)點A加入到網(wǎng)絡(luò)社區(qū)3時,網(wǎng)絡(luò)社區(qū)3與網(wǎng)絡(luò)社區(qū)1、2、4中的至少一個連接的邊同步增加,則當引力度BDin(A,Ci(GT))大于或等于引力度BDout(A,Ci(GT))時,將節(jié)點A增加到C3(G0)中,以形成C3(GT),并結(jié)束節(jié)點A增加到其它網(wǎng)絡(luò)社區(qū)的過程,當BDin(A,Ci(GT))小于BDout(A,Ci(GT))時,將節(jié)點A增加到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)(相當于重復(fù)上面的過程,以便具體確定節(jié)點A加入的網(wǎng)絡(luò)社區(qū)),說明節(jié)點A也不應(yīng)增 加到網(wǎng)絡(luò)社區(qū)3中,且C3(GT)中節(jié)點的數(shù)量為C3(G0)中節(jié)點的數(shù)量。
當節(jié)點A經(jīng)過上述步驟,確定歸屬網(wǎng)絡(luò)社區(qū)后,再對節(jié)點B同樣執(zhí)行上述過程,此處不再重復(fù)。
其中,引力度BDin(u,Ci(GT))和引力度BDout(u,Ci(GT))的大小分別為:
其中,表示在時刻t0+T下,與節(jié)點u連接的所有邊之和,表示節(jié)點u與Ci(GT)中所有節(jié)點可能連接的所有邊之和,表示節(jié)點u與網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點可能連接的所有邊之和。
其中,子步驟S1021和子步驟S1022中,對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔV0中減少的所有節(jié)點的過程,根據(jù)執(zhí)行的至少一個過程的結(jié)果,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),具體包括:
(11)在網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除ΔV0中減少的節(jié)點v,v為ΔV0中減少的所有節(jié)點中的任意一個;
(22)當節(jié)點v為單孤立節(jié)點,若從網(wǎng)絡(luò)社區(qū)Ci(G0)刪除節(jié)點v后對網(wǎng)絡(luò)結(jié)構(gòu)G0沒有產(chǎn)生變化,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;
單孤立節(jié)點是指與網(wǎng)絡(luò)中其它節(jié)點只有唯一的一條邊的連接關(guān)系的節(jié)點,當該節(jié)點刪除時,導(dǎo)致該節(jié)點唯一的邊也被刪除。刪除該節(jié)點對網(wǎng)絡(luò)結(jié)構(gòu)不產(chǎn)生影響,保持原有網(wǎng)絡(luò)社區(qū)結(jié)構(gòu),并更新當前網(wǎng)絡(luò)的規(guī)模。
(33)當節(jié)點v從網(wǎng)絡(luò)社區(qū)Ci(G0)刪除后,若與節(jié)點v連接的邊同步刪除,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT);
以圖1為例,如果與節(jié)點v連接的鄰居節(jié)點為節(jié)點6(原來歸屬網(wǎng)絡(luò) 社區(qū)2)和節(jié)點3(原來歸屬網(wǎng)絡(luò)社區(qū)1),那么此時需要重新確定節(jié)點6和節(jié)點3的所屬網(wǎng)絡(luò)社區(qū),具體方法可以按照上述的對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法。
(44)當ΔV0中減少的所有節(jié)點的數(shù)量為一個以上時,返回上述的(11),直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔV0中減少的所有節(jié)點,否則,結(jié)束對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔV0中減少的所有節(jié)點的過程。
其中,在上述的(33)中,更新與節(jié)點u連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)之后,還包括:
當更新與節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)之后,節(jié)點v的鄰居節(jié)點的鄰居節(jié)點產(chǎn)生網(wǎng)絡(luò)社區(qū)的變化時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與節(jié)點v連接的鄰居節(jié)點的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),直至G0中所有節(jié)點的所屬網(wǎng)絡(luò)社區(qū)不再發(fā)生變化。
例如,以圖1為例,如果與節(jié)點v連接的鄰居節(jié)點為節(jié)點6(原來歸屬網(wǎng)絡(luò)社區(qū)2)和節(jié)點3(原來歸屬網(wǎng)絡(luò)社區(qū)1),那么在按照上述的對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法重新確定節(jié)點6和節(jié)點3的所屬網(wǎng)絡(luò)社區(qū)后,發(fā)現(xiàn)節(jié)點6歸屬的網(wǎng)絡(luò)社區(qū)依然是網(wǎng)絡(luò)社區(qū)2,但是節(jié)點3歸屬的網(wǎng)絡(luò)社區(qū)卻變?yōu)榫W(wǎng)絡(luò)社區(qū)3,節(jié)點v的鄰居節(jié)點3的鄰居節(jié)點為節(jié)點1、4,此時需要按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,重新確定節(jié)點1、4的新的所屬網(wǎng)絡(luò),直到該網(wǎng)絡(luò)中所有節(jié)點的所屬網(wǎng)絡(luò)社區(qū)不再發(fā)生變化。
其中,子步驟S1021和子步驟S1022中,對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔE0中增加的所有邊的過程,根據(jù)執(zhí)行的至少一個過程的結(jié)果,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),具體包括:
(12)將ΔE0中增加的邊(x,y)增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,邊(x,y)為ΔE0中增加的所有邊中的任意一個,x,y分別表示邊(x,y)的兩個節(jié)點;
(13)當節(jié)點x,y屬于同一個網(wǎng)絡(luò)社區(qū)時,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;
當節(jié)點x,y屬于同一個網(wǎng)絡(luò)社區(qū)時,邊的增加并沒有對該網(wǎng)絡(luò)社區(qū)的結(jié)構(gòu)產(chǎn)生影響,反而增強了該網(wǎng)絡(luò)社區(qū)內(nèi)部結(jié)構(gòu)的緊密性。
(14)當節(jié)點x,y分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新節(jié)點x,y、與節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT);
當節(jié)點x,y分別屬于不同的網(wǎng)絡(luò)社區(qū)時,邊(x,y)增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,導(dǎo)致連接該邊的兩個節(jié)點x與y以及其相關(guān)鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)發(fā)生變化,因此,需要重新確定節(jié)點x,y、與節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),重新確定的方法按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法進行。
(15)當ΔE0中增加的所有邊的數(shù)量為一個以上時,返回上述的(12),直到ΔE0中增加的所有邊分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中。
其中,子步驟S1021和子步驟S1022中,對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行刪除ΔE0中減少的所有邊的過程,根據(jù)執(zhí)行的至少一個過程的結(jié)果,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),具體包括:
(22)在網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除ΔE0中減少的邊(a,b),邊(a,b)為ΔE0中減少的所有邊中的任意一個,a,b分別表示邊(a,b)的兩個節(jié)點;
(23)當節(jié)點a,b分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;
當節(jié)點a,b分別屬于不同的網(wǎng)絡(luò)社區(qū)時,通過對該邊的刪除,對節(jié)點a,b所屬的兩個不同網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)不產(chǎn)生影響,反而增強了各網(wǎng)絡(luò)社區(qū)內(nèi)部結(jié)構(gòu)的緊密性。
(24)當節(jié)點a,b屬于同一個網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新節(jié)點x,y、與節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT);
當節(jié)點a,b屬于同一個網(wǎng)絡(luò)社區(qū)時,對該邊(a,b)的刪除,導(dǎo)致節(jié)點a,b、與節(jié)點a,b連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)發(fā)生變化,因此,需要重新確定節(jié)點a,b、與節(jié)點a,b連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),重新確定的方法按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法進行,且直到所有節(jié)點的網(wǎng)絡(luò)社區(qū)沒有變化為止。
(25)當ΔE0中減少的所有邊的數(shù)量為一個以上時,返回上述的(22),直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔE0中減少的所有邊。
參見圖4,圖4是本發(fā)明網(wǎng)絡(luò)社區(qū)的發(fā)現(xiàn)裝置一實施方式的結(jié)構(gòu)示意圖,該實施方式的裝置可以執(zhí)行上述方法中的步驟,相關(guān)內(nèi)容的詳細說明請參見上述方法部分,在此不再贅敘。
該裝置包括:檢測模塊101和第一形成模塊102。
檢測模塊101用于在時間段T內(nèi)以預(yù)定周期檢測時刻t0的網(wǎng)絡(luò)結(jié)構(gòu)G0的拓撲變化ΔG0。
第一形成模塊102用于基于網(wǎng)絡(luò)結(jié)構(gòu)G0和拓撲變化ΔG0,形成在時刻t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT)。
本發(fā)明實施方式通過檢測前一時刻的網(wǎng)絡(luò)結(jié)構(gòu)的拓撲變化,在確定后一時刻網(wǎng)絡(luò)結(jié)構(gòu)的網(wǎng)絡(luò)社區(qū)時,充分利用該拓撲變化,通過這種方式,能夠有效辨別和監(jiān)測當前時刻下動態(tài)網(wǎng)絡(luò)中網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)的變化,并對當前時刻下的網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)進行更新。
參見圖5,該裝置還包括第二形成模塊103。
第二形成模塊103用于在時刻t0基于網(wǎng)絡(luò)結(jié)構(gòu)G0,形成網(wǎng)絡(luò)社區(qū)集合C(G0),其中,G0=(V0,E0),C(G0)=(C1(G0),C2(G0),......,Ck(G0)),V0為時刻t0的節(jié)點集合,E0為時刻t0的邊的集合,Ci(G0)為網(wǎng)絡(luò)社區(qū)集合C(G0)中任意一個網(wǎng)絡(luò)社區(qū),i的數(shù)值是從1至k,k為網(wǎng)絡(luò)結(jié)構(gòu)G0形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量;
進一步地,第二形成模塊103用于在時刻t0基于網(wǎng)絡(luò)結(jié)構(gòu)G0,通過模塊度最優(yōu)調(diào)整算法形成網(wǎng)絡(luò)社區(qū)集合C(G0)。
此時,第一形成模塊102包括:執(zhí)行單元1021和形成單元1022。
執(zhí)行單元1021用于對網(wǎng)絡(luò)社區(qū)Ci(G0)執(zhí)行增加ΔV0中增加的所有節(jié)點、刪除ΔV0中減少的所有節(jié)點、增加ΔE0中增加的所有邊以及刪除ΔE0中減少的所有邊四個過程中的至少一個過程,其中,ΔG0=(ΔV0,ΔE0),ΔV0為時間段T內(nèi)節(jié)點的變化集合,ΔE0為時間段T內(nèi)邊的變化集合;
形成單元1022用于根據(jù)執(zhí)行的至少一個過程的結(jié)果,形成在時刻 t0+T的網(wǎng)絡(luò)結(jié)構(gòu)GT的網(wǎng)絡(luò)社區(qū)集合C(GT),其中,GT=(VT,ET),C(GT)=(C1(GT),C2(GT),......,Cm(GT)),GT=G0∪ΔG0,VT為時刻t0+T的節(jié)點集合,ET為時刻t0+T的邊的集合,Ci(GT)為網(wǎng)絡(luò)社區(qū)集合C(GT)中任意一個網(wǎng)絡(luò)社區(qū),i的數(shù)值是從1至m,m為網(wǎng)絡(luò)結(jié)構(gòu)GT形成的不重疊的網(wǎng)絡(luò)社區(qū)的數(shù)量。
其中,執(zhí)行單元1021具體用于將ΔV0中增加的節(jié)點u增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,u為ΔV0中增加的所有節(jié)點中的任意一個;
此時,形成單元1022具體用于當節(jié)點u增加到網(wǎng)絡(luò)社區(qū)Ci(G0)后,若網(wǎng)絡(luò)社區(qū)Ci(G0)內(nèi)的邊、連接到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的邊均沒有增加,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;當節(jié)點u增加到網(wǎng)絡(luò)社區(qū)Ci(G0)后,且若網(wǎng)絡(luò)社區(qū)Ci(G0)連接到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)中的至少一個的邊同步增加,則當引力度BDin(u,Ci(GT))大于或等于引力度BDout(u,Ci(GT))時,將節(jié)點u增加到Ci(G0)中,以形成Ci(GT),當BDin(u,Ci(GT))小于BDout(u,Ci(GT))時,將節(jié)點u增加到網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū),且Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量,其中,引力度BDin(u,Ci(GT))表示網(wǎng)絡(luò)社區(qū)Ci(GT)中除節(jié)點u之外的所有節(jié)點對節(jié)點u的引力大小,引力度BDout(u,Ci(GT))表示除網(wǎng)絡(luò)社區(qū)Ci(GT)之外的網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點對節(jié)點u的引力大小。
當ΔV0中增加的所有節(jié)點的數(shù)量為一個以上時,返回執(zhí)行單元1021,直到ΔV0中增加的所有節(jié)點分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束執(zhí)行單元1021的操作。
其中,引力度BDin(u,Ci(GT))和引力度BDout(u,Ci(GT))的大小分別為:
其中,表示在時刻t0+T下,與節(jié)點u連接的所有邊之和,表 示節(jié)點u與Ci(GT)中所有節(jié)點可能連接的所有邊之和,表示節(jié)點u與網(wǎng)絡(luò)社區(qū)集合C(G0)中其他網(wǎng)絡(luò)社區(qū)的所有節(jié)點可能連接的所有邊之和。
其中,執(zhí)行單元1021具體用于在網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除ΔV0中減少的節(jié)點v,v為ΔV0中減少的所有節(jié)點中的任意一個。
此時,形成單元1022具體用于當節(jié)點v為單孤立節(jié)點,若從網(wǎng)絡(luò)社區(qū)Ci(G0)刪除節(jié)點v后對網(wǎng)絡(luò)結(jié)構(gòu)G0沒有產(chǎn)生變化,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;當節(jié)點v從網(wǎng)絡(luò)社區(qū)Ci(G0)刪除后,若與節(jié)點v連接的邊同步刪除,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT)。
當ΔV0中減少的所有節(jié)點的數(shù)量為一個以上時,返回執(zhí)行單元1021,直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔV0中減少的所有節(jié)點,否則,結(jié)束執(zhí)行單元1021的操作。
其中,形成單元1022還用于當更新與節(jié)點v連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū)之后,節(jié)點v的鄰居節(jié)點的鄰居節(jié)點產(chǎn)生網(wǎng)絡(luò)社區(qū)的變化時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,更新與節(jié)點v連接的鄰居節(jié)點的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),直至G0中所有節(jié)點的所屬網(wǎng)絡(luò)社區(qū)不再發(fā)生變化。
其中,執(zhí)行單元1021具體用于將ΔE0中增加的邊(x,y)增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,邊(x,y)為ΔE0中增加的所有邊中的任意一個,x,y分別表示邊(x,y)的兩個節(jié)點。
此時,形成單元1022具體用于當節(jié)點x,y屬于同一個網(wǎng)絡(luò)社區(qū)時,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;當節(jié)點x,y分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新節(jié)點x,y、與節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT)。
當ΔE0中增加的所有邊的數(shù)量為一個以上時,返回執(zhí)行單元1021,直到ΔE0中增加的所有邊分別增加到網(wǎng)絡(luò)社區(qū)Ci(G0)中,否則,結(jié)束執(zhí)行 單元1021的操作。
其中,執(zhí)行單元1021具體用于在網(wǎng)絡(luò)社區(qū)Ci(G0)中刪除ΔE0中減少的邊(a,b),邊(a,b)為ΔE0中減少的所有邊中的任意一個,a,b分別表示邊(a,b)的兩個節(jié)點。
形成單元1022具體用于當節(jié)點a,b分別屬于不同的網(wǎng)絡(luò)社區(qū)時,則Ci(GT)中節(jié)點的數(shù)量為Ci(G0)中節(jié)點的數(shù)量;當節(jié)點a,b屬于同一個網(wǎng)絡(luò)社區(qū)時,則按照對網(wǎng)絡(luò)社區(qū)執(zhí)行增加節(jié)點的方法,分別更新節(jié)點x,y、與節(jié)點x,y連接的鄰居節(jié)點的所屬網(wǎng)絡(luò)社區(qū),并進而形成網(wǎng)絡(luò)社區(qū)集合C(GT)。
當ΔE0中減少的所有邊的數(shù)量為一個以上時,返回執(zhí)行單元1021,直到在網(wǎng)絡(luò)社區(qū)Ci(G0)中分別刪除ΔE0中減少的所有邊,否則,結(jié)束執(zhí)行單元1021的操作。
以上所述僅為本發(fā)明的實施方式,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。