本發(fā)明屬于網(wǎng)絡(luò)劃分領(lǐng)域,更進(jìn)一步涉及一種網(wǎng)絡(luò)社區(qū)劃分方法,可用于社區(qū)檢測(cè)。
背景技術(shù):
:在現(xiàn)代生活中,幾乎處處都有網(wǎng)絡(luò)結(jié)構(gòu)的存在,并且大多數(shù)的復(fù)雜系統(tǒng)都是以網(wǎng)絡(luò)的形式呈現(xiàn)出來,比如新陳代謝網(wǎng)、因特網(wǎng)、電子郵件網(wǎng)以及親戚朋友網(wǎng)等。對(duì)復(fù)雜網(wǎng)絡(luò)的定性和定量特征的研究,有助于揭示復(fù)雜網(wǎng)絡(luò)模型表示下的不同復(fù)雜系統(tǒng)中普遍存在的一般規(guī)律,在生物科學(xué)、社會(huì)科學(xué)等諸多學(xué)科中具有重要意義。網(wǎng)絡(luò)中由不同性質(zhì)、類型的節(jié)點(diǎn)組成的關(guān)系豐富的結(jié)構(gòu)稱為社區(qū)。社區(qū)內(nèi)部關(guān)系稠密,而不同社區(qū)節(jié)點(diǎn)之間關(guān)系稀疏的社區(qū)結(jié)構(gòu)是復(fù)雜網(wǎng)絡(luò)的特征之一。社區(qū)檢測(cè)方法的研究因其有助于理解網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)動(dòng)力學(xué)行為而具有極其重要的意義。人們提出了很多方法來對(duì)網(wǎng)絡(luò)進(jìn)行社區(qū)的劃分,其中研究熱點(diǎn)之一為基于社區(qū)融合策略的網(wǎng)絡(luò)社區(qū)劃分方法。社區(qū)融合方法主要分為以下基本步驟:首先,將網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)視為一個(gè)獨(dú)立的社區(qū);然后,計(jì)算每對(duì)社區(qū)融合后可以得到的目標(biāo)函數(shù)值,通常為局部模塊度函數(shù);最后,通過比較上一步得到的目標(biāo)函數(shù)值,判斷是否將對(duì)應(yīng)的兩個(gè)社區(qū)進(jìn)行融合。通過若干次循環(huán)迭代,獲得社區(qū)劃分結(jié)果。這種方法由于目標(biāo)函數(shù)本身存在的分辨率問題,使得劃分的結(jié)果容易陷入局部最優(yōu),效率低下。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)的不足,提出一種基于核節(jié)點(diǎn)和社區(qū)融合策略的網(wǎng)絡(luò)社區(qū)劃分方法,以改善目標(biāo)函數(shù)分辨率,減少陷入局部最優(yōu)的情況,提高社區(qū)劃分效率。為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案包括如下:(1)讀入一幅網(wǎng)絡(luò)圖S,并生成網(wǎng)絡(luò)圖S對(duì)應(yīng)的鄰接矩陣A;(2)根據(jù)鄰接矩陣A計(jì)算網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)度,并根據(jù)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)度查找網(wǎng)絡(luò)核節(jié)點(diǎn)集合C;(3)賦給網(wǎng)絡(luò)中第i個(gè)節(jié)點(diǎn)一個(gè)唯一的標(biāo)簽i,i∈{1,2,...,n},n表示網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)目,計(jì)算網(wǎng)絡(luò)核節(jié)點(diǎn)集合C中每個(gè)核節(jié)點(diǎn)與其所有鄰居節(jié)點(diǎn)的相似度函數(shù)值F,選出該函數(shù)值F大于等于給定閾值Ft=1所對(duì)應(yīng)的鄰居節(jié)點(diǎn),并將選出的鄰居節(jié)點(diǎn)的標(biāo)簽更新為與其連接的核節(jié)點(diǎn)的標(biāo)簽,得到更新的網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合f′={f1′,f2′,...,fi′,...,fn′},其中fi′表示網(wǎng)絡(luò)中第i個(gè)節(jié)點(diǎn)的標(biāo)簽;(4)將網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合f′={f1′,f2′,...,fi′,...,fn′}中相同標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn)組成一個(gè)社區(qū),得到當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(1,1)={f1(1,1),f2(1,1),...,fu(1,1),...,fh(1)(1,1)},并記錄每個(gè)社區(qū)中包含的節(jié)點(diǎn),其中,fu(1,1)表示當(dāng)前網(wǎng)絡(luò)中第u個(gè)社區(qū)的標(biāo)簽,u∈{1,2,...,h(1)},h(1)表示當(dāng)前網(wǎng)絡(luò)中的社區(qū)數(shù)目;(5)基于改進(jìn)模塊密度增量ΔD對(duì)當(dāng)前網(wǎng)絡(luò)中的社區(qū)進(jìn)行迭代融合:5a)初始化循環(huán)次數(shù)g=1;5b)統(tǒng)計(jì)當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,1)={f1(g,1),f2(g,1),...,fu(g,1),...,fh(g)(g,1)}中每個(gè)社區(qū)與外界的連接數(shù)目lo(g,1)={lo1(g,1),lo2(g,1),...,lou(g,1),...,loh(g)(g,1)},其中fu(g,1)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)時(shí)的標(biāo)簽,lou(g,1)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)時(shí)與外界的連接數(shù)目,u∈{1,2,...,h(g)},h(g)表示網(wǎng)絡(luò)中第g次循環(huán)時(shí)的社區(qū)數(shù)目;5c)將當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,1)中的社區(qū)按與外界的連接數(shù)目lo(g,1)降序排列,得到一個(gè)h(g)行2列的矩陣M(g);5d)初始化社區(qū)融合迭代次數(shù)t=1;5e)分別統(tǒng)計(jì)當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,t)中每個(gè)社區(qū)的節(jié)點(diǎn)度之和d(g,t)、社區(qū)內(nèi)節(jié)點(diǎn)間的連接數(shù)目li(g,t)、社區(qū)與外界的連接數(shù)目lo(g,t)、社區(qū)u與其鄰居社區(qū)v之間的連接數(shù)目luv(g,t),其中:f(g,t)={f1(g,t),f2(g,t),...,fu(g,t),...,fh(g)(g,t)},fu(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)的標(biāo)簽,d(g,t)={d1(g,t),d2(g,t),...,du(g,t),...,dh(g)(g,t)},du(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)的節(jié)點(diǎn)度之和,li(g,t)={li1(g,t),li2(g,t),...,liu(g,t),...,lih(g)(g,t)},liu(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)社區(qū)內(nèi)節(jié)點(diǎn)間的連接數(shù)目,lo(g,t)={lo1(g,t),lo2(g,t),...,lou(g,t),...,loh(g)(g,t)},lou(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)與外界的連接數(shù)目,luv(g,t)={luv1(g,t),luv2(g,t),...,luvk(g,t)(g,t)},luv(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)與其鄰居社區(qū)v之間在第g次循環(huán)第t次迭代時(shí)的連接數(shù)目,k(g,t)表示網(wǎng)絡(luò)中第g次循環(huán)第t次迭代時(shí)相互連接的社區(qū)對(duì)的數(shù)目;5f)計(jì)算當(dāng)前網(wǎng)絡(luò)中的社區(qū)u與其鄰居社區(qū)v融合后所得的改進(jìn)模塊密度增量ΔDuv:ΔDuv=[liu-lou-lov+3luv]du+dv-[liu-loudu+liv-lovdv],]]>其中,liu表示社區(qū)u內(nèi)節(jié)點(diǎn)間的連接數(shù)目,lou表示社區(qū)u與外界的連接數(shù)目,lov表示社區(qū)v與外界的連接數(shù)目,luv表示社區(qū)u與v之間的連接數(shù)目,du表示社區(qū)u內(nèi)節(jié)點(diǎn)的節(jié)點(diǎn)度之和,dv表示社區(qū)v內(nèi)節(jié)點(diǎn)的節(jié)點(diǎn)度之和,liv表示社區(qū)v內(nèi)節(jié)點(diǎn)間的連接數(shù)目;5g)根據(jù)改進(jìn)模塊密度增量ΔDuv得到矩陣M(g)中第t個(gè)社區(qū)p與其所有鄰居社區(qū)融合所得的p社區(qū)融合增量集合ΔDp,并找到集合ΔDp中的最大值對(duì)應(yīng)的鄰居社區(qū)q;5h)根據(jù)改進(jìn)模塊密度增量ΔDuv得到社區(qū)q與其所有鄰居社區(qū)融合所得的q社區(qū)融合增量集合ΔDq;5i)將p社區(qū)融合增量集合ΔDp與q社區(qū)融合增量集合ΔDq進(jìn)行比較:若ΔDp中的最大值大于等于ΔDq中的最大值,則將社區(qū)p與社區(qū)q融合,即將當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,t)中社區(qū)p的標(biāo)簽改為鄰居社區(qū)q的標(biāo)簽,否則,不融合;5j)給定最大的社區(qū)融合迭代次數(shù)tmax=h(g),判斷當(dāng)前社區(qū)融合迭代次數(shù)t是否達(dá)到最大的社區(qū)融合迭代次數(shù)tmax,若達(dá)到,則終止迭代,并執(zhí)行5k),否則,t=t+1,返回到5e)進(jìn)行下一次迭代;5k)給定最大循環(huán)次數(shù)gmax=100,判斷當(dāng)前循環(huán)次數(shù)g是否達(dá)到最大循環(huán)次數(shù)gmax,若達(dá)到,則終止循環(huán),并將最終網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(gmax,tmax)中的社區(qū)展開成最終網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合fz={fz1,fz2,...,fzi,...,fzn}輸出,其中:f(gmax,tmax)={f1(gmax,tmax),f2(gmax,tmax),...,fu(gmax,tmax),...,fh(gmax)(gmax,tmax)},fu(gmax,tmax)表示達(dá)到最大循環(huán)次數(shù)gmax和最大的社區(qū)融合迭代次數(shù)tmax時(shí)網(wǎng)絡(luò)社區(qū)標(biāo)簽集合中第u個(gè)社區(qū)的標(biāo)簽,u∈{1,2,...,h(gmax)},h(gmax)表示網(wǎng)絡(luò)中達(dá)到最大循環(huán)次數(shù)gmax時(shí)的社區(qū)數(shù)目,fzi表示達(dá)到最大循環(huán)次數(shù)gmax時(shí)網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合中第i個(gè)節(jié)點(diǎn)的標(biāo)簽,i∈{1,2,...,n},n表示網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)目,否則,g=g+1,返回到5b)進(jìn)行下一次循環(huán)。本發(fā)明與現(xiàn)有技術(shù)相比存在以下優(yōu)點(diǎn):1.本發(fā)明在社區(qū)融合方法之前,首先基于核節(jié)點(diǎn)和節(jié)點(diǎn)相似度對(duì)網(wǎng)絡(luò)進(jìn)行劃分,可以更有效地利用節(jié)點(diǎn)信息。2.本發(fā)明在社區(qū)融合過程中,提出一個(gè)改進(jìn)模塊密度增量函數(shù)作為目標(biāo)函數(shù),改善了模塊度函數(shù)本身存在的分辨率問題,減少了陷入局部最優(yōu)的情況,提高了社區(qū)劃分效率。附圖說明圖1為本發(fā)明使用的空手道實(shí)例圖;圖2為本發(fā)明的實(shí)現(xiàn)流程圖;圖3為本發(fā)明對(duì)圖1的最終劃分結(jié)果圖;圖4為現(xiàn)有社區(qū)融合算法對(duì)圖1的最終劃分結(jié)果圖。具體實(shí)施方式參照?qǐng)D1,本發(fā)明使用的空手道實(shí)例圖是由W.W.Zachary在研究大學(xué)空手道俱樂部成員之間的社區(qū)關(guān)系時(shí)構(gòu)建的網(wǎng)絡(luò)。該俱樂部網(wǎng)絡(luò)由于俱樂部主任和教練之間的分歧,分裂成兩個(gè)不相交的社團(tuán)??帐值谰W(wǎng)絡(luò)由34個(gè)俱樂部成員組成,作為網(wǎng)絡(luò)中的節(jié)點(diǎn),各個(gè)成員之間的連線有78條,作為網(wǎng)絡(luò)中節(jié)點(diǎn)間的連線。圖1中1到34分別表示空手道網(wǎng)絡(luò)中的節(jié)點(diǎn)編號(hào),菱形和圓形分別表示自然劃分的兩類社區(qū)。下面結(jié)合圖2對(duì)本發(fā)明的具體實(shí)施步驟做進(jìn)一步的詳細(xì)描述。參照?qǐng)D2,一種基于核節(jié)點(diǎn)和社區(qū)融合策略的網(wǎng)絡(luò)社區(qū)劃分方法,包括如下步驟:步驟1,讀入一幅網(wǎng)絡(luò)圖S,并生成網(wǎng)絡(luò)圖S對(duì)應(yīng)的鄰接矩陣A;鄰接矩陣A表示如下:A=a11...a1n.......aij.......an1...ann,]]>其中,aij表示鄰接矩陣A中的第i行第j列元素,i∈{1,2,...,n},表示網(wǎng)絡(luò)中的任意節(jié)點(diǎn),j∈{1,2,...,n},表示網(wǎng)絡(luò)中的任意節(jié)點(diǎn),n表示網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)目,在本發(fā)明的實(shí)施例中,讀入空手道實(shí)例圖,其網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)目n=34,生成空手道實(shí)例圖對(duì)應(yīng)的34×34的鄰接矩陣A如下:A=011....0101....0110....0000....0............aij...........000...00.]]>步驟2,根據(jù)鄰接矩陣A計(jì)算網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)度,并根據(jù)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)度查找網(wǎng)絡(luò)核節(jié)點(diǎn)集合C;2a)計(jì)算網(wǎng)絡(luò)中第i個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)度di:di=Σj=1...naij,]]>其中,aij表示鄰接矩陣A中的元素,n表示網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)目;2b)將網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)與其所有鄰居節(jié)點(diǎn)的節(jié)點(diǎn)度進(jìn)行比較,并將節(jié)點(diǎn)度高于其每一個(gè)鄰居節(jié)點(diǎn)的節(jié)點(diǎn)選為核節(jié)點(diǎn),選出的所有核節(jié)點(diǎn)組成核節(jié)點(diǎn)集合C。在本發(fā)明實(shí)施例中,空手道網(wǎng)絡(luò)中查找到的網(wǎng)絡(luò)核節(jié)點(diǎn)集合C由節(jié)點(diǎn)1和節(jié)點(diǎn)34組成。步驟3,計(jì)算網(wǎng)絡(luò)核節(jié)點(diǎn)集合C中每個(gè)核節(jié)點(diǎn)與其所有鄰居節(jié)點(diǎn)的相似度函數(shù)值F,并根據(jù)相似度函數(shù)值F更新的網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合f′={f1′,f2′,...,fi′,...,fn′},其中fi′表示網(wǎng)絡(luò)中第i個(gè)節(jié)點(diǎn)的標(biāo)簽,i∈{1,2,...,n},n表示網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)目。3a)賦給網(wǎng)絡(luò)中第i個(gè)節(jié)點(diǎn)一個(gè)唯一的標(biāo)簽i,i∈{1,2,...,n},n表示網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)目;3b)根據(jù)RA指數(shù)函數(shù)計(jì)算網(wǎng)絡(luò)核節(jié)點(diǎn)集合C中每個(gè)核節(jié)點(diǎn)與其所有鄰居節(jié)點(diǎn)的相似度函數(shù)值F:F=Σco∈N(i)∩N(j)1d(co),]]>其中,i、j分別表示網(wǎng)絡(luò)中的任意兩個(gè)不同的節(jié)點(diǎn),co表示第i個(gè)節(jié)點(diǎn)與第j個(gè)節(jié)點(diǎn)的共同鄰居,∈表示屬于符號(hào),N(i)表示第i個(gè)節(jié)點(diǎn)的鄰居集合,∩表示相交操作,N(j)表示第j個(gè)節(jié)點(diǎn)的鄰居集合,d(co)表示節(jié)點(diǎn)co的節(jié)點(diǎn)度;3c)給定閾值Ft=1,選出函數(shù)值F大于等于給定閾值Ft所對(duì)應(yīng)的鄰居節(jié)點(diǎn),并將選出的鄰居節(jié)點(diǎn)的標(biāo)簽更新為與其連接的核節(jié)點(diǎn)的標(biāo)簽,得到更新的網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合f′={f1′,f2′,...,fi′,...,fn′}。在本發(fā)明實(shí)施例中,得到更新的空手道網(wǎng)絡(luò)的節(jié)點(diǎn)標(biāo)簽集合f′={f1′,f2′,...,fi′,...,fn′},其中,節(jié)點(diǎn)2和節(jié)點(diǎn)4的標(biāo)簽更新為1,節(jié)點(diǎn)33的標(biāo)簽更新為34。步驟4,將網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合f′={f1′,f2′,...,fi′,...,fn′}中相同標(biāo)簽對(duì)應(yīng)的節(jié)點(diǎn)組成一個(gè)社區(qū),得到當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(1,1)={f1(1,1),f2(1,1),...,fu(1,1),...,fh(1)(1,1)},并記錄每個(gè)社區(qū)中包含的節(jié)點(diǎn),其中,fu(1,1)表示當(dāng)前網(wǎng)絡(luò)中第u個(gè)社區(qū)的標(biāo)簽,u∈{1,2,...,h(1)},h(1)表示當(dāng)前網(wǎng)絡(luò)中的社區(qū)數(shù)目;在本發(fā)明實(shí)施例中,空手道網(wǎng)絡(luò)中現(xiàn)有的社區(qū)數(shù)目h(1)為31。步驟5,基于改進(jìn)模塊密度增量ΔD對(duì)當(dāng)前網(wǎng)絡(luò)中的社區(qū)進(jìn)行迭代社區(qū)融合,得到最終的社區(qū)劃分結(jié)果。具體實(shí)現(xiàn)步驟如下:5a)初始化循環(huán)次數(shù)g=1;5b)統(tǒng)計(jì)當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,1)={f1(g,1),f2(g,1),...,fu(g,1),...,fh(g)(g,1)}中每個(gè)社區(qū)與外界的連接數(shù)目lo(g,1)={lo1(g,1),lo2(g,1),...,lou(g,1),...,loh(g)(g,1)},其中fu(g,1)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)時(shí)的標(biāo)簽,lou(g,1)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)時(shí)與外界的連接數(shù)目,u∈{1,2,...,h(g)},h(g)表示網(wǎng)絡(luò)中第g次循環(huán)時(shí)的社區(qū)數(shù)目;5c)將當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,1)中的社區(qū)按與外界的連接數(shù)目lo(g,1)降序排列,得到一個(gè)h(g)行2列的矩陣M(g);矩陣M(g)表示如下:M(g)=M11(g)...Mu1(g)...Mh(g)1(g)Mh(g)2(g),]]>其中,Mu1(g)表示矩陣M(g)中第u行第1列元素,u∈{1,2,...,h(g)},h(g)表示網(wǎng)絡(luò)中第g次循環(huán)時(shí)的社區(qū)數(shù)目;在本發(fā)明實(shí)施例中,第1次循環(huán)時(shí)空手道網(wǎng)絡(luò)對(duì)應(yīng)的31行2列的矩陣M(1)如下:M(1)=3127125......252101.]]>5d)初始化社區(qū)融合迭代次數(shù)t=1;5e)分別統(tǒng)計(jì)當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,t)中每個(gè)社區(qū)的節(jié)點(diǎn)度之和d(g,t)、社區(qū)內(nèi)節(jié)點(diǎn)間的連接數(shù)目li(g,t)、社區(qū)與外界的連接數(shù)目lo(g,t)、社區(qū)u與其鄰居社區(qū)v之間的連接數(shù)目luv(g,t),其中:f(g,t)={f1(g,t),f2(g,t),...,fu(g,t),...,fh(g)(g,t)},fu(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)的標(biāo)簽,d(g,t)={d1(g,t),d2(g,t),...,du(g,t),...,dh(g)(g,t)},du(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)的節(jié)點(diǎn)度之和,li(g,t)={li1(g,t),li2(g,t),...,liu(g,t),...,lih(g)(g,t)},liu(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)社區(qū)內(nèi)節(jié)點(diǎn)間的連接數(shù)目,lo(g,t)={lo1(g,t),lo2(g,t),...,lou(g,t),...,loh(g)(g,t)},lou(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)在第g次循環(huán)第t次迭代時(shí)與外界的連接數(shù)目,luv(g,t)={luv1(g,t),luv2(g,t),...,luvk(g,t)(g,t)},luv(g,t)表示網(wǎng)絡(luò)中第u個(gè)社區(qū)與其鄰居社區(qū)v之間在第g次循環(huán)第t次迭代時(shí)的連接數(shù)目,k(g,t)表示網(wǎng)絡(luò)中第g次循環(huán)第t次迭代時(shí)相互連接的社區(qū)對(duì)的數(shù)目;5f)計(jì)算當(dāng)前網(wǎng)絡(luò)中的社區(qū)u與其鄰居社區(qū)v融合后所得的改進(jìn)模塊密度增量ΔDuv:ΔDuv=[liu-lou-lov+3luv]du+dv-[liu-loudu+liv-lovdv],]]>其中,liu表示社區(qū)u內(nèi)節(jié)點(diǎn)間的連接數(shù)目,lou表示社區(qū)u與外界的連接數(shù)目,lov表示社區(qū)v與外界的連接數(shù)目,luv表示社區(qū)u與v之間的連接數(shù)目,du表示社區(qū)u內(nèi)節(jié)點(diǎn)的節(jié)點(diǎn)度之和,dv表示社區(qū)v內(nèi)節(jié)點(diǎn)的節(jié)點(diǎn)度之和,liv表示社區(qū)v內(nèi)節(jié)點(diǎn)間的連接數(shù)目;5g)根據(jù)改進(jìn)模塊密度增量ΔDuv得到矩陣M(g)中第t個(gè)社區(qū)p與其所有鄰居社區(qū)融合所得的p社區(qū)融合增量集合ΔDp,并找到集合ΔDp中的最大值對(duì)應(yīng)的鄰居社區(qū)q;在本發(fā)明實(shí)施例中,以空手道網(wǎng)絡(luò)中第1個(gè)社區(qū)31為例,根據(jù)改進(jìn)模塊密度增量ΔDuv得到社區(qū)31與其所有鄰居社區(qū)融合所得到的社區(qū)增量集合ΔD31,找到集合ΔD31中的最大值對(duì)應(yīng)的鄰居社區(qū)為社區(qū)13。5h)根據(jù)改進(jìn)模塊密度增量ΔDuv得到社區(qū)q與其所有鄰居社區(qū)融合所得的q社區(qū)融合增量集合ΔDq;在本發(fā)明實(shí)施例中,根據(jù)改進(jìn)模塊密度增量ΔDuv得到社區(qū)13與其所有鄰居社區(qū)融合所得的社區(qū)增量集合ΔD13。5i)將p社區(qū)融合增量集合ΔDp與q社區(qū)融合增量集合ΔDq進(jìn)行比較:若ΔDp中的最大值大于等于ΔDq中的最大值,則將社區(qū)p與社區(qū)q融合,即將當(dāng)前網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(g,t)中社區(qū)p的標(biāo)簽改為鄰居社區(qū)q的標(biāo)簽,否則,不融合;在本發(fā)明實(shí)施例中,集合ΔD31中的最大值大于等于集合ΔD13中的最大值,所以,將社區(qū)31與社區(qū)13融合,即將網(wǎng)絡(luò)社區(qū)劃分結(jié)果f(g,t)中社區(qū)31的標(biāo)簽改為社區(qū)13的標(biāo)簽。5j)給定最大的社區(qū)融合迭代次數(shù)tmax=h(g),判斷當(dāng)前社區(qū)融合迭代次數(shù)t是否達(dá)到最大的社區(qū)融合迭代次數(shù)tmax,若達(dá)到,則終止迭代,并執(zhí)行5k),否則,t=t+1,返回到5e)進(jìn)行下一次迭代;5k)給定最大循環(huán)次數(shù)gmax=100,判斷當(dāng)前循環(huán)次數(shù)g是否達(dá)到最大循環(huán)次數(shù)gmax,若達(dá)到,則終止循環(huán),并將最終網(wǎng)絡(luò)社區(qū)標(biāo)簽集合f(gmax,tmax)中的社區(qū)展開成最終網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合fz={fz1,fz2,...,fzi,...,fzn}輸出,其中:f(gmax,tmax)={f1(gmax,tmax),f2(gmax,tmax),...,fu(gmax,tmax),...,fh(gmax)(gmax,tmax)},fu(gmax,tmax)表示達(dá)到最大循環(huán)次數(shù)gmax和最大的社區(qū)融合迭代次數(shù)tmax時(shí)網(wǎng)絡(luò)社區(qū)標(biāo)簽集合中第u個(gè)社區(qū)的標(biāo)簽,u∈{1,2,...,h(gmax)},h(gmax)表示網(wǎng)絡(luò)中達(dá)到最大循環(huán)次數(shù)gmax時(shí)的社區(qū)數(shù)目,fzi表示達(dá)到最大循環(huán)次數(shù)gmax時(shí)網(wǎng)絡(luò)節(jié)點(diǎn)標(biāo)簽集合中第i個(gè)節(jié)點(diǎn)的標(biāo)簽,i∈{1,2,...,n},n表示網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)目,否則,g=g+1,返回到5b)進(jìn)行下一次循環(huán)。本發(fā)明的效果可以通過以下仿真實(shí)驗(yàn)進(jìn)一步說明:1.仿真條件:本發(fā)明采用MatlabR2014a軟件在配置為core22.4GHZ、內(nèi)存2G、WINDOWS7系統(tǒng)的計(jì)算機(jī)上進(jìn)行。2.仿真內(nèi)容與結(jié)果:仿真1,用本發(fā)明對(duì)圖1所示的空手道實(shí)例圖進(jìn)行社區(qū)劃分,結(jié)果如圖3。仿真2,用現(xiàn)有社區(qū)融合算法對(duì)空手道網(wǎng)絡(luò)圖進(jìn)行劃分,結(jié)果如圖4。這兩種方法均是把圖1劃分為三類,其中菱形,圓形以及三角形代表劃分后的三個(gè)類別。從圖3中可以看出,本發(fā)明與圖1中的自然形成的社區(qū)分類相同,將節(jié)點(diǎn)29正確劃分到了圓形代表的類別中。從圖4可以看出,現(xiàn)有社區(qū)融合算法與圖1中的自然形成的社區(qū)分類不同,將節(jié)點(diǎn)29錯(cuò)誤劃分到了菱形代表的類別中。對(duì)比圖3和圖4可以看出,本發(fā)明的社區(qū)劃分方法對(duì)網(wǎng)絡(luò)中社區(qū)的劃分更為準(zhǔn)確。綜上,本發(fā)明提出的基于核節(jié)點(diǎn)和社區(qū)融合策略的網(wǎng)絡(luò)社區(qū)劃分方法,首先對(duì)網(wǎng)絡(luò)基于核節(jié)點(diǎn)和節(jié)點(diǎn)相似度進(jìn)行劃分,并提出一種改進(jìn)模塊密度增量函數(shù)作為目標(biāo)函數(shù),進(jìn)行迭代社區(qū)融合,有效利用了節(jié)點(diǎn)信息,克服了現(xiàn)有社區(qū)融合算法容易陷入局部最優(yōu)的缺點(diǎn),改善了模塊度函數(shù)本身存在的分辨率問題。當(dāng)前第1頁1 2 3