CN102594909B - 基于共邻矩阵谱信息的多目标社区检测方法 - Google Patents
基于共邻矩阵谱信息的多目标社区检测方法 Download PDFInfo
- Publication number
- CN102594909B CN102594909B CN201210066846.6A CN201210066846A CN102594909B CN 102594909 B CN102594909 B CN 102594909B CN 201210066846 A CN201210066846 A CN 201210066846A CN 102594909 B CN102594909 B CN 102594909B
- Authority
- CN
- China
- Prior art keywords
- harmony
- community
- data base
- node
- parent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出了一种基于修正共邻矩阵谱信息的多目标社区检测方法,主要解决的是现有的社区检测方法分辨率低及对于大型网络时间复杂度高的问题。其实现步骤为:根据网络构造共邻矩阵并修正;提取修正共邻矩阵的谱信息;用谱信息初始化父代记忆库,求出父代记忆库的适应度;用和声搜索算法从父代记忆库中产生子代记忆库,并求出子代记忆库的适应度;合并父代和子代记忆库,对其进行非支配排序得到临时记忆库;对临时记忆库进行局部学习,得到更新的临时记忆库,从更新的临时记忆库中得到下次迭代的父代记忆库;如果达到最大迭代次数,取出父代记忆库中所有非支配解作为最终解集,否则继续迭代。本发明具有提高社区检测分辨率和降低时间复杂度的优点。
Description
技术领域
本发明属于复杂网络和多目标优化技术领域,涉及复杂网络中的数据挖掘技术、共邻矩阵的谱信息和进化计算中的多目标优化技术,用于复杂网络中的社区检测,能够同时发现网络的多尺度社区结构。
背景技术
以Internet为代表的信息技术的迅猛发展使人类社会大步迈进了网络时代。现实世界中的许多系统都可以用复杂网络的形式来描述,如社会系统中的人际关系网、科学家合作网络和流行病传播网络,生态系统中的神经元网、科技系统中的电子邮件网、因特网和万维网,电力系统中的大型电力网络等等。复杂网络理论主要研究的是看上去不相同的复杂网络之间的共性和处理它们的普遍方法。复杂网络已成为研究复杂系统的一种重要工具和多学科交叉研究领域。
在复杂网络的研究中,网络中的节点代表现实世界中复杂系统的独立个体,而网络中的边则代表独立个体之间按照某种规则而自然形成或人为构造的一种抽象的连接关系。大量的实验研究表明,复杂网络不仅具有“小世界特性”和“幂律度分布特性”外,而且还具有社区结构特性。社区结构特性指的是网络中属于同一社区的节点之间有很多边紧密相连,而属于不同社区的节点之间只有很少的边使它们之间的连接比较稀疏,而同一社区内的节点在复杂网络中有着近乎相同的作用,因此一个社区可以看做复杂网络中一个抽象的独立个体。由于复杂网络规模较大,结构复杂,研究起来比较复杂,这一特性的发现可以把复杂网络划分为较小的子网络分别研究它们的特性,从而使研究变得较为简单。
在大型复杂网络中自动搜寻或发现社区,具有重要的实用价值。如社会网络中的社区代表根据兴趣或背景而形成的真实的社会团体;引文网络中的社区代表针对同一主题的相关论文;万维网中的社区就是讨论相关主题的若干网站;而生物化学网络或者电子电路网络中的社区可以是某一类功能单元。发现这些网络中的社区有助于我们更加有效地理解和开发这些网络。
复杂网络社区结构发现是刻画和研究复杂系统的结构和行为的重要方法,随着社会学研究工作者 Girvan 和 Newman 以及其它学者的研究成果,使得复杂网络中的社区发现成为近几年复杂网络领域的一个研究热点并形成了复杂网络中一个重要的研究方向。
目前已经提出了很多社区检测方法,主要分为两类:启发式算法和优化方法。在启发式算法中,主要有基于图论的图分割法和层次聚类法,而在优化方法中,主要是构造一个目标函数,利用各种方法如进化算法对目标函数进行优化,在优化的过程中同时发现网络中潜在的社区结构。
图分割算法的核心就是二分,也就是说先把网络划分为两个最优的社区,然后再对这两个社区分别划分,依次反复,直到达到所要求的社区个数时停止。该算法主要包括基于图的Laplace矩阵特征向量的谱平分法和Kernighan-Lin算法简称KL算法,它们共有的缺点就是划分多个社区时也面临着必须事先知道网络中的社区数目,以及确定算法需要重复到哪一步停止。
层次聚类法是基于各个节点之间连接的相似性或者强度,把网络自然地划分为各个子网络的一种方法。根据加边还是去边,可以分为凝聚算法和分裂算法。凝聚算法的基本思想是基于网络中节点的某种相似性来进行聚类,每次合并相似度最大的节点,直到整个网络合并为一个社区;分裂算法中最经典是Girvan Newman算法简称GN算法,它是Girvan和Newman在2003年提出的一种基于边介数的社区发现算法。GN算法本身有明显的缺陷,首先,算法的复杂度比较高,因此仅仅适用于中等规模的网络;其次,在事先不知道社区数目的情况下,GN算法也无法确定要分解到哪一步终止。
为了解决对于一个给定的网络,究竟哪一种划分更合理,Newman等人提出了一种衡量网络划分质量好坏的评价标准—模块度。此后,基于模块度优化的社区划分方法相继出现,但利用模块度存在着分辨率限制的问题,也就是说网络中通过模块度优化并不能发现很小的社区。
和声搜索算法是一种新兴的智能优化算法。作为一类启发式搜索算法,已被成功应用于多目标优化领域,发展成为一个相对较热的研究方向——进化多目标优化。
此外,在优化方法中,也相继提出了很多目标,如为了解决模块度分辨率限制而提出的模块度密度、community scores、community fitness等,但这些方法基本上都是单目标方法,每次只能发现网络的一种社区结构,而且这些方法基本都是基于基因近邻或者是社区编号的编码方式,编码较长,对于大型复杂网络存在着时间复杂度高的问题,同时,也提出了很多多目标优化方法,如C. Pizzuti 在“A Multi-objective GeneticAlgorithm for Community Detection in Networks” (Proceedings of the 21st IEEE InternationalConference on Tools with Artificial Intelligence, pp.379-386, 2009)中提出了MOGA-Net算法,但是这些方法准确率较低,效果并不理想。
发明内容
本发明的目的在于针对以上算法的不足,提出一种基于共邻矩阵谱信息的多目标社区检测方法,以缩短编码长度,降低时间复杂度,提高检测准确率和分辨率。
实现本发明目的的技术方案是:提取修正后共邻矩阵的谱信息代表节点,设定社区的最大个数以决定和声的编码长度,采取基于中心的编码方式,利用自适应多目标和声搜索算法检测复杂网络中的多层次社区结构,具体步骤包括如下:
(1)根据网络的节点和边的信息,建立网络的N阶邻接矩阵A:若节点i和j之间有边相连,则Ai,j=1,否则Ai,j=0,N为网络中节点的个数;
(2)根据邻接矩阵A建立网络的共邻矩阵M,该M中的元素Mi,j为:Ai,k表示节点i和k之间的边的连接关系,如果节点i和k之间有边相连,则Ai,k=1,否则Ai,k=0,Aj,k表示节点j和k之间的边的连接关系,如果节点j和k之间有边相连,则Aj,k=1,否则Aj,k=0,k的取值为从1到N;
(3)将Mi,j更新为:Mi',j=(Mi,j+1)×Ai,j,对i和j分别从1取到N,得到由Mi',j构成的修正后的共邻矩阵M';
(4)根据修正后的共邻矩阵M'求出对角矩阵D及D的逆矩阵D-1;
(5)根据共邻矩阵M'和逆矩阵D-1求出标准矩阵:NO=D-1M',然后对标准矩阵NO进行特征值分解,求出特征值λ1,λ2,…,λN和对应的特征向量V1,V2,…,VN,对N个特征值降序排列为λ1'≥λ2'≥…≥λ'N,与这N个降序排列的特征值相对应的降序排列后的特征向量分别为V1',V2',…,VN',求出降序排列后的特征向量V2'的最大值和最小值分别为:a=max(V2'),b=min(V2');
(6)设定自适应多目标和声搜索算法的各个参数,初始化大小为S的父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)},t=0:每一个和声Hi(t),i=1,2,…,S包括标记部分和中心部分两个部分,标记部分为 均是0-1之间随机分布的随机数,中心部分为centcer1e,cennttere2,..r.,均是a-b之间随机分布的随机数,Kmax为设定的参数,表示社区的最大个数;
(7)确定父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)}中的每一个和声的社区中心,计算每一个和声中每一个节点到所有社区中心的距离,把所有节点划分到距离最近的那个社区中,得到每个和声的社区划分;
(8)根据得到的社区划分计算父代和声记忆库中每个和声的适应度;
(9)设t=t+1,求出当前迭代的和声保留概率、音调微调概率和带宽,用和声搜索的方式产生子代和声记忆库Hc(t);
(10)对子代和声记忆库Hc(t)执行步骤(7)-(8);
(11)合并父代和子代和声记忆库,并对其进行快速非支配排序,产生临时子代和声记忆库H'(t);
(12)对临时子代和声记忆库H'(t)进行局部学习,得到更新的临时子代和声记忆库H''(t);
(13)对更新的临时子代记忆库H''(t)进行快速非支配排序,选出前S个和声,将其作为父代和声记忆库Hp(t),对父代和声记忆库Hp(t)进行快速非支配排序,得到非支配和声;
(14)判断当前迭代次数是否满足最大迭代次数,如满足,执行步骤(15),否则返回步骤(9);
(15)取出父代和声记忆库Hp(t)中的非支配和声作为最终的解集;
(16)从最终的解集中找出共邻模块度最大的和声,将这个和声放入大小为1的和声记忆库中,作为父代和声记忆库,并执行步骤(7),得到对应的社区划分,作为最终的社区划分结果。
本发明与现有技术相比具有如下优点:
第一,本发明在社区划分的过程中采用了基于社区中心的混合编码方式,降低了时间复杂度,克服了现有的编码方式随着网络规模增大而时间复杂度增大的缺点,提高了社区划分的适用性。
第二,本发明在社区划分的过程中充分考虑了节点之间共同邻节点的信息,构造了共邻矩阵,并对共邻矩阵进行修正,使得修正后的共邻矩阵可以看作相似度矩阵,使修正共邻矩阵使相同社区内的节点之间的相似度更大,不同社区间的节点之间的相似度更小,提高了社区划分的准确性。
第三,本发明在社区划分的过程中利用修正共邻矩阵构造了修正模块度函数,并将其拆分为两个函数,采用多目标和声搜索方法对这两个目标进行优化,在优化的过程中,社区的个数和社区的大小能够自动生成,优化结束后能够得到复杂网络的多层次社区结构,提高了社区划分的分辨率。
第四,本发明在社区划分的过程中利用了局部学习的思想,克服了现有技术容易陷入局部最优状态的缺点,进一步提高了社区划分的准确性。
附图说明
图1是本发明的流程图;
图2是本发明中的和声编码图;
图3是本发明使用的Bottlenose Dolphins复杂网络结构及真实社区划分图;
图4是本发明具体实例人工合成复杂网络的测试结果曲线图;
图5是用本发明对Bottlenose Dolphins复杂网络测试的折中曲线图;
图6是对图5折中曲线图中不同社区个数解对应的社区划分结果图。
具体实施方法
参照附图1,本发明的具体实现步骤如下:
步骤1. 根据复杂网络建立修正共邻矩阵M,按如下步骤进行:
1.1)根据网络的节点和边的信息,建立网络的N阶邻接矩阵
若网络的节点i和网络的节点j之间有边相连,则Ai,j=1,否则Ai,j=0,i,j=1,2,…,N,N为网络中节点的个数;
1.2)根据邻接矩阵A建立网络的共邻矩阵:
Ai,k表示网络的节点i和网络的节点k之间的边的连接关系,如果网络的节点i和网络的节点k之间有边相连,则Ai,k=1,否则Ai,k=0,
Aj,k表示网络的节点j和网络的节点k之间的边的连接关系,如果网络的节点j和网络的节点k之间有边相连,则Aj,k=1,否则Aj,k=0;
1.3)将Mi,j更新为:Mi',j=(Mi,j+1)×Ai,j,i,j=1,2,…,N,得到由Mi',j构成的修正后的共邻矩阵
步骤2. 提取修正后的共邻矩阵M'的谱信息:
2.1)根据修正后的共邻矩阵M'求出对角矩阵D及D的逆矩阵D-1;
2.2)根据修正后共邻矩阵M'和逆矩阵D-1求出标准矩阵:NO=D-1M';
2.3)对标准矩阵NO进行特征值分解,求出特征值λ1,λ2,…,λN和对应的特征向量V1,V2,…,VN;
2.4)对N个特征值λ1,λ2,…,λN降序排列为λ1'≥λ2'≥…≥λ'N,调整与这N个降序排列的特征值λ1',λ2',…,λ'N相对应的降序排列后的特征向量分别为V1',V2',…,VN',降序排列后的特征向量V1',V2',…,VN'就是修正后共邻矩阵M'的谱信息,每个降序排列后的特征向量都用列表示,把所有降序排列后的特征向量按列堆叠构成了一个矩阵V'
V'中每一列代表一个降序排列后的特征向量,每一行则代表了一个节点,Vi',j表示第j个节点第i维的值,i,j=1,2,…,N,节点的维数为N。
步骤3.求出降序排列后的特征向量V2'的最大值和最小值分别为: a=max(V2'),b=min(V2')。
步骤4. 设定多目标和声搜索算法的各个参数:
设父代和声记忆库大小为S=20,局部学习的和声个数为L=4,最大迭代次数为T=400,程序运行次数为R=50,最大社区个数为Kmax=15,编码长度为2×Kmax,和声保留概率的最大值和最小值分别为HMCRmax=0.9、HMCRmin=0.5,音调微调概率的最大值和最小值分别为PARmax=0.5、PARmin=0.3,和声中标记部分的最大值和最小值分别为1、0,和声中标记部分带宽的最大值和最小值分别为BW1max=0.1、BW1min=0.05,和声中中心部分的最大值和最小值分别为a、b,和声中中心部分带宽的最大值和最小值分别为BW2max=(a-b)/50,BW2min=(a-b)/100。
步骤5.初始化父代和声记忆库:
按照附图2中所示和声的方式初始化大小为S的父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)},t=0,每一个和声Hi(t),i=1,2,…,S包括标记部分和中心部分两个部分,标记部分为flag1,flag2,...,均是0-1之间随机分布的随机数,中心部分为center1,center2,...,均是a-b之间随机分布的随机数,Kmax为设定的参数,表示社区的最大个数。
步骤6. 确定父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)}中的每一个和声的社区中心,得到每个和声的社区划分:
6.1)根据父代和声记忆库中每一个和声Hi(t)的标记部分h1(t)的值flagj判断对应的社区中心centerj是否被激活,如果flagj≥0.5,则对应的社区中心centerj被激活,否则不被激活,对flagj全部判断结束后假设有n个被激活的中心,其中,i=1,2,…,S,S表示父代和声记忆库的大小, j=1,2,…,Kmax,n∈[0,Kmax],Kmax表示社区的最大个数;
6.2)求出降序排列后的特征向量V2'中的每个值到所有被激活的中心的距离,并用V2'中距离被激活中心最近的值代替被激活中心,成为社区中心,因此社区中心是网络中的一个节点;
6.3)计算所有节点到n个社区中心的距离,按如下公式计算:
其中,Di,j表示第i个节点与第j个节点之间的距离,λk'表示第k个排序后的特征值,Vk',i为第i个排序后的特征向量第k位上的值,Vk',j为第j个排序后的特征向量第k位上的值,n是被激活中心的个数,i,j=1,2,…,N。
把所有节点划分到距离最近的那个社区中,得到每个和声的社区划分。
步骤7. 根据得到的社区划分计算父代和声记忆库中每个和声的适应度:
7.1)借鉴以邻接矩阵为基础的模块度的定义,修正共邻矩阵为基础的共邻模块度的定义为:Q(B)=Σc∈B[|N(c)|/n-(Σv∈cN(v)/(2n))2],
其中,B为所有的社区的组合,c为其中的一个社区,n为整个网络中各节点对之间修正共同邻节点的个数,|N(c)|为社区c中所有节点对之间的修正共同邻节点的个数的和,N(v)为节点v与网络中所有节点之间修正共同邻节点的个数的和;
7.2)对共邻模块度的公式进行拆分,用1减去该公式中的第一部分Σc∈B(|N(c)|/n)作为第一个目标函数,称作类内目标函数,表示为intra(B)=1-Σc∈B(|N(c)|/n),将该公式中的第二部分Σc∈B(Σv∈cN(v)/(2n))2作为第二个目标函数,称作类间目标函数,表示为inter(B)=Σc∈B(Σv∈cN(v)/(2n))2;
7.3)计算整个网络中各节点对之间修正共同邻节点的个数n,根据每个和声的社区划分,得到所有的社区B以及每个社区中的节点,分别统计每个社区中所有节点对之间的修正共同邻节点的个数的和|N(c)|和每个社区中每个节点v与网络中所有节点之间的修正共同邻节点的个数的和N(v),然后将计算结果代入以上两个目标函数,得到父代和声记忆库中每个和声的适应度。
步骤8.产生子代和声记忆库Hc(t):
现有的产生子代和声记忆库Hc(t)的算法有遗传算法、蚁群算法、鱼群算法、模拟退火算法,差分进化算法,和声搜索算法等进化算法,本实例采用和声搜索算法,其步骤如下:
8.1)设t=t+1,求出当前迭代的和声保留概率、音调微调概率和带宽,按如下公式计算:
和声保留概率:HMCR(t)=HMCRmax-(HMCRmax-HMCRmin)×t/T,
音调微调概率:PAR(t)=PARmin+(PARmax-PARmin)×t/T,
带宽:BW1(t)=BW1maxexp(ln(BW1min/BW1max)×t/T),
BW2(t)=BW2maxexp(ln(BW2min/BW2max)×t/T),
其中,HMCRmax、HMCRmin分别为和声保留概率的最大值和最小值, PARmax 、PARmin分别为音调微调概率的最大值和最小值,BW1max,BW1min分别为和声的标记部分的带宽的最大值和最小值,BW2max,BW2min分别为和声的中心部分的带宽的最大值和最小值,t为当前迭代数,T为最大迭代次数;
8.2) 产生一个新和声,对于新和声的标记部分,如果rand0<HMCR(t),新和声的标记部分的每一维上的值从父代和声记忆库中所有和声的这一维上的值中随机选择一个,如果rand1<PAR(t),新和声的标记部分的这一维上的值要再加上标记部分的BW1(t),否则不加,如果rand0≥HMCR(t),新和声的标记部分的每一维上的值在0-1之间随机产生,rand0和rand1均为在0-1之间随机产生的一个值;
8.3)对于新和声的中心部分,如果rand2<HMCR(t),新和声的中心部分的每一维上的值从父代和声记忆库中所有和声的这一维上的值中随机选择一个,如果rand3<PAR(t),新和声的中心部分的这一维上的值要再加上中心部分的BW2(t),否则不加,如果rand2≥HMCR(t),新和声的中心部分的每一维上的值在a-b之间随机产生,rand2和rand3均为在0-1之间随机产生的一个值;
8.4)按照步骤8.2)-8.3)的方式产生S个新和声,构成子代和声记忆库Hc(t),S为子代和声记忆库的大小。
步骤9.对子代和声记忆库Hc(t)执行步骤6和步骤7,计算子代和声记忆库Hc(t)中每个和声的适应度。
步骤10. 合并父代和声记忆库和子代和声记忆库,并对其进行快速非支配排序,产生临时子代和声记忆库H'(t)。
快速非支配排序的方法见K. Deb, A. Pratap, S. Agarwal, T. Meyarivan, “A Fast andElitist Multiovjective Genetic Algorithm: NSGAII ,” IEEE Transactions on EvolutionaryComputation, Vol.6, No.2, pp. 182-197, 2002。
步骤11. 对临时子代和声记忆库H'(t)进行局部学习,得到更新的临时子代和声记忆库H''(t):
11.1)从临时子代和声记忆库H'(t)中选出前20%个和声构成大小为L的局部和声记忆库X(t)={X1(t),X2(t),…,XL(t)};
11.2)在局部和声记忆库X(t)={X1(t),X2(t),…,XL(t)}的基础上用和声搜索的方式产生大小为L的新局部和声记忆库X'(t)={X1'(t),X'2(t),…,X'L(t)},对新局部和声记忆库执行步骤6和步骤7;
11.3)对每一个新和声Xi'(t)进行判断:如果新和声Xi'(t)能够支配临时子代记忆库H'(t)中所有的和声,则将新和声Xi'(t)加入到临时子代记忆库H'(t)中,否则不加入,对每一个新和声Xi'(t)都判断完成后得到更新的临时子代记忆库H''(t),其中,i=1,2,…,L,L为新局部和声记忆库的大小。
步骤12.对更新的临时子代记忆库H''(t)进行快速非支配排序,选出前S个和声,将其作为父代和声记忆库Hp(t),对父代和声记忆库Hp(t)进行快速非支配排序,得到非支配和声;
步骤13.判断当前迭代次数是否满足设定最大迭代次数,如满足,执行步骤11,否则返回步骤5,本实例最大迭代次数设定为T=400。
步骤14.取出父代和声记忆库Hp(t)中的非支配和声作为最终的解集,从最终的解集中找出模块度最大的和声,将这个和声放入大小为1的和声记忆库中,作为父代和声记忆库,执行步骤6,得到对应的社区划分,作为最终的社区划分结果。
本发明的实验效果可以通过以下实验来进一步说明:
1. 仿真条件:
本发明的仿真是在主频2.5GHZ的Pentium Dual-Core CPU E5200、内存2GB的硬件环境和MATLAB R2009a的软件环境下进行的。对本发明分别在人工合成复杂网络和四个真实复杂网络上进行仿真。
人工合成复杂网络中有128个节点,分为四个社区,每一个社区中有32个节点,每个节点的平均度为zin+zout=16,zin为节点与自身社区内的节点相连接的边的数目,zout为节点与其他社区内的节点相连接的边的数目,当zout较小时说明节点基本上都与自身社区内的节点相连接,因而社区结构比较清晰,而当zout较大时,因为节点与其他社区内的节点的连接较为频繁,所以社区结构比较模糊,在本实验中,分别对zout从0到8进行了测试,对每种类型的网络都产生6个复杂网络,求出准确率的平均值。
四个真实复杂网络来源于社区检测常用的数据库。其中的Bottlenose Dolphins网络的真实社区划分如图3,用于将本发明得到的社区划分结果与该图进行比较。
社区划分的准确率指标用模块度Q0和归一化互信息Normalized MutualInformation 来表示,模块度Q0定义为:
Q0(C)=Σc∈B[|E(c)/l-((Σv∈cd(v))/(2l))2]
其中,B为所有的社区的组合,c为其中的一个社区,l为整个网络中边的数目,|E(c)|为社区c中边的数目,d(v)为节点v的度。Q0的值越大,表示划分的准确率越高。
归一化互信息Normalized Mutual Information定义为:
其中,P,Q表示两个划分,W为混淆矩阵,元素Wi,j表示在P划分中的第i个社区内的节点也在Q划分中的第j个社区内的节点的个数,N为节点个数,Wi.为混淆矩阵第i行的和,W.j为混淆矩阵第j列的和,rP为P划分中社区的个数,rQ为Q划分中社区的个数,N为网络中节点的个数。计算NMI值时,将P看作网络的真实划分,Q看作得到的社区划分,则NMI的值越大,表示准确率越高。
2. 仿真内容:
仿真内容1:对本发明在人工合成复杂网络上进行R=50次实验,实验结果如图3所示。图4中横轴表示zout,即网络中的节点与非自身社区内的节点相连接的边的数目,纵轴表示每一个zout产生的6个网络的NMI值的平均值,带方框的曲线表示运用本发明得到的模块度最大的解的NMI值,带左三角的曲线表示运用MOGA-Net算法得到的模块度最大的解的NMI值,带星号的曲线表示用GN算法得到的模块度最大的解的NMI值。
由图4曲线可得,当zout=6时,GN算法和MOGA-Net算法的准确率分别为40%和81%,而本发明在zout=6时的准确率可以达到95%以上,而且在zout=7和zout=8时,本发明的准确率仍然比GN算法和MOGA-Net算法的准确率高。
仿真内容2:本发明在四个真实复杂网络上进行R=50次实验,实验结果如表1所示。
表1 三种方法在四个真实复杂网络上的实验结果
从四个真实复杂网络在表1中的实验结果可以看出,本发明得到的平均模块度和平均NMI值都大于MOGA-Net算法和GN算法得到的平均模块度和平均NMI值,由于GN算法是一种确定性算法,因此平均最优模块度的标准差和平均NMI值的标准差一定为0,不能参与对比,本发明得到的平均模块度的标准差和平均NMI值的标准差都小于MOGA-Net算法得到的平均模块度的标准差和平均NMI值的标准差,根据平均模块度和平均NMI值越大精度越高的原则,本发明提高了精度,根据平均模块度的标准差和平均NMI值的标准差越小方法越稳定的原则,本发明提高了稳定性,所以本发明的性能更好。
仿真内容3:本发明在Bottlenose Dolphins网络上进行R=50次实验,取最后一次实验来展示社区划分结果。在最后一次实验中,当达到最大迭代次数后,获取按照父代和声记忆库中每个和声的社区划分计算的父代和声记忆库中每个和声的两个目标函数的值,如图5。在图5中,横轴为类内目标函数,纵轴为类间目标函数,图中方框内的字母表示不同的解,数字表示这个解对应的的社区个数。
仿真内容4:取出图5中Bottlenose Dolphins网络的不同目标函数对应的社区划分,结果展示如图6。其中:
图6(a) 为划分的两个社区,与图4的真实社区划分相比,得到了正确的社区划分。
图6 (b) 为划分的3个社区,从图6 (b)可见,它把图6(a)中右边的社区划分成了两个社区,同时把节点40划分到左侧的社区中,在图6(a)的基础上显示出了层次结构。
图6 (c)为划分的4个社区,从图6 (c)可见,它把图6(b)中右上角的社区划分成了两个社区,在图6(b)的基础上显示出了层次结构。
图6(d)为划分的5个社区,从图6 (d)可见,它把图6(c)中左侧的社区划分成了两个社区,并对节点40、61、62进行了重新划分,在图6(c)的基础上显示出了层次结构。
图6(e)为划分的6个社区,从图6 (e)可见,它把图6(c)中左侧的社区划分成了两个社区,右下角的社区划分成了两个社区,将节点4、9、60单独划分为一个小型社区,在图6(c)的基础上显示出了层次结构。
图6(f)为划分的7个社区,从图6 (f)可见,它把图6(e)中右上角两个社区中的节点21、29、39、45、54、59提取出来,单独划分为一个社区,在图6(e)的基础上显示出了层次结构。
综上,运用本发明可以提高一个特定复杂网络社区划分的准确性和稳定性,而且可以得到不同层次的社区结构,提高社区划分的分辨率,有助于更好地理解复杂网络,并对复杂网络进行定性的分析。
Claims (5)
1.一种基于共邻矩阵谱信息的多目标社区检测方法,包括如下步骤:
(1)根据网络的节点和边的信息,建立网络的N阶邻接矩阵A:若节点i和j之间有边相连,则Ai,j=1,否则Ai,j=0,N为网络中节点的个数;
(2)根据邻接矩阵A建立网络的共邻矩阵M,该M中的元素Mi,j为: Ai,k表示节点i和k之间的边的连接关系,如果节点i和k之间有边相连,则Ai,k=1,否则Ai,k=0,Aj,k表示节点j和k之间的边的连接关系,如果节点j和k之间有边相连,则Aj,k=1,否则Aj,k=0,k的取值为从1到N;
(3)将Mi,j更新为:Mi',j=(Mi,j+1)×Ai,j,对i和j分别从1取到N,得到由Mi',j构成的修正后的共邻矩阵M';
(4)根据修正后的共邻矩阵M'求出对角矩阵D及D的逆矩阵D-1;
(5)根据共邻矩阵M'和逆矩阵D-1求出标准矩阵:NO=D-1M',然后对标准矩阵NO进行特征值分解,求出特征值λ1,λ2,…,λN和对应的特征向量V1,V2,…,VN,对N个特征值降序排列为λ1'≥λ2'≥…≥λ'N,与这N个降序排列的特征值相对应的降序排列后的特征向量分别为V1',V2',…,VN',每个降序排列后的特征向量都用列表示,把所有降序排列后的特征向量按列堆叠构成了一个矩阵V',那么V'中每一列代表一个降序排列后的特征向量,每一行则代表了一个节点,节点的维数为N,求出降序排列后的特征向量V2'的最大值和最小值分别为:a=max(V2'),b=min(V2');
(6)设定自适应多目标和声搜索算法的各个参数,初始化大小为S的父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)},t=0,每一个和声Hi(t),i=1,2,…,S包括标记部分和中心部分两个部分,标记部分为flag1,flag2,...,均是0-1之间随机分布的随机数,中心部分为 center1,center2,...,均是a-b之间随机分布的随机数,Kmax为设定的参数,表示社区的最大个数;
(7)确定父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)}中的每一个和声的社区中心,计算每一个和声中每一个节点到所有社区中心的距离,把所有节点划分到距离最近的那个社区中,得到每个和声的社区划分;
(8)根据得到的社区划分计算父代和声记忆库中每个和声的适应度;
(9)设t=t+1,求出当前迭代的和声保留概率、音调微调概率和带宽,用和声搜索算法产生子代和声记忆库Hc(t);
(10)对子代和声记忆库Hc(t)执行步骤(7)-(8);
(11)合并父代和声记忆库和子代和声记忆库,并对其进行快速非支配排序,产生临时子代和声记忆库H'(t);
(12)对临时子代和声记忆库H'(t)进行局部学习,得到更新的临时子代和声记忆库H''(t);
(13)对更新的临时子代和声记忆库H''(t)进行快速非支配排序,选出前S个和声,将其作为父代和声记忆库Hp(t),对父代和声记忆库Hp(t)进行快速非支配排序,得到非支配和声;
(14)判断当前迭代次数是否满足最大迭代次数,如满足,执行步骤(15),否则返回步骤(9);
(15)取出父代和声记忆库Hp(t)中的非支配和声作为最终的解集;
(16)从最终的解集中找出模块度最大的和声,将这个和声放入大小为1的和声记忆库中,作为父代和声记忆库,并执行步骤(7),得到对应的社区划分,作为最终的社区划分结果。
2.根据权利要求1所述的基于共邻矩阵谱信息的多目标社区检测方法,其中步骤(7)所述的确定父代和声记忆库Hp(t)={H1(t),H2(t),…,HS(t)}中的每一个和声的社区中心,按如下步骤进行:
(7a)根据父代和声记忆库中每一个和声Hi(t)的标记部分h1(t)的值flagj判断对 应的社区中心centerj是否被激活,如果flagj≥0.5,则对应的社区中心centerj被激活,否则不被激活,其中,i=1,2,…,S,S表示父代和声记忆库的大小,j=1,2,…,Kmax,Kmax表示社区的最大个数;
(7b)求出降序排列后的特征向量V2'中的每个值到所有被激活的中心的距离,并用V2'中距离被激活中心最近的值代替被激活中心,成为社区中心。
3.根据权利要求1所述的基于共邻矩阵谱信息的多目标社区检测方法,其中步骤(8) 所述的根据得到的社区划分计算父代和声记忆库中每个和声的适应度,按如下步骤进行:
(8a)借鉴以邻接矩阵为基础的模块度的定义,修正共邻矩阵为基础的共邻模块度的定义为:Q(B)=c∈B[|N(c)/n-(Σv∈cN(v)/(2n))2],
其中,B为所有的社区的组合,c为其中的一个社区,n为整个网络中各节点对之间修正共同邻节点的个数,|N(c)|为社区c中所有节点对之间的修正共同邻节点的个数的和,N(v)为节点v与网络中所有节点之间修正共同邻节点的个数的和;
(8b)对共邻模块度的公式进行拆分,用1减去该公式中的第一部分Σc∈B(|N(c)|/n)作为第一个目标函数,表示为intra(B)=1-Σc∈B(|N(c)|/n),将该公式中的第二部分Σc∈B(Σv∈cN(v)/(2n))2作为第二个目标函数,表示为inter(B)=Σc∈B(Σv∈cN(v)/(2n))2;
(8c)计算整个网络中各节点对之间修正共同邻节点的个数n,根据每个和声的社区划分,得到所有的社区B以及每个社区中的节点,分别统计每个社区中所有节点对之间的修正共同邻节点的个数的和|N(c)|和每个社区中每个节点v与网络中所有节点之间的修正共同邻节点的个数的和N(v),然后将计算结果代入以上两个目标函数,得到父代和声记忆库中每个和声的适应度。
4.根据权利要求1所述的基于共邻矩阵谱信息的多目标社区检测方法,其中步骤(9)所述的计算当前迭代的和声保留概率、音调微调概率和带宽,按如下公式计算:
和声保留概率:HMCR(t)=HMCRmax-(HMCRmax-HMCRmin)×t/T,
音调微调概率:PAR(t)=PARmin+(PARmax-PARmin)×t/T,
带宽:BW(t)=BWmaxexp(ln(BWmin/BWmax)×tT),
其中,HMCRmax、HMCRmin分别为和声保留概率的最大值和最小值, PARmax 、PARmin分别为音调微调概率的最大值和最小值,BWmax,BWmin分别为带宽的最大值和最小值,t为当前迭代数,T为最大迭代次数。
5.根据权利要求1所述的基于共邻矩阵谱信息的多目标社区检测方法,其中步骤(12)所述的对临时子代和声记忆库H'(t)进行局部学习,得到更新的临时子代和声记忆库H''(t),按如下步骤进行:
(12a)从临时子代和声记忆库H'(t)中选出前20%个和声构成大小为L的局部和声记忆库X(t)={X1(t),X2(t),…,XL(t)};
(12b)在局部和声记忆库X(t)={X1(t),X2(t),…,XL(t)}的基础上用和声搜索的方式产生大小为L的新局部和声记忆库X'(t)={X1'(t),X'2(t),…,X'L(t)},对新局部和声记忆库执行权利要求1的步骤(7)-(8);
(12c)对每一个新和声Xi'(t)进行判断:如果新和声Xi'(t)能够支配临时子代记忆库H'(t)中所有的和声,则将新和声Xi'(t)加入到临时子代记忆库H'(t)中,否则不加入,对每一个新和声Xi'(t)都判断完成后得到更新的临时子代记忆库H''(t),其中,i=1,2,…,L,L为新局部和声记忆库的大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210066846.6A CN102594909B (zh) | 2012-03-14 | 2012-03-14 | 基于共邻矩阵谱信息的多目标社区检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210066846.6A CN102594909B (zh) | 2012-03-14 | 2012-03-14 | 基于共邻矩阵谱信息的多目标社区检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102594909A CN102594909A (zh) | 2012-07-18 |
CN102594909B true CN102594909B (zh) | 2014-07-09 |
Family
ID=46483103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210066846.6A Expired - Fee Related CN102594909B (zh) | 2012-03-14 | 2012-03-14 | 基于共邻矩阵谱信息的多目标社区检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102594909B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051476B (zh) * | 2012-12-24 | 2015-04-22 | 浙江大学 | 基于拓扑分析的网络社区发现方法 |
CN103414711B (zh) * | 2013-08-05 | 2017-03-22 | 哈尔滨工业大学 | 基于信任的网络群体异常感知方法 |
CN104581734A (zh) * | 2013-10-17 | 2015-04-29 | 中国移动通信集团广东有限公司 | 一种网络社区划分方法及装置 |
CN103955864B (zh) * | 2014-04-14 | 2018-06-01 | 武汉大学 | 基于改进和声搜索算法的电力系统多目标差异化规划方法 |
CN104133766B (zh) * | 2014-07-11 | 2017-01-04 | 西安交通大学 | 基于多目标社团发现的软件系统可维护性评估与提升方法 |
CN104881871A (zh) * | 2015-05-22 | 2015-09-02 | 湖南大学 | 基于改进多目标和声搜索算法的交通图像分割方法 |
CN105184669B (zh) * | 2015-08-25 | 2019-08-06 | 四川大学 | 一种基于节点集GN分裂算法的220kV城市环网分区方法 |
CN105405057A (zh) * | 2015-11-02 | 2016-03-16 | 浙江工业大学 | 一种动态复杂网络社区多目标划分方法 |
CN106453096B (zh) * | 2016-09-05 | 2019-06-14 | 北京邮电大学 | 一种动态网络社区发现方法及装置 |
CN108280538A (zh) * | 2018-01-05 | 2018-07-13 | 广西师范学院 | 基于云计算环境下分布式物流库存优化方法 |
CN107977990B (zh) * | 2018-01-27 | 2021-05-04 | 江西理工大学 | 基于正弦启发式搜索的图像配准方法 |
CN109921921B (zh) * | 2019-01-26 | 2021-06-04 | 复旦大学 | 一种时变网络中时效稳定社团的检测方法和装置 |
CN110221290B (zh) * | 2019-06-12 | 2021-05-11 | 南京邮电大学 | 基于蚁群算法优化的无人机目标搜索构建方法 |
CN110535681B (zh) * | 2019-07-18 | 2021-04-27 | 西安电子科技大学 | 基于开放运算语言OpenCL并行的重叠社区检测方法 |
CN110489813B (zh) * | 2019-07-26 | 2022-07-12 | 西北工业大学 | 基于和声差分进化算法的tfpm多目标优化设计方法 |
CN113419593B (zh) * | 2021-06-29 | 2022-08-23 | 上海电机学院 | 一种局部阴影条件下最大功率点跟踪方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355393A (zh) * | 2011-09-27 | 2012-02-15 | 西安电子科技大学 | 基于振荡器相位同步的网络社区结构划分方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185935A1 (en) * | 2009-01-21 | 2010-07-22 | Nec Laboratories America, Inc. | Systems and methods for community detection |
-
2012
- 2012-03-14 CN CN201210066846.6A patent/CN102594909B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355393A (zh) * | 2011-09-27 | 2012-02-15 | 西安电子科技大学 | 基于振荡器相位同步的网络社区结构划分方法 |
Non-Patent Citations (4)
Title |
---|
Zhewen Shi,Yu Liu ,Jingjing Liang."PSO-based Community Detection in Complex Networks".《Second International Symposium on Knowledge Acquisition and Modeling》.2009,第3卷114-119. |
Zhewen Shi,Yu Liu,Jingjing Liang."PSO-based Community Detection in Complex Networks".《Second International Symposium on Knowledge Acquisition and Modeling》.2009,第3卷114-119. * |
郭崇慧,张娜."基于共邻矩阵的复杂网络社区结构划分方法".《系统工程理论与实践》.2010,第30卷(第6期), |
郭崇慧,张娜."基于共邻矩阵的复杂网络社区结构划分方法".《系统工程理论与实践》.2010,第30卷(第6期), * |
Also Published As
Publication number | Publication date |
---|---|
CN102594909A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102594909B (zh) | 基于共邻矩阵谱信息的多目标社区检测方法 | |
Costa et al. | Characterization of complex networks: A survey of measurements | |
CN102413029B (zh) | 基于分解的局部搜索多目标复杂动态网络社区划分方法 | |
CN103745258B (zh) | 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 | |
CN113010691A (zh) | 一种基于图神经网络的知识图谱推理关系预测方法 | |
CN107391512B (zh) | 知识图谱预测的方法和装置 | |
CN112487658B (zh) | 一种电网关键节点的识别方法、装置及系统 | |
CN106022614A (zh) | 一种基于最近邻聚类的神经网络数据挖掘方法 | |
CN104200272A (zh) | 一种基于改进遗传算法的复杂网络社区挖掘方法 | |
CN112182306B (zh) | 一种基于不确定图的社区发现方法 | |
CN103455612B (zh) | 基于两阶段策略的非重叠与重叠网络社区检测方法 | |
Zanghi et al. | Strategies for online inference of model-based clustering in large and growing networks | |
CN113780002A (zh) | 基于图表示学习和深度强化学习的知识推理方法及装置 | |
CN102708327A (zh) | 一种基于谱优化的网络社区发现方法 | |
CN103455610A (zh) | 基于多目标密母计算的网络社区检测方法 | |
CN101901251B (zh) | 基于马尔科夫过程亚稳性的复杂网络簇结构分析和识别方法 | |
CN109948242A (zh) | 基于特征哈希的网络表示学习方法 | |
CN115456093A (zh) | 一种基于注意力图神经网络的高性能图聚类方法 | |
Yilmaz et al. | Multi uav based traffic control in smart cities | |
Gao et al. | Particle competition for multilayer network community detection | |
CN106815653B (zh) | 一种基于距离博弈的社交网络关系预测方法及系统 | |
Sekhara et al. | MULTIMODAL CHOICE MODELING USING RANDOM FOREST DECISION TREES. | |
CN113010813A (zh) | 一种基于随机游走的标签传播重叠社区发现方法及系统 | |
Jin et al. | Ant colony optimization with markov random walk for community detection in graphs | |
Sajjadi et al. | A hybrid clustering approach for link prediction in heterogeneous information networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140709 Termination date: 20200314 |