一种大规模网络中基于节点密度的社区发现方法技术

技术编号:18458756 阅读:35 留言:0更新日期:2018-07-18 12:41
本发明专利技术涉及一种大规模网络中基于节点密度的社区发现方法,包括设输入网络的拓扑结构用图G={V,E}来表示,V和E分别为节点和边的集合;计算节点密度和整个网络的平均密度;把所有的节点密度数据进行排列并得到密度序列,把度最大的节点的密度确定为网络阈值;从序列中的节点中发现社区,形成网络中确定的社区序列,并将剩余节点构成集合;判断集合是否为剩余社区集合和孤立点的集合;确定整个网络的社区数量;对社区进行合并优化。采用本发明专利技术的节点密度方法进行社区发现有较低的计算复杂度,社区划分的精确性高,适用于各种规模和类型的复杂网络。

A community detection method based on node density in large scale networks

The invention relates to a method of community discovery based on node density in a large-scale network, including the topology of the input network, which is represented by graph G = {V, E}, V and E as the set of nodes and edges, respectively, to calculate the node density and the average density of the entire network; to arrange all the node density data and to get the density sequence The density of the largest nodes is determined as the network threshold; the community is found from the nodes in the sequence, and the community sequence determined in the network is formed and the remaining nodes constitute the set; whether the set is the set of remaining communities and the set of isolated points is judged, and the number of the community in the whole network is determined; and the community is merged and optimized. The node density method used in this invention has lower computational complexity for community discovery, high accuracy in community division, and suitable for complex networks of various sizes and types.

【技术实现步骤摘要】
一种大规模网络中基于节点密度的社区发现方法
本专利技术涉及网络社区发现方法,具体涉及一种大规模网络中基于节点密度的社区发现方法。
技术介绍
目前社区结构发现已成为复杂网络研究中的一个热点问题,近年来受到计算机、数学、生物和社会学等领域研究者的广泛关注,例如当前研究领域的科学知识图谱就结合了社区发现的理论。并且在这些网络中发现了社区结构的存在,复杂网络社区结构的发现对于复杂网络的拓扑结构分析、功能分析和行为预测具有重要的理论意义及实用价值。复杂网络中的社区是一组彼此相似并与网络中其他节点存在差异的节点构成的集合,同一社区内部节点相互连接密集,而社区间节点相互连接相对稀疏。社区是网络中节点的子集,同一社区内节点之间的连接比较紧密,而不同社区间的节点的连接相对稀疏。同一社区内的节点在网络中具有相似的功能,因此这个社区在网络中有一个特定的作用。研究复杂网络中的社区结构对于分析复杂网络的拓扑结构、理解网络所具有的功能以及预测网络可能具备的行为具有非常重要的意义,此外还具有广泛的应用前景。近年来,很多社区检测方法相继被提了出来,这些算法大致可以被分为三类:基于图的层次分割方法,基于聚类的方法和基于优化的方法,其中基于优化的方法得到了越来越多的关注。但目前社区发现算法普遍具有划分社区精确性不高,需要先验知识,计算复杂度过高导致无法在实际的复杂网络中应用的缺点。
技术实现思路
本专利技术所要解决的技术问题是社区发现算法中划分社区精确性不高,需要先验知识,计算复杂度过高导致无法在实际的复杂网络中应用的缺点。本专利技术解决上述技术问题的技术方案如下:一种大规模网络中基于节点密度的社区发现方法,包括以下步骤:S1、设输入网络的拓扑结构用图G={V,E}来表示,V和E分别为节点和边的集合;S2、计算节点密度Density(vik)和整个网络的平均密度MeanD(G);S3、对所有节点的节点密度数据进行降序排列并得到密度序列Seq(G),把度最大的节点的密度确定为网络阈值Thr(G);S4、通过序列Seq(G)找到网络中的社区Com(i),形成网络确定的社区序列,并将剩余节点构成集合Remain(G);S5、判断Remain(G)是否为剩余社区集合{Com(i)}和孤立点的集合,若是,则进入步骤S6,否则返回步骤S2;S6、确定整个网络的社区数量;S7、对社区进行合并优化。本专利技术的有益效果是:本专利技术的提出了节点密度的概念,来测量网络中节点的密度,并以节点密度值大的种子节点开始进行广度优先搜索扩展社区,并与其周围邻居密度最大的节点结合作为初始单位社区,并通过多次迭代与优化得到最终社区划分,网络中社区的边缘节点更容易判断属于哪个社区,而社区间的交叉节点最难确定属于哪个社区,而不是传统社区发现从网络中心节点开始进行广度优先搜索,本专利技术节点密度计算方法刚好满足边缘节点密度高,网络中社区交叉节点密度低的特点,本专利技术的方法可以在无需先验知识的情况可以直接确定节点属于社区程度,同时,采用本专利技术的节点密度方法进行社区发现有较低的计算复杂度,社区划分的精确性高,适用于各种规模和类型的复杂网络。附图说明图1为本专利技术总流程图;图2为本专利技术中节点密度的计算示意图;图3为本专利技术中R值的计算示意图;图4为本专利技术在Zachary'skarateclub中的节点密度示意图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,一种大规模网络中基于节点密度的社区发现方法,包括以下步骤:S1、设输入网络的拓扑结构为G={V,E},整个网络用图G={V,E}来表示,V和E分别为节点和边的集合。S2、计算节点密度和整个网络的平均密度MeanD(G)。步骤S2具体包括以下步骤:如图2所示,在本专利技术的实施例中,图2(a)为图G={V,E},图2(b)为子图G'。S21、将以图G={V,E}的节点vi为起点向前跳数为k的点组成子图G',计算节点密度在公式(1)中,i为节点编号,k为以vi为起点的前向跳数(根据不同网络有不同的取值),V'为子图G'中节点的集合,|V'|为V'中节点的数量,E'为子图G'中边的集合,|E'|为E'中边的数量。S22、通过节点密度计算整个网络的平均密度MeanD(G):在公式(2)中,N为G中节点的数量。S3、对节点的密度数据进行排列并得到密度序列Seq(G),把度最大的节点的密度确定为网络阈值Thr(G)。步骤S3具体包括以下步骤:S31、将网络中所有节点按其密度降序的顺序进行排列,当节点的密度相同时,按照节点编号大小进行升序排列,构造整个网络的节点密度序列Seq(G)。S32、找出度最大的节点,并将其节点密度作为网络阈值Thr(G),当存在度最大的节点不止一个的情况时,找出这些节点中密度最小的节点,将该节点的密度作为网络阈值Thr(G)。S4、从序列Seq(G)中的节点中发现社区Com(i),形成网络确定的社区序列,并将剩余节点构成集合Remain(G)。步骤S4具体包括以下步骤:S41、选取密度序列Seq(G)中的第一个元素,该元素所代表的节点作为社区Com(1),并从该节点开始对网络进行广度优先搜索,搜索到的节点的密度值满足Density(vi)<Thr(G)时停止其邻居节点搜索,得到邻居节点集合N(1)={ni}。S42、遍历N(1),当集合N(1)中节点的密度值满足ni≥Thr(G)时,ni∈Com(1)。S43、重复步骤S41和步骤S42,将密度序列Seq(G)中的元素代表的节点构成社区序列:Com(1),Com(2)…,Com(k),剩余节点构成剩余节点集合Remain(G),Remain(G)中包括剩余社区集合{Com(i)}和孤立节点rvj,j为节点的编号。S5、判断Remain(G)是否为剩余社区集合{Com(i)}和孤立点的集合,若是,则进入步骤S6,否则回到步骤S2。S6、确定整个网络的社区数量。步骤S6具体包括:对{Com(1),Com(2)…,Com(k)}∩{Com(i)}序列中的每个社区按照公式(2)计算平均密度meanD(i),当meanD(i)≥MeanD(G)时,该社区为真实社区COM(i),否则,该社区为其他社区com(j),将被优化合并进真实社区COM(i)中,所述真实社区COM(i)和其他社区com(j)的数量和为整个网络中的社区数量。S7、对社区进行合并优化。步骤S7具体包括以下步骤:S71、对需要合并的社区com(j),选择与社区Com(i)合并后R值最大的社区COM(K),K已确定的社区的编号,并将社区com(j)加入到COM(K)中,迭代该过程,直至处理完所有的com(j)为止。R值的计算方法为:在公式(3)中,如图3所示,本专利技术实施例中,Bin为连接社区C内部节点的边的数量,Bout为连接社区C内部节点与外部节点的边的数量。S72、若孤立节点rvj只与一个社区相连,则将该孤立节点并入社区,若孤立节点rvj与多个社区相连,则将该孤立节点作为覆盖节点并入多个社区。如图4所示的本专利技术在Zachary'skarateclub(扎卡里空手道俱乐部)中的节点密度,本专利技术实施例中,满足边缘节点密度高,网络中社区交叉点密度低,可以本文档来自技高网...

【技术保护点】
1.一种大规模网络中基于节点密度的社区发现方法,其特征在于,包括以下步骤:S1、设输入网络的拓扑结构用图G={V,E}来表示,V和E分别为节点和边的集合;S2、计算节点密度

【技术特征摘要】
1.一种大规模网络中基于节点密度的社区发现方法,其特征在于,包括以下步骤:S1、设输入网络的拓扑结构用图G={V,E}来表示,V和E分别为节点和边的集合;S2、计算节点密度和整个网络的平均密度MeanD(G);S3、对所有节点的节点密度数据进行降序排列并得到密度序列Seq(G),把度最大的节点的密度确定为网络阈值Thr(G);S4、通过序列Seq(G)找到网络中的社区Com(i),形成网络确定的社区序列,并将剩余节点构成集合Remain(G);S5、判断Remain(G)是否为剩余社区集合{Com(i)}和孤立点的集合,若是,则进入步骤S6,否则返回步骤S2;S6、确定整个网络的社区数量;S7、对社区进行合并优化。2.根据权利要求1所述的大规模网络中基于节点密度的社区发现方法,其特征在于,所述步骤S2具体包括以下步骤:S21、将图G中的节点vi及以vi为起点向前k跳的点组成子图G',计算节点密度在公式(1)中,i为节点编号,k为以vi为起点的前向跳数,V'为子图G'中节点的集合,|V'|为V'中节点的数量,E'为子图G'中边的集合,|E'|为E'中边的数量;S22、通过节点密度计算整个网络的平均密度MeanD(G):在公式(2)中,N为G中节点的数量。3.根据权利要求1所述的大规模网络中基于节点密度的社区发现方法,其特征在于,所述步骤S3具体包括以下步骤:S31、将网络中所有节点的节点密度进行降序排列,当存在节点密度相同的情况时,按照节点编号大小进行升序排列,构造整个网络的节点密度序列Seq(G);S32、找出度最大的节点,并将其节点密度作为网络阈值Thr(G),当存在度最大的节点不止一个的情况时,找出这些节点中密度最小的节点,将该节点的密度作为网络阈值Thr(G)。4.根据权利要求1所述的大规模网络中基于节点密度的社区发现方法,其特征在于,所述步骤S4具体包括以下步骤:S41、选取密度...

【专利技术属性】
技术研发人员:蔡彪杨小王曾利娜吴江
申请(专利权)人:成都理工大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1