本發(fā)明屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域,更進(jìn)一步涉及數(shù)據(jù)挖掘領(lǐng)域的基于多目標(biāo)密母計算的網(wǎng)絡(luò)社區(qū)檢測方法,本發(fā)明可用于網(wǎng)絡(luò)的社區(qū)結(jié)構(gòu)檢測及分析。
背景技術(shù):網(wǎng)絡(luò)是表示現(xiàn)實世界許多系統(tǒng)中客體間相互關(guān)系的有效形式。如協(xié)作網(wǎng)、萬維網(wǎng)、生物網(wǎng)、通信網(wǎng)絡(luò)、運(yùn)輸網(wǎng)絡(luò)、社會網(wǎng)絡(luò)等,這些系統(tǒng)都可以用復(fù)雜網(wǎng)絡(luò)來表示。研究復(fù)雜網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)對于分析網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、理解網(wǎng)絡(luò)的功能、發(fā)現(xiàn)網(wǎng)絡(luò)中的隱藏規(guī)律以及預(yù)測網(wǎng)絡(luò)的行為不僅具有十分重要的理論意義,而且具有廣泛的應(yīng)用前景,目前已被應(yīng)用于新陳代謝網(wǎng)絡(luò)分析、蛋白質(zhì)交互網(wǎng)絡(luò)分析等各種生物網(wǎng)絡(luò)分析以及Web社區(qū)挖掘等眾多領(lǐng)域。復(fù)雜網(wǎng)絡(luò)中,人們越來越多的關(guān)注社區(qū)結(jié)構(gòu)的檢測問題,通常對社區(qū)結(jié)構(gòu)定義是:相同社區(qū)內(nèi)點的連接邊數(shù)遠(yuǎn)遠(yuǎn)大于社區(qū)間點的連接邊數(shù)。目前,按照所采取的基本求解策略,可以歸納為兩大類:啟發(fā)式方法和基于優(yōu)化的方法。前者將復(fù)雜網(wǎng)絡(luò)社區(qū)檢測問題轉(zhuǎn)化為預(yù)定義啟發(fā)式規(guī)則的設(shè)計問題,后者將復(fù)雜網(wǎng)絡(luò)社區(qū)檢測問題轉(zhuǎn)化為優(yōu)化問題,通過最優(yōu)化預(yù)定義的目標(biāo)函數(shù)來計算復(fù)雜網(wǎng)絡(luò)的社區(qū)檢測問題。北京航空航天大學(xué)在其申請的專利“一種復(fù)雜網(wǎng)絡(luò)中的社區(qū)劃分方法”(專利申請?zhí)?00810224175.5,授權(quán)公告號CN101383748B)中公開了一種復(fù)雜網(wǎng)絡(luò)中的社區(qū)劃分方法。該方法以若干個不同的局部帶有影響力的節(jié)點為核心,并使節(jié)點的影響力從核心逐層向外均勻擴(kuò)散,最終形成了以影響力最大的節(jié)點為核心,逐層擴(kuò)展中節(jié)點的影響力不斷衰減,它們之間相互并聯(lián)形成一個局部區(qū)域,擴(kuò)展到停止的方法。該方法的不足是算法分辨率不高,只能得到單一劃分結(jié)果。西安電子科技大學(xué)在其申請的專利“基于密母計算的網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)檢測方法”(專利申請?zhí)?01110366154.9,公布號CN102521649A)中公開了一種基于密母計算的網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)檢測方法。該方法利用模塊度作為適應(yīng)度函數(shù),進(jìn)行選擇、交叉和變異等操作,使用爬山法進(jìn)行局部搜索,求模塊度的最大值以探測社區(qū)結(jié)構(gòu)的方法。該方法的不足是,檢測精度不高,容易陷入局部最優(yōu)等問題。
技術(shù)實現(xiàn)要素:本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種基于多目標(biāo)密母計算的網(wǎng)絡(luò)社區(qū)檢測方法。本發(fā)明結(jié)合了基于分解的多目標(biāo)進(jìn)化算法和模擬退火算法,采用了標(biāo)簽法作為網(wǎng)絡(luò)初始化方法,達(dá)到了網(wǎng)絡(luò)社區(qū)檢測的目的。為實現(xiàn)上述目的,本發(fā)明具體實現(xiàn)步驟包括如下:(1)建立待檢測網(wǎng)絡(luò)的鄰接矩陣:將待檢測網(wǎng)絡(luò)中節(jié)點按照1到N依次編號,N表示該網(wǎng)絡(luò)中節(jié)點的總個數(shù);將該網(wǎng)絡(luò)中節(jié)點i與節(jié)點j之間有連接的邊所對應(yīng)的鄰接矩陣中的元素aij設(shè)定為1;將該網(wǎng)絡(luò)中節(jié)點i與節(jié)點j之間無連接的邊所對應(yīng)的鄰接矩陣中的元素aij設(shè)定為0;獲得與該網(wǎng)絡(luò)所對應(yīng)的鄰接矩陣;(2)網(wǎng)絡(luò)種群初始化:2a)采用標(biāo)簽法,對鄰接矩陣進(jìn)行社區(qū)分類,得到每個節(jié)點賦予不同的標(biāo)簽值的網(wǎng)絡(luò)社區(qū)劃分結(jié)果,將社區(qū)劃分結(jié)果作為初始網(wǎng)絡(luò)種群中的個體;2b)按照下式,計算初始網(wǎng)絡(luò)種群中個體的目標(biāo)函數(shù)值:其中,f1(xj)表示初始網(wǎng)絡(luò)種群中第j個個體的第一目標(biāo)函數(shù),f2(xj)表示初始網(wǎng)絡(luò)種群中第j個個體的第二目標(biāo)函數(shù),Vi表示第j個個體中第i個網(wǎng)絡(luò)社區(qū)的節(jié)點集合,L(Vi,Vi)表示同一個網(wǎng)絡(luò)社區(qū)中的節(jié)點連接邊數(shù),表示第j個個體中第i個網(wǎng)絡(luò)社區(qū)以外的其它網(wǎng)絡(luò)社區(qū)的節(jié)點集合,表示第i個網(wǎng)絡(luò)社區(qū)與其它網(wǎng)絡(luò)社區(qū)間的節(jié)點連接邊數(shù),|Vi|表示第j個個體中第i個網(wǎng)絡(luò)社區(qū)中的節(jié)點數(shù);2c)按照下式,初始化網(wǎng)絡(luò)種群理想點:z=(z1,z2)T其中,z表示網(wǎng)絡(luò)種群理想點,z1表示從初始網(wǎng)絡(luò)中選擇的最小第一目標(biāo)函數(shù),z2表示從初始網(wǎng)絡(luò)中選擇的最小第二目標(biāo)函數(shù),T表示轉(zhuǎn)置操作;(3)產(chǎn)生新個體:從網(wǎng)絡(luò)種群中隨機(jī)選擇兩個個體,對這兩個個體進(jìn)行交叉操作和變異操作,產(chǎn)生一個新個體;(4)更新網(wǎng)絡(luò)種群4a)比較新個體的目標(biāo)函數(shù)值和網(wǎng)絡(luò)種群中個體的目標(biāo)函數(shù)值,將其中目標(biāo)函數(shù)值小的個體作為更新后的網(wǎng)絡(luò)種群理想點;4b)按照下式,計算新個體的切比雪夫值和網(wǎng)絡(luò)種群中個體的切比雪夫值:其中,g表示新個體和網(wǎng)絡(luò)種群中個體的切比雪夫值,λi表示網(wǎng)絡(luò)種群中個體的第i個權(quán)重向量,x表示網(wǎng)絡(luò)種群中個體,fi(x)表示網(wǎng)絡(luò)種群中個體的第i個目標(biāo)函數(shù),zi表示網(wǎng)絡(luò)種群中第i個理想點,max表示數(shù)學(xué)最大符號;4c)比較新個體的切比雪夫值和網(wǎng)絡(luò)種群中個體的切比雪夫值,將二者中切比雪夫值小的個體,作為更新后的網(wǎng)絡(luò)種群中的個體;(5)局部搜索網(wǎng)絡(luò)種群:采用模擬退火算法,對種群進(jìn)行局部搜索,得到新的種群;(6)判斷迭代是否達(dá)到200次,若未達(dá)到,則執(zhí)行步驟(3),否則,執(zhí)行步驟(7):(7)按照模塊度計算公式,計算網(wǎng)絡(luò)種群中每個個體的模塊度值:(8)檢測出網(wǎng)絡(luò)劃分后的社區(qū):選擇網(wǎng)絡(luò)種群中個體模塊度值中最大的個體,將該最大個體作為最終的網(wǎng)絡(luò)社區(qū)劃分結(jié)果,這些劃分就是所要檢測出的網(wǎng)絡(luò)中的社區(qū)。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點:第一,本發(fā)明采用標(biāo)簽法初始化網(wǎng)絡(luò)種群,快速產(chǎn)生了具有一定精度和較強(qiáng)多樣性的初始網(wǎng)絡(luò)種群。而且克服了傳統(tǒng)的初始化方法存在的初始精度不高、容易產(chǎn)生唯一劃分等問題,使得本發(fā)明提高了搜索效率,加快了收斂速度。第二,本發(fā)明結(jié)合了基于分解的多目標(biāo)進(jìn)化算法和模擬退火算法,提高了本發(fā)明的局部尋優(yōu)能力,并避免了陷入局部最優(yōu),增加了本發(fā)明的分辨率,能夠發(fā)現(xiàn)網(wǎng)絡(luò)社區(qū)的層次結(jié)構(gòu)。附圖說明圖1為本發(fā)明的流程圖;圖2為本發(fā)明與多目標(biāo)進(jìn)化算法的網(wǎng)絡(luò)社區(qū)檢測算法的檢測結(jié)果比較圖;圖3為本發(fā)明使用的空手道俱樂部網(wǎng)絡(luò)的拓?fù)鋱D;圖4為本發(fā)明得到的空手道俱樂部網(wǎng)絡(luò)社區(qū)劃分的層次結(jié)構(gòu)圖。具體實施方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步的描述。參照附圖1,本發(fā)明的步驟如下。步驟1,建立待檢測網(wǎng)絡(luò)的鄰接矩陣。將待檢測網(wǎng)絡(luò)中節(jié)點按照1到N依次編號,N表示該網(wǎng)絡(luò)中節(jié)點的總個數(shù);將該網(wǎng)絡(luò)中節(jié)點i與節(jié)點j之間有連接的邊所對應(yīng)的鄰接矩陣中的元素aij設(shè)定為1;將該網(wǎng)絡(luò)中節(jié)點i與節(jié)點j之間無連接的邊所對應(yīng)的鄰接矩陣中的元素aij設(shè)定為0;獲得與該網(wǎng)絡(luò)所對應(yīng)的鄰接矩陣。步驟2,網(wǎng)絡(luò)種群初始化。采用標(biāo)簽法,對鄰接矩陣進(jìn)行社區(qū)分類,得到每個節(jié)點賦予不同的標(biāo)簽值的網(wǎng)絡(luò)社區(qū)劃分結(jié)果,將社區(qū)劃分結(jié)果作為初始網(wǎng)絡(luò)種群中的個體,組成種群大小為100的初始網(wǎng)絡(luò)種群;所述采用標(biāo)簽法的步驟如下:先將鄰接矩陣對應(yīng)的每個節(jié)點賦予不同的標(biāo)簽值,每一個標(biāo)簽代表一個社區(qū),再分別找到鄰接矩陣對應(yīng)的一個任意節(jié)點s以及與節(jié)點s有連接的所有節(jié)點的標(biāo)簽,得到具有相同標(biāo)簽節(jié)點的個數(shù),將相同標(biāo)簽節(jié)點個數(shù)最多的標(biāo)簽設(shè)定為r(s)max,用r(s)max更新節(jié)點s的標(biāo)簽,采用第二步的方法,依次更新鄰接矩陣中對應(yīng)的所有節(jié)點的標(biāo)簽,最后判斷鄰接矩陣對應(yīng)所有節(jié)點標(biāo)簽的更新5次是否達(dá)到,若未達(dá)到,則返回第二步,否則,輸出網(wǎng)絡(luò)社區(qū)的劃分結(jié)果;按照下式,計算初始網(wǎng)絡(luò)種群中個體的目標(biāo)函數(shù)值:其中,f1(xj)表示初始網(wǎng)絡(luò)種群中第j個個體的第一目標(biāo)函數(shù),f2(xj)表示初始網(wǎng)絡(luò)種群中第j個個體的第二目標(biāo)函數(shù),Vi表示第j個個體中第i個網(wǎng)絡(luò)社區(qū)的節(jié)點集合,L(Vi,Vi)表示同一個網(wǎng)絡(luò)社區(qū)中的節(jié)點連接邊數(shù),表示第j個個體中第i個網(wǎng)絡(luò)社區(qū)以外的其它網(wǎng)絡(luò)社區(qū)的節(jié)點集合,表示第i個網(wǎng)絡(luò)社區(qū)與其它網(wǎng)絡(luò)社區(qū)間的節(jié)點連接邊數(shù),|Vi|表示第j個個體中第i個網(wǎng)絡(luò)社區(qū)中的節(jié)點數(shù);按照下式,初始化網(wǎng)絡(luò)種群理想點:z=(z1,z2)T其中,z表示網(wǎng)絡(luò)種群理想點,z1表示從初始網(wǎng)絡(luò)中選擇的最小第一目標(biāo)函數(shù),z2表示從初始網(wǎng)絡(luò)中選擇的最小第二目標(biāo)函數(shù),T表示轉(zhuǎn)置操作。步驟3,產(chǎn)生新個體。從網(wǎng)絡(luò)種群中隨機(jī)選擇兩個個體,對這兩個個體進(jìn)行交叉操作和變異操作,產(chǎn)生一個新個體;交叉操作的步驟如下:從網(wǎng)絡(luò)種群中隨機(jī)選取兩個個體,再按照下式,進(jìn)行單項交叉操作:其中,表示網(wǎng)絡(luò)種群中個體xl中節(jié)點j更新時所對應(yīng)的標(biāo)簽號,xk和xl分別表示網(wǎng)絡(luò)種群中隨機(jī)選取的兩個個體,r(i)表示網(wǎng)絡(luò)種群中個體xk中隨機(jī)選取的一個節(jié)點i的標(biāo)簽,表示數(shù)學(xué)任意符號,j表示網(wǎng)絡(luò)種群中個體xk中標(biāo)簽為r(i)的節(jié)點,∈表示數(shù)學(xué)屬于符號,|表示數(shù)學(xué)條件符號,表示節(jié)點j的選取條件;最后對網(wǎng)絡(luò)種群中隨機(jī)選取的兩個個體進(jìn)行單項交叉操作,產(chǎn)生一個新個體;變異操作的步驟如下:在交叉操作產(chǎn)生的個體中隨機(jī)選擇一個節(jié)點i,獲取該節(jié)點的標(biāo)簽r(i),得到與該節(jié)點有連接的所有節(jié)點,對這些節(jié)點分配[0,1]的概率,當(dāng)上述節(jié)點的概率大于變異概率0.9時,更新該節(jié)點的標(biāo)簽為r(i),產(chǎn)生一個新個體。步驟4,更新網(wǎng)絡(luò)種群。比較新個體的目標(biāo)函數(shù)值和網(wǎng)絡(luò)種群中個體的目標(biāo)函數(shù)值,將目標(biāo)函數(shù)值小的個體作為更新后的網(wǎng)絡(luò)種群理想點;比較新個體的切比雪夫值和網(wǎng)絡(luò)種群中個體的切比雪夫值,將二者中切比雪夫值小的個體,作為更新后的網(wǎng)絡(luò)種群中的個體;按照下式,計算新個體的切比雪夫值和網(wǎng)絡(luò)種群中個體的切比雪夫值:其中,g表示新個體和網(wǎng)絡(luò)種群中個體的切比雪夫值,λi表示網(wǎng)絡(luò)種群中個體的第i個權(quán)重向量,x表示網(wǎng)絡(luò)種群中個體,fi(x)表示網(wǎng)絡(luò)種群中個體的第i個目標(biāo)函數(shù),zi表示網(wǎng)絡(luò)種群中第i個理想點,max表示數(shù)學(xué)最大符號。步驟5,局部搜索網(wǎng)絡(luò)種群。若種群中非支配解數(shù)量少于種群數(shù)量的一半時,采用模擬退火算法,對種群進(jìn)行局部搜索,得到新的種群,否則進(jìn)行下一步;模擬退火方法的步驟如下:設(shè)置當(dāng)前溫度為100,設(shè)置終止溫度為0.9,采用標(biāo)簽法生成一個新個體,計算新個體和網(wǎng)絡(luò)種群中個體的切比雪夫值,如果新個體的切比雪夫值小于網(wǎng)絡(luò)種群中個體的切比雪夫值,將新個體作為更新后的網(wǎng)絡(luò)種群中的個體,否則,若符合模擬退火概率,將新個體作為更新后的網(wǎng)絡(luò)種群中的個體,若不符合模擬退火概率,則不更新網(wǎng)絡(luò)種群中的個體;模擬退火概率的公式如下:rand(0,1)]]>其中,g*表示新個體的切比雪夫值,g表示網(wǎng)絡(luò)種群中個體的切比雪夫值,T表示當(dāng)前溫度,rand(0,1)表示區(qū)間(0,1)之間的任意隨機(jī)數(shù),exp表示數(shù)學(xué)自然常數(shù)符號;降低當(dāng)前溫度,降溫速率為0.72,重復(fù)以上操作,直到當(dāng)前溫度小于終止溫度時結(jié)束局部搜索操作。步驟6,判斷是否達(dá)到迭代次數(shù)。判斷迭代是否達(dá)到200次,若未達(dá)到,則執(zhí)行步驟3,否則,執(zhí)行步驟7。步驟7,計算網(wǎng)絡(luò)種群中每個個體的模塊度值。模塊度的計算公式如下:其中,Q表示網(wǎng)絡(luò)種群中個體的模塊度值,k表示網(wǎng)絡(luò)種群中個體對應(yīng)網(wǎng)絡(luò)劃分的社區(qū)個數(shù),ls表示第s個社區(qū)內(nèi)節(jié)點間連接邊的邊數(shù),m表示網(wǎng)絡(luò)種群中個體對應(yīng)網(wǎng)絡(luò)中所有節(jié)點間連接邊的總邊數(shù),ds表示第s個社區(qū)中節(jié)點度的總和。步驟8,檢測出網(wǎng)絡(luò)劃分后的社區(qū)。選擇網(wǎng)絡(luò)種群中個體模塊度值最大的個體,將該最大個體作為最終的網(wǎng)絡(luò)社區(qū)劃分結(jié)果,這些劃分就是所要檢測出的網(wǎng)絡(luò)中的社區(qū)。本發(fā)明的效果可通過以下仿真進(jìn)一步說明:1.仿真條件:在CPU為IntelCore22.3GHz、內(nèi)存2G、WindowsXP系統(tǒng)上使用Matlab2008a進(jìn)行仿真。2.仿真內(nèi)容:分別選取電腦合成網(wǎng)絡(luò)和現(xiàn)實世界網(wǎng)絡(luò)作為實驗對象,其真實網(wǎng)絡(luò)社區(qū)結(jié)構(gòu)劃分已知。使用歸一化互信息NMI作為相似性度量,用來衡量仿真檢測的網(wǎng)絡(luò)劃分結(jié)果與真實網(wǎng)絡(luò)劃分之間的相似度,其值在0到1之間,越接近于1表明兩個網(wǎng)絡(luò)劃分越相似,也就是仿真檢測的網(wǎng)絡(luò)劃分準(zhǔn)確性越高。在電腦合成網(wǎng)絡(luò)仿真中使用Lancichinetti提出的基準(zhǔn)測試網(wǎng)絡(luò),該網(wǎng)絡(luò)包含128個節(jié)點,4個社區(qū),每個社區(qū)32個節(jié)點,每個節(jié)點平均度為16。每個節(jié)點與社區(qū)內(nèi)部節(jié)點的連接比例為1-u,每個節(jié)點與社區(qū)外部節(jié)點連接的比例為u,u為混合參數(shù)。我們生成u從0到0.5變化的11個不同的電腦合成網(wǎng)絡(luò)進(jìn)行仿真實驗,u越大,表明網(wǎng)絡(luò)的社區(qū)結(jié)構(gòu)越模糊,越難以檢測出真實的網(wǎng)絡(luò)劃分。參照附圖2,圖2中標(biāo)有圓圈的曲線表示本發(fā)明仿真結(jié)果繪制的曲線,標(biāo)有加號的曲線表示基于分解的多目標(biāo)進(jìn)化算法的網(wǎng)絡(luò)社區(qū)檢測算法仿真結(jié)果繪制的曲線,標(biāo)有星號的曲線表示多目標(biāo)遺傳算法的網(wǎng)絡(luò)社區(qū)檢測算法仿真結(jié)果繪制的曲線。圖2中的橫坐標(biāo)表示混合參數(shù)u從0到0.5變化的11個不同的值,縱坐標(biāo)表示從0到1的NMI值。由本發(fā)明和現(xiàn)有技術(shù)的兩種算法對11個不同的電腦合成網(wǎng)絡(luò)獨立進(jìn)行10次仿真,得到平均NMI值,從圖2可以看出,當(dāng)u≤0.4時,本發(fā)明得到的NMI值為1,也就是說檢測出了真實的網(wǎng)絡(luò)劃分,基于分解的多目標(biāo)進(jìn)化算法解決網(wǎng)絡(luò)中的社區(qū)檢測算法對于u>0.2的網(wǎng)絡(luò)就檢測不出真實的劃分了,而多目標(biāo)遺傳算法解決網(wǎng)絡(luò)中的社區(qū)檢測算法對于u>0.1的網(wǎng)絡(luò)就很難檢測出真實的劃分了,從圖中可以看出本發(fā)明有很高的分辨率。在對現(xiàn)實世界網(wǎng)絡(luò)仿真中使用空手道俱樂部網(wǎng)絡(luò)作為實驗對象,空手道俱樂部網(wǎng)絡(luò)包含34個節(jié)點,78條邊,2個社區(qū)。參照附圖3,圖3為空手道俱樂部網(wǎng)絡(luò)的拓?fù)鋱D,圖3中的圓圈表示空手道俱樂部的成員,圓圈中的數(shù)字表示拓?fù)鋱D中{1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34}對應(yīng)的節(jié)點,圖3中的連線表示成員之間有聯(lián)系。參照附圖4,本發(fā)明對空手道俱樂部網(wǎng)絡(luò)進(jìn)行仿真,在圖4(a)中,本發(fā)明將網(wǎng)絡(luò)劃分成兩個社區(qū),方形表示第一個社區(qū),包括節(jié)點{1、2、3、4、5、6、7、8、11、12、13、14、17、18、20、22},圓形表示第二個社區(qū),包括節(jié)點{9、10、15、16、19、21、23、24、25、26、27、28、29、30、31、32、33、34}。在圖4(b)中,本發(fā)明將第一個社區(qū)又劃分成兩個小社區(qū),三角形表示又劃分出的小社區(qū),包括節(jié)點{5、6、7、11、17}。從圖4(c)可以看出,本發(fā)明將第二個社區(qū)也劃分成兩個小社區(qū),五邊形表示劃分出的小社區(qū),包括節(jié)點{25、26、29、32}。由此可以看出空手道俱樂部網(wǎng)絡(luò)具有的層次結(jié)構(gòu)。綜上所述,本發(fā)明采用標(biāo)簽法初始化網(wǎng)絡(luò),結(jié)合多目標(biāo)進(jìn)化算法和模擬退火算法的優(yōu)勢,提高了本發(fā)明的局部尋優(yōu)能力,避免了陷入局部最優(yōu),能夠發(fā)現(xiàn)網(wǎng)絡(luò)的層次結(jié)構(gòu),并較傳統(tǒng)的多目標(biāo)社區(qū)結(jié)構(gòu)檢測方法分辨率更高。