一種動(dòng)態(tài)復(fù)雜網(wǎng)絡(luò)社區(qū)多目標(biāo)劃分方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)領(lǐng)域,涉及動(dòng)態(tài)網(wǎng)絡(luò)社區(qū)劃分方法,可用于進(jìn)行動(dòng)態(tài)復(fù)雜網(wǎng)絡(luò) 中的社區(qū)劃分。
【背景技術(shù)】
[0002] 關(guān)于復(fù)雜網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)是近年的前沿研究熱點(diǎn)。對(duì)復(fù)雜網(wǎng)絡(luò)的大量研究表示真 實(shí)的網(wǎng)絡(luò)存在社區(qū)結(jié)構(gòu)。社區(qū)內(nèi)節(jié)點(diǎn)的連接相對(duì)比較緊密而社團(tuán)間的節(jié)點(diǎn)之間的連接則相 對(duì)稀少。復(fù)雜網(wǎng)絡(luò)的社區(qū)發(fā)現(xiàn)和動(dòng)態(tài)網(wǎng)絡(luò)的社區(qū)演化問(wèn)題在其中作為重要的研究?jī)?nèi)容也有 著其艱巨的研究任務(wù)。
[0003] 專利[CN102768735B]公開(kāi)了一種基于免疫克隆多目標(biāo)優(yōu)化的網(wǎng)絡(luò)社區(qū)劃分方 法。該方法雖然解決了多目標(biāo)的網(wǎng)絡(luò)社區(qū)劃分方法,但是解決的是靜態(tài)網(wǎng)絡(luò)社區(qū)劃分的 問(wèn)題。論文[Mao-GuoGongetal.CommunityDetectioninDynamicSocialNetworks BasedonMulti-objectiveImmuneAlgorithm.((JOURNALOFCOMPUTERSCIENCEAND TECHNOLOGY》· 2012,第27卷(第3期),第455-467頁(yè)]雖然解決了動(dòng)態(tài)復(fù)雜網(wǎng)絡(luò)的問(wèn)題, 但是其采用的表達(dá)方式是基于遺傳算法的方法,在解碼時(shí)比較麻煩,其個(gè)體表示方法不夠 直觀。因此,采用直觀的表示方法,求解動(dòng)態(tài)復(fù)雜網(wǎng)絡(luò),并同時(shí)具有表達(dá)重疊和非重疊社區(qū) 能力的多目標(biāo)社區(qū)劃分方法,仍然是一個(gè)未解決的問(wèn)題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于針對(duì)上述現(xiàn)有技術(shù)的不足。提出一種基于基因表達(dá)式編程的多 目標(biāo)優(yōu)化的動(dòng)態(tài)網(wǎng)絡(luò)社區(qū)劃分方法,以提高對(duì)動(dòng)態(tài)社區(qū)的劃分的準(zhǔn)確性,及表達(dá)方式的直 觀性。
[0005] 本發(fā)明是一種動(dòng)態(tài)復(fù)雜網(wǎng)絡(luò)社區(qū)多目標(biāo)劃分方法,其特征在于,包括以下具體步 驟:
[0006] 第一步,從文件中讀入初始狀態(tài)下即t= 1時(shí)刻的網(wǎng)絡(luò)結(jié)構(gòu);將模塊度作為優(yōu)化的 第一個(gè)指標(biāo),產(chǎn)生一個(gè)網(wǎng)絡(luò)匕的初始聚類Cii1-丨(^,^廣^^^初始聚類中的每個(gè)^是聚 類中的第i個(gè)社區(qū);
[0007] 第二步,假設(shè)動(dòng)態(tài)網(wǎng)絡(luò)共有T個(gè)不同的時(shí)間節(jié)點(diǎn)。從文件中讀出t= 2,…,T時(shí)刻 的網(wǎng)絡(luò)圖結(jié)構(gòu),對(duì)于每個(gè)時(shí)間戳t時(shí)刻的網(wǎng)絡(luò)結(jié)構(gòu)同時(shí)優(yōu)化其模塊度和標(biāo)準(zhǔn)化互信息值, 具體的過(guò)程是:
[0008]S21:產(chǎn)生一組隨機(jī)線性的基因表達(dá)式編程個(gè)體,個(gè)體的頭部長(zhǎng)度不超過(guò)網(wǎng)絡(luò)圖結(jié) 構(gòu)中節(jié)點(diǎn)的個(gè)數(shù),尾部則是根據(jù)節(jié)點(diǎn)中所有的節(jié)點(diǎn)編號(hào)的一個(gè)隨機(jī)排列;S22 :將每個(gè)種群 中的個(gè)體表示為一個(gè)樹(shù)形結(jié)構(gòu),并將其轉(zhuǎn)化為若干個(gè)節(jié)點(diǎn)的劃分,產(chǎn)生對(duì)t時(shí)刻的網(wǎng)絡(luò)結(jié) 構(gòu)圖Gt中的k個(gè)連通分量的劃分= {Ci,q,…,其中CRt為t時(shí)刻的社區(qū)劃分的集 合,C丨為t時(shí)刻的第k個(gè)社區(qū);
[0009] S23:計(jì)算種群中每一個(gè)個(gè)體的模塊度和標(biāo)準(zhǔn)化互信息值,將這兩個(gè)值作為個(gè)體的 兩個(gè)適應(yīng)度值;
[0010] S24:采用基于非支配排序的帶有精英策略的多目標(biāo)優(yōu)化算法對(duì)個(gè)體根據(jù)其非支 配排列給予每個(gè)個(gè)體一個(gè)排列并根據(jù)其排列對(duì)其進(jìn)行排序,并產(chǎn)生下一代種群;
[0011] S25,重復(fù)以上操作步驟S21到步驟S41,直到達(dá)到設(shè)定的代數(shù)500代;
[0012] 第三步,對(duì)于第二步所得到的種群的所有個(gè)體,比較種群中個(gè)體的模塊度,返回具 有最高模塊度的Pareto前沿的解集合= {(:?,0,···,<匕得到第t個(gè)時(shí)間戳下的最佳社 區(qū)劃分結(jié)果;
[0013] 第四步,對(duì)每一個(gè)時(shí)間戳的取值t= 2, "·,Τ,重復(fù)以上操作步驟二和步驟三,直到 所有的時(shí)間戳均獲得必要的劃分,即t=Τ。
[0014] 進(jìn)一步,所述第三步中,基因表達(dá)式編程個(gè)體的函數(shù)集F= {U}是一個(gè)并運(yùn) 算,終結(jié)符取的是節(jié)點(diǎn)的標(biāo)簽,節(jié)點(diǎn)的標(biāo)簽由整數(shù)表示,有η個(gè)節(jié)點(diǎn)的終結(jié)符即為T= {0,1,· · ·,η_1} 〇
[0015] 所述的基因表達(dá)式編程中運(yùn)算符的并運(yùn)算U作為一個(gè)二元運(yùn)算符,可以有二個(gè)孩 子節(jié)點(diǎn),其孩子節(jié)點(diǎn)可以是并運(yùn)算U,也可以是終結(jié)符;終結(jié)符沒(méi)有孩子節(jié)點(diǎn);即對(duì)于一個(gè) 根節(jié)點(diǎn)是并運(yùn)算U的基因而言,其孩子可以是并運(yùn)算U,可以是終結(jié)符即網(wǎng)絡(luò)中的節(jié)點(diǎn)標(biāo) 簽,對(duì)于并運(yùn)算U的節(jié)點(diǎn)而言,其兩個(gè)孩子分支可以遞歸地使用本規(guī)則,對(duì)于終結(jié)符而言, 該分支終止。
[0016] 兩個(gè)并運(yùn)算U之間的節(jié)點(diǎn)屬于前一個(gè)并運(yùn)算所包含的社區(qū);其中對(duì)于非重疊社區(qū) 的社區(qū)劃分時(shí),網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都必須要出現(xiàn)且僅出現(xiàn)一次在染色體個(gè)體中,每個(gè)基因 本身不含重復(fù)的節(jié)點(diǎn),基因和基因的元素集合之間不能有交集。對(duì)于重疊社區(qū)挖掘,所述的 染色體個(gè)體中的每個(gè)基因編號(hào)可以出現(xiàn)多次,這意味著一個(gè)節(jié)點(diǎn)允許包含在多個(gè)社區(qū)中; 即允許出現(xiàn)重疊社區(qū)的情況。
[0017] 多個(gè)連續(xù)的U可以簡(jiǎn)化為一個(gè)U。
[0018] 步驟S24中使用基于非支配排序的帶有精英策略的多目標(biāo)優(yōu)化算法時(shí),在快速非 支配排序中各個(gè)目標(biāo)函數(shù)的值的計(jì)算可以并行執(zhí)行以此來(lái)縮短執(zhí)行時(shí)間;該方法在是現(xiàn)實(shí) 采用并發(fā)容器來(lái)作為緩存,可以發(fā)現(xiàn)在計(jì)算的過(guò)程中會(huì)有很多重復(fù)的計(jì)算操作,引入緩存 可以大量減少重復(fù)計(jì)算提高效率,以空間換時(shí)間,可提高計(jì)算的效率。
【附圖說(shuō)明】
[0019] 圖1為本發(fā)明的流程圖;
[0020] 圖2為本發(fā)明的基因表達(dá)式編程樹(shù)形結(jié)構(gòu);
[0021] 圖3為用本發(fā)明的社區(qū)劃分結(jié)果示例; 具體實(shí)施方案
[0022] 本發(fā)明是一種動(dòng)態(tài)復(fù)雜網(wǎng)絡(luò)社區(qū)多目標(biāo)劃分方法,包括以下具體步驟:
[0023] 第一步,從文件中讀入初始狀態(tài)下即t= 1時(shí)刻的網(wǎng)絡(luò)結(jié)構(gòu)。將模塊度作為優(yōu)化 的第一個(gè)指標(biāo),產(chǎn)生一個(gè)網(wǎng)絡(luò)匕的初始聚類01={(:11,0,一,6丨 1初始聚類中的每個(gè)(::1是 聚類中的第i個(gè)社區(qū)。
[0024] 第二步,假設(shè)動(dòng)態(tài)網(wǎng)絡(luò)共有T個(gè)不同的時(shí)間節(jié)點(diǎn)。從文件中讀出t= 2,…,T時(shí)刻 的網(wǎng)絡(luò)圖結(jié)構(gòu),對(duì)于每個(gè)時(shí)間戳t時(shí)刻的網(wǎng)絡(luò)結(jié)構(gòu)同時(shí)優(yōu)化其模塊度和標(biāo)準(zhǔn)化互信息值, 具體的過(guò)程是:
[0025]S21:產(chǎn)生一組隨機(jī)線性的基因表達(dá)式編程個(gè)體,個(gè)體的頭部長(zhǎng)度不超過(guò)網(wǎng)絡(luò)圖結(jié) 構(gòu)中節(jié)點(diǎn)的個(gè)數(shù),尾部則是根據(jù)節(jié)點(diǎn)中所有的節(jié)點(diǎn)編號(hào)的一個(gè)隨機(jī)排列。
[0026]S22:將每個(gè)種群中的個(gè)體表示為一個(gè)樹(shù)形結(jié)構(gòu),并將其轉(zhuǎn)化為若干個(gè)節(jié)點(diǎn)的劃 分,產(chǎn)生對(duì)t時(shí)刻的網(wǎng)絡(luò)結(jié)構(gòu)圖Gt中的k個(gè)連通分量的劃分C# =Κ?,0,···,€^,其中CRt為t時(shí)刻的社區(qū)劃分的集合,^為t時(shí)刻的第k個(gè)社區(qū);
[0027]S23:計(jì)算種群中每一個(gè)個(gè)體的模塊度和標(biāo)準(zhǔn)化互信息值,將這兩個(gè)值作為個(gè)體的 兩個(gè)適應(yīng)度值。
[0028]S24:采用基于非支配排序的帶有精英策略的多目標(biāo)優(yōu)化算法對(duì)個(gè)體根據(jù)其非支 配排列給予每個(gè)個(gè)體一個(gè)排列并根據(jù)其排列對(duì)其進(jìn)行排序,并產(chǎn)生下一代種群。
[