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