基于烟花算法和局部双环的社区划分方法技术

技术编号:17655070 阅读:56 留言:0更新日期:2018-04-08 08:24
本发明专利技术公开一种有效的基于烟花算法和局部双环的社区划分方法,包括:初始化网络中的节点标签和算法参数;计算网络中节点的重要性并依照重要性进行排序;初始化烟花并计算其爆炸产生的火花数量以及爆炸范围;生成火花,选择进入下一次迭代的烟花或者火花;判断是否达到算法终止条件,若达到迭代终止条件,则输出模块度值最高的烟花所代表的社区划分结果。与现有技术相比较,本发明专利技术给出了局部双环的概念用来对网络进行社区划分预处理,可以实现对无权无向图进行非重叠社区划分,并具有更高的准确率和更好的社区结构划分结果。

【技术实现步骤摘要】
基于烟花算法和局部双环的社区划分方法
本专利技术属于社会网络的社区划分
,更具体的说,是一种基于群体智能优化算法--烟花算法和局部双环的进行社区划分的实现方法。
技术介绍
在现实社会中,有各种各样复杂的系统,而这些系统往往都可以表示为网络的形式以方便进行分析和管理。在这个网络中,每一个节点对应着现实系统中的一个实体对象,而节点与节点之间的边则对应着现实系统中实体对象间的交互关系。例如在WWW网络中,每一个网页就是网络中的一个节点,而网页之间的超链接跳转关系就是网络中的边;在现实社会的社交网络中,每一个人就是网络中的一个节点,人与人之间的人际关系就可以表示为网络中的边。此外,随着科技的发展和网络技术的进步,在线社交网络也变得越来越流行,其数据量和网络规模十分庞大,这就对社区划分算法提出了一个更高要求,要求其具有较高的准确性和处理大数据的能力。社区划分作为一个NP-hard问题也在近几年成为了一个研究热点,有越来越多的学者投入到社区划分算法的研究中。传统的社区划分方法大致分为两类:图分割方法和层次聚类方法。图分割方法需要知道网络中社区的数量和规模,而层次聚类方法并不需要这个先验知识。层次聚类方法的算法性能取决于相似度度量的选择。在2003年,Newman第一次提出了模块度(Modularity)的概念,并且通过优化模块度Q的值来获得社区划分的结果。模块度也被用来衡量一个社区划分结果的好坏,其值越接近于1表示社区划分的结果越好。标签传播算法(LPA)也是被广泛使用的社区划分算法,它由Raghavan等人提出并且具有速度快和准确率高的优点。群体智能优化算法在解决现实问题上也有着良好的表现,其也受到了众多学者的广泛关注。GA-Net是一个由Pizzuti提出的用于解决社区划分的方法,其通过不断优化一个单目标函数来找到紧密连接的小组,这个目标函数被称为社区值(communityscore)。CNM也是一个使用优化方法来进行社区划分的算法,它是一个通过优化模块度值的快速贪婪算法,是传统GN算法的一个扩展。Infomap是一个由Rosvall等人提出的基于信息论方法的进行社区划分的算法。烟花算法(FWA)是由谭营教授于2010年提出一种新型群体智能优化算法,在每次算法的迭代中,其依次利用爆炸操作、变异操作、映射规则和选择策略直至达到终止条件,该算法也被广泛运用于数据扰动和TSP等问题,并且有许多基于FWA的改进算法被不断提出。上述三种社区划分方法有着较高的时间复杂度和较低的社区划分的准确度并且没有对原始网络进行高效的预处理操作。
技术实现思路
为解决上述问题,本专利技术的目的在于提出一种有效的基于烟花算法和局部双环的社区划分方法,该方法能够对一个无权无向图进行社区划分。具体技术方案如下:一种基于烟花算法和局部双环的社区划分方法,包含如下步骤:步骤1:初始化网络中的节点标签和算法参数;步骤2:计算网络中节点的重要性;步骤3:根据节点的重要性大小对节点进行排序;步骤4:构造局部双环并通过局部双环初始化烟花,计算初始这代烟花或者火花所代表的社区划分结果的模块度值,基于模块度值计算爆炸产生的火花数量以及爆炸范围;步骤5:在第一次迭代时,初始这代烟花爆炸并生成火花,并选择进入下一次迭代的烟花或者火花;在非第一次迭代时,使用上一次选择的烟花或者火花爆炸并生成火花,并选择进入下一次迭代的烟花或者火花;步骤6:如果未达到迭代终止条件则返回步骤5;如果达到迭代终止条件,则输出模块度值最高的烟花所代表的社区划分结果。作为一种优先方案,每个节点的参数设置包括每一代烟花和火花的总数n、用于控制每一个烟花产生的火花数量的常量m、以及用于控制每一个烟花的爆炸范围的常量。作为一种优先方案,步骤1所述的对节点标签的初始化是将网络中每个节点的标签设置为一个独一无二的值。如,将每个节点的标签初始化为该节点的ID。作为一种优先方案,步骤2所述的节点重要性的定义如下:对任意一个网络G={V,E},V表示网络中节点的集合,E表示网络中边的集合,对任意节点vi∈V,其节点重要性为:其中,Vi′为节点vi的邻居节点vi′集合,d(vi′)为邻居节点vi′的度。作为一种优先方案,步骤4所述的烟花初始化算法如下:在排序后的节点中,选择一特定节点并在网络中寻找两个环,即局部双环,其中,第一个环是指网络中含有某特定节点的最小环,第二个环是指网络中含有第一个环中除该特定节点外重要性最大的节点对应的最小环;将这两个环上的节点的标签设置为特定节点的标签。在寻找这两个环时,如果有多个最小环满足条件,则随机选择一个。特定节点可以是指排序后的第0个节点、第1个节点或第2个节点。作为一种优先方案,步骤4中,所述的爆炸产生的火花数量Si的计算方法是:式中,m为控制每一个烟花生成火花数量的常量,yworst是当前这代n个烟花或者火花中的最差的目标函数值,f(xi)是实体xi的目标函数值,ε是一个极小的正数用来避免分母为0的情况;所述的爆炸产生的火花爆炸范围Ai的计算方法是:式中,A′为控制每一个烟花爆炸范围的常量,ybest是当前这代n个烟花或者花火中的最优的目标函数值,f(xi)是实体xi的目标函数值,ε是一个极小的正数用来避免分母为0的情况。目标函数是模块度函数,定义如下:式中,|E|表示网络中边的数量,Aij是网络邻接矩阵中的第i行第j列的项,ki和kj分别表示节点i和节点j的度,如果节点i和节点j在同一个社区中,则δ(ci,cj)的值取1,否则,δ(ci,cj)的值取0。作为一种优先方案,步骤5中还包括计算所有的烟花生成完火花后的下一代的烟花或者花火所代表的社区划分结果的模块度值,根据模块度值大小选择进入下一次迭代的烟花或者火花。作为一种优先方案,步骤5所述的烟花产生火花的过程是一个伴随着变异的过程,其产生的火花数量为Si,产生的每一个火花的每个节点的标签变异概率由Ai决定。以表示第i个烟花的第k个节点的标签,以Neig_labelk表示第k个节点的邻居中出现次数最多的标签,在生成火花的过程中,的变异方法如下:上式中,random(0,1)是指在0到1之间产生的一个随机数,sigmoid(Ai)的计算方法如下:在所有的烟花生成完火花后,将根据当前这代每个烟花或者火花的社区划分结果的模块度值对其进行排序,并选择模块度值大的前n个烟花或者火花作为下一次迭代的烟花。作为一种优先方案,步骤6所述的迭代终止条件是当前迭代次数达到最大迭代次数。与现有技术相比较,本专利技术是一种基于烟花算法和局部双环的定义实现的进行社区划分的方法,具有以下有效果:(1)通过局部双环的概念可以提供一种为网络进行社区划分预处理的方法,所述预处理包含了计算节点重要性、对节点按照重要性排序和构造局部双环,通过该预处理方法能降低社区划分的计算量,进一步提升社区划分的准确性及效率,以划分出更好的社区结构。(2)通过本专利技术所公开的社区划分方法,将无权无向图作为输入,最终得到的具有最大模块度值的烟花所代表的社区结构就是该无权无向图的非重叠社区划分结果,从而实现了对无权无向图进行非重叠社区划分。(3)与GA-Net、Infomap和CNM方法相比,本专利技术所公开的社区划分方法具有更高的准确率和更好的社区结构。附图说明图1是实本文档来自技高网
...
基于烟花算法和局部双环的社区划分方法

【技术保护点】
一种基于烟花算法和局部双环的社区划分方法,其特征在于,包含如下步骤:步骤1:初始化网络中的节点标签和算法参数;步骤2:计算网络中节点的重要性;步骤3:根据节点的重要性大小对节点进行排序;步骤4:构造局部双环并通过局部双环初始化烟花,计算初始这代烟花所代表的社区划分结果的模块度值,基于模块度值计算爆炸产生的火花数量以及爆炸范围;步骤5:在第一次迭代时,使用初始这代烟花爆炸并生成火花,并选择进入下一次迭代的烟花或者火花;在非第一次迭代时,使用上一次选择的烟花或者火花爆炸并生成火花,并选择进入下一次迭代的烟花或者火花;步骤6:如果未达到迭代终止条件则返回步骤5;如果达到迭代终止条件,则输出模块度值最高的烟花所代表的社区划分结果。

【技术特征摘要】
1.一种基于烟花算法和局部双环的社区划分方法,其特征在于,包含如下步骤:步骤1:初始化网络中的节点标签和算法参数;步骤2:计算网络中节点的重要性;步骤3:根据节点的重要性大小对节点进行排序;步骤4:构造局部双环并通过局部双环初始化烟花,计算初始这代烟花所代表的社区划分结果的模块度值,基于模块度值计算爆炸产生的火花数量以及爆炸范围;步骤5:在第一次迭代时,使用初始这代烟花爆炸并生成火花,并选择进入下一次迭代的烟花或者火花;在非第一次迭代时,使用上一次选择的烟花或者火花爆炸并生成火花,并选择进入下一次迭代的烟花或者火花;步骤6:如果未达到迭代终止条件则返回步骤5;如果达到迭代终止条件,则输出模块度值最高的烟花所代表的社区划分结果。2.如权利要求1所述的基于烟花算法和局部双环的社区划分方法,其特征在于,步骤1中,对节点标签的初始化是将网络中每个节点的标签设置为一个独一无二的值;每个节点的参数设置包括每一代烟花和火花的总数n、用于控制每一个烟花产生的火花数量的常量m、以及用于控制每一个烟花的爆炸范围的常量。3.如权利要求1或2所述的基于烟花算法和局部双环的社区划分方法,其特征在于,将每个节点的标签初始化为该节点的ID。4.如权利要求1所述的基于烟花算法和局部双环的社区划分方法,其特征在于,步骤2所述的节点重要性的定义如下:对任意一个网络G={V,E},V表示网络中节点的集合,E表示网络中边的集合,对任意节点vi∈V,其节点重要性为:其中,Vi′为节点vi的邻居节点v′i集合,d(v′i)为邻居节点v′i的度。5.如权利要求1所述的基于烟花算法和局部双环的社区划分方法,其特征在于,步骤4所述的构造局部双环并通过局部双环初始化烟花包括如下:在排序后的节点中,选择一特定节点并在网络中寻找两个环,即局部双环,其中,第一个环是指网络中含有某特定节点的最小环,第二个环是指网络中含有第一个环中除该特定节点外重要性最大的节点对应的最小环;然后将这两个环上的节点的标签设置为特定节点的标签。6.如权利要求5所述的基于烟花算法和局部双环...

【专利技术属性】
技术研发人员:夏正友马天任
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏,32

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

1