基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明屬于復(fù)雜網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體地說,涉及一種復(fù)雜網(wǎng)絡(luò)中多層次社區(qū)結(jié)構(gòu) 發(fā)現(xiàn)方法,可用于網(wǎng)絡(luò)功能分析和結(jié)構(gòu)可視化。
【背景技術(shù)】
[0002] 復(fù)雜網(wǎng)絡(luò)中的社區(qū)發(fā)現(xiàn)方法對于理解網(wǎng)絡(luò)的功能和可視化網(wǎng)絡(luò)的結(jié)構(gòu)等至關(guān)重 要。通常來說,一個社區(qū)是網(wǎng)絡(luò)中所有個體組成的集合的一個子集,該子集中的個體基于某 種屬性連接緊密,并和子集外的個體連接稀疏。
[0003] 經(jīng)對現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),大部分社區(qū)發(fā)現(xiàn)方法可以被分為啟發(fā)式方法和最 優(yōu)化方法。啟發(fā)式方法通?;谥庇^的觀察通過執(zhí)行一些啟發(fā)式規(guī)則來得到社區(qū)劃分,但 是這類方法通常缺乏對網(wǎng)絡(luò)全局社區(qū)結(jié)構(gòu)特征的精確描述。最優(yōu)化方法將社區(qū)發(fā)現(xiàn)問題 規(guī)劃為組合優(yōu)化問題,通過優(yōu)化描述社區(qū)某種性質(zhì)的目標(biāo)函數(shù)來發(fā)現(xiàn)社區(qū)結(jié)構(gòu)。傳統(tǒng)的方 法優(yōu)化單一的目標(biāo)函數(shù),只能獲得反應(yīng)單一社區(qū)特性的社區(qū)結(jié)構(gòu)。為了從多個角度刻畫社 區(qū)結(jié)構(gòu),Pizzuti 等人于 2012 年在〈〈IEEE Transactions on Evolutionary Computation)) 上發(fā)表文章 "A multiobjective genetic algorithm to find communities in complex networks",提出通過優(yōu)化多個目標(biāo)函數(shù)來一次性發(fā)現(xiàn)多種社區(qū)結(jié)構(gòu)。為了同時優(yōu)化網(wǎng)絡(luò) 上的兩個目標(biāo)函數(shù),Community Score (社區(qū)分?jǐn)?shù))和Community Fitness (社區(qū)健康度), Pizzuti等人擴(kuò)展設(shè)計了一種多目標(biāo)遺傳算法MOGA-Net。該方法從初始社區(qū)結(jié)構(gòu)種群開 始,對原有種群進(jìn)行交叉操作、變異操作等形成新的社區(qū)種群,根據(jù)兩個目標(biāo)函數(shù)在原有種 群和新種群中選擇優(yōu)秀的個體,組成新的子種群進(jìn)行下一代的進(jìn)化。經(jīng)過多輪進(jìn)化,種群中 的個體所代表的社區(qū)結(jié)構(gòu)將越來越符合兩個目標(biāo)函數(shù)定義的社區(qū)結(jié)構(gòu)。該方法的本質(zhì)基于 遺傳原理,具有較強的全局搜索能力,可以在社區(qū)劃分空間中快速定位到質(zhì)量較好的區(qū)域。 然而,此方法缺乏有效的局部搜索能力,很容易在搜索到最優(yōu)的社區(qū)結(jié)構(gòu)之前,從一個質(zhì)量 較好的區(qū)域跳到另一個區(qū)域。因此,該方法不利于有效的發(fā)現(xiàn)近似最優(yōu)的社區(qū)結(jié)構(gòu)。本發(fā) 明針對這一問題,在多目標(biāo)進(jìn)化社區(qū)發(fā)現(xiàn)方法中整合快速局部搜索過程,有效的發(fā)現(xiàn)復(fù)雜 網(wǎng)絡(luò)中多層次的社區(qū)結(jié)構(gòu)。
【發(fā)明內(nèi)容】
[0004] 為了解決多目標(biāo)社區(qū)發(fā)現(xiàn)方法局部搜索能力弱,無法有效發(fā)現(xiàn)最優(yōu)社區(qū)結(jié)構(gòu)的缺 點,本發(fā)明提供了一種復(fù)雜網(wǎng)絡(luò)中多層次社區(qū)結(jié)構(gòu)發(fā)現(xiàn)方法,并將多目標(biāo)進(jìn)化社區(qū)發(fā)現(xiàn)算 法和局部搜索方法有機(jī)的整合起來形成一個更有效準(zhǔn)確的多層次社區(qū)結(jié)構(gòu)發(fā)現(xiàn)方法。
[0005] 為解決上述技術(shù)問題,本發(fā)明的實施例提供一種基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn) 方法,包括如下步驟:
[0006] S1、建立待分析網(wǎng)絡(luò)的鄰接矩陣A,為網(wǎng)絡(luò)所有節(jié)點進(jìn)行連續(xù)編號,編號從1開始。 構(gòu)建正方形矩陣A ;矩陣中的元素 Au為1代表對應(yīng)的節(jié)點之間有邊相連,為0代表對應(yīng)的 節(jié)點之間不存在邊;
[0007] S2、構(gòu)建社區(qū)發(fā)現(xiàn)的兩個目標(biāo)函數(shù)IntraQ和InterQ,
[0008]
【主權(quán)項】
1. 一種基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法,其特征在于,包括如下步驟: 51、 建立待分析網(wǎng)絡(luò)的鄰接矩陣A,為網(wǎng)絡(luò)所有節(jié)點進(jìn)行連續(xù)編號,編號從1開始,構(gòu)建 正方形矩陣A ; 52、 構(gòu)建社區(qū)發(fā)現(xiàn)的兩個目標(biāo)函數(shù)IntraQ和InterQ, IntraQ = Ece jr ^ 其中,X是網(wǎng)絡(luò)的某種社區(qū)劃分,C是社區(qū)劃分中的某個社區(qū),1。表示社區(qū)C內(nèi)部的邊 的數(shù)量,m表示網(wǎng)絡(luò)總的邊數(shù); InterQ =I-Ec εχ(^)2 其中,k。表示社區(qū)C中節(jié)點總的度數(shù),節(jié)點的度數(shù)表示與節(jié)點鄰接的邊數(shù); 53、 初始化網(wǎng)絡(luò)社區(qū)劃分種群; 54、 全局搜索網(wǎng)絡(luò)社區(qū)劃分空間并更新社區(qū)劃分種群; 55、 局部搜索社區(qū)劃分空間并更新社區(qū)劃分種群; 56、 組合兩個局部搜索子種群,生成下一代種群Bg,設(shè)置種群代數(shù)g = g+Ι,如果g < Gmax,則返回步驟S4,否則進(jìn)行步驟S7 ; 57、 找出最終的社區(qū)劃分種群Bg中的所有非支配社區(qū)劃分,計算每個非支配社區(qū)劃分 的社區(qū)數(shù)和模塊度,根據(jù)社區(qū)數(shù)和模塊度分析多層次的社區(qū)劃分結(jié)構(gòu)。
2. 根據(jù)權(quán)利要求1所述的基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法,其特征在于,所述的 步驟S3,具體為: 531、 采用社區(qū)標(biāo)簽編碼法編碼社區(qū)劃分個體,即劃分個體有N個位置,其中N為網(wǎng)絡(luò)節(jié) 點總數(shù),每個位置對應(yīng)一個節(jié)點,每個位置處的取值表示其對應(yīng)節(jié)點的社區(qū)標(biāo)簽,具有相同 社區(qū)標(biāo)簽的所有節(jié)點屬于同一個社區(qū),設(shè)定種群大小S D,設(shè)定種群進(jìn)化迭代次數(shù)Gmax,初始 化種群代數(shù)g = 〇 ; 532、 生成Sd個相同的社區(qū)劃分,在每個社區(qū)劃分中隨機(jī)選取一部分節(jié)點,將其社區(qū)標(biāo) 簽賦予其所有相鄰的節(jié)點,從而隨機(jī)化每個社區(qū)劃分,生成S d個多樣的社區(qū)劃分作為初始 種群B。。
3. 根據(jù)權(quán)利要求1所述的基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法,其特征在于,所述的 步驟S4,具體為: 541、 根據(jù)非支配關(guān)系找出群體Bg中所有非支配個體,按擁擠距離降序選取前Sd個非支 配個體組成非支配種群,復(fù)制非支配種群生成外部非支配種群,用于保留該種群中的優(yōu)秀 個體; 542、 對非支配種群進(jìn)行交叉操作,從非支配種群中隨機(jī)選擇兩個社區(qū)劃分作為交叉操 作的父個體,隨機(jī)選擇一個節(jié)點,對兩個父個體進(jìn)行同樣的操作:找出一個父個體中所有和 該節(jié)點具有相同社區(qū)標(biāo)簽的個體,并將它們的社區(qū)標(biāo)簽賦予另一個個體中對應(yīng)的個體,兩 個父個體交叉生成兩個子個體,重復(fù)該過程所有新生成的子個體組成交叉社區(qū)劃分 種群; 543、 對交叉社區(qū)劃分種群進(jìn)行變異操作,對交叉社區(qū)劃分種群中的每個劃分進(jìn)行變 異,對劃分中的每個節(jié)點,以變異概率將其社區(qū)標(biāo)簽賦予其所有鄰居節(jié)點,生成新的變異個 體,所有新變異的個體和未變異的個體組成變異社區(qū)劃分種群。
4. 根據(jù)權(quán)利要求1所述的基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法,其特征在于,所述的 步驟S5,具體為: 551、 選擇外部非支配種群和變異社區(qū)劃分種群分別作為局部搜索的兩個初始種群,找 出每個初始種群中所有非支配個體分別形成局部搜索的非支配種群; 552、 為兩個非支配種群中的每個非支配劃分計算局部搜索方向向量,搜索方向向量 ω?為社區(qū)劃分個體在目標(biāo)函數(shù)空間中所在位置的近似法線向量,計算公式如下: 兵〒,π = t2 un -t2 UH +t\
UH -A UH,t /刀、別衣示社區(qū)劃分的兩個目標(biāo)函數(shù), X1和X2是X在目標(biāo)函數(shù)空間中兩個相鄰的社區(qū)劃分,該方向近似對應(yīng)目標(biāo)函數(shù)增長的梯度 方向; 553、 設(shè)定局部搜索最大迭代次數(shù)MI,為每個非支配社區(qū)劃分定義局部鄰域和鄰域,在 每個社區(qū)劃分的局部鄰域和鄰域中利用網(wǎng)絡(luò)結(jié)構(gòu)搜索新的更優(yōu)秀的社區(qū)劃分代替原來的 社區(qū)劃分,在兩個非支配種群上重復(fù)該過程MI次,形成兩個局部搜索子種群。
5. 根據(jù)權(quán)利要求1所述的基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法,其特征是,所述的步 驟S7,具體為:找出最終的社區(qū)劃分種群Bg中的所有非支配社區(qū)劃分,計算每個非支配社 區(qū)劃分的社區(qū)數(shù)和模塊度Q,計算公式如下:
其中,1。表示社區(qū)C內(nèi)部的邊的數(shù)量;1^表示社區(qū)C中節(jié)點總的度數(shù);m表示網(wǎng)絡(luò)總的 邊數(shù)。
【專利摘要】本發(fā)明公開了一種基于局部搜索的多目標(biāo)社區(qū)發(fā)現(xiàn)方法,可用于網(wǎng)絡(luò)功能分析和結(jié)構(gòu)可視化,設(shè)計了增長更快的局部搜索方向,基于網(wǎng)絡(luò)特點定義了局部鄰域和鄰域,采用計算目標(biāo)函數(shù)增量值的方法降低了局部搜索的時間復(fù)雜度。本發(fā)明將該局部搜索方法和傳統(tǒng)的進(jìn)化搜索方法有機(jī)的結(jié)合起來,能夠更加有效的分析多層次的社區(qū)結(jié)構(gòu)。
【IPC分類】G06F17-30
【公開號】CN104657442
【申請?zhí)枴緾N201510058654
【發(fā)明人】潘理, 吳鵬
【申請人】上海交通大學(xué)
【公開日】2015年5月27日
【申請日】2015年2月4日