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