【技术实现步骤摘要】
一种基于Spark的并行蚁群优化社区发现方法
本专利技术属于大规模复杂网络中的社区发现领域,具体涉及一种基于Spark的并行蚁群优化社区发现方法。
技术介绍
自然界中各种数据关系存在复杂的网络结构,如社会网中人与人的关系,生物蛋白质中蛋白质的相互作用,互联网中网页的链接关系等。自从有网络社区发现概念以来,复杂网络的社区发现研究已经成为了现代网络科学中最热门的课题之一。随着近年来互联网的高速发展,复杂网络的种类和规模得到了快速的发展和变化,数据量呈指数级增长。单机执行的FN算法基于贪心思想,每次只能合并一对社区,需要多次循环,耗时严重,因此不适用于大规模网络。GN算法通过计算各边的边介数,并通过循环删除边介数最大的边来达到划分社区的目的,但是GN算法的求解效率低,依然不适用于大规模网络。2013年,Jierui等人将马尔科夫聚类算法的思想引入到LPA中,借助矩阵相乘来完成标签传播过程,从而提高算法的稳定性。但是该算法在实现过程中使用矩阵相乘会消耗大量内存和计算资源,因而不适用于大规模网络。因此需要借助分布式平台,进行并行的社区发现算法研究。在社区发现算法中以蚁群算法为代表的元启发式算法是对自然界中的优秀种群协作完成某种行为的抽象和总结,该类算法具有天然的并行性,本专利技术进行并行的蚁群优化社区发现方法研究。目前并行蚁群优化算法多用于解决TSP或航路规划等路径问题,而没有直接用于挖掘网络社区结构的先例。因此,本专利技术主要着眼于提出一种可行有效的蚁群优化算法,并在Spark平台上实现并行化,用于挖掘大规模 ...
【技术保护点】
1.一种基于Spark的并行蚁群优化社区发现方法,该发现方法的步骤是:/n步骤一:确定蚂蚁转移顺序:确定大规模网络中网络节点数量N,并行独立计算每个网络节点的凝聚性度量值,将每个网络节点的凝聚性度量值按照升序排列,获取对应的节点顺序列表,作为蚁群的转移顺序;/n步骤二:构造最优解:将蚂蚁个体分布到大规模网络的各分区中,并行的使每只蚂蚁为网络中节点确定标签,蚂蚁按照步骤一确定的蚂蚁的转移顺序在网络中移动,结合信息素和启发式信息综合确定节点标签的概率,同时按照式(7)计算任意两个节点的皮尔逊系数C(i,j),按公式(9)计算此次蚂蚁产生的社区划分的模块度Q,/n
【技术特征摘要】
1.一种基于Spark的并行蚁群优化社区发现方法,该发现方法的步骤是:
步骤一:确定蚂蚁转移顺序:确定大规模网络中网络节点数量N,并行独立计算每个网络节点的凝聚性度量值,将每个网络节点的凝聚性度量值按照升序排列,获取对应的节点顺序列表,作为蚁群的转移顺序;
步骤二:构造最优解:将蚂蚁个体分布到大规模网络的各分区中,并行的使每只蚂蚁为网络中节点确定标签,蚂蚁按照步骤一确定的蚂蚁的转移顺序在网络中移动,结合信息素和启发式信息综合确定节点标签的概率,同时按照式(7)计算任意两个节点的皮尔逊系数C(i,j),按公式(9)计算此次蚂蚁产生的社区划分的模块度Q,
其中,i和j表示任意两个节点;A是邻接矩阵,记录网络的拓扑结构,Aiq表示邻接矩阵的第i行第q列的元素值,代表节点i与节点q之间是否有边相连,有边相连则该值为1,反之则为0;γi表示观测值Aiq的均值;σi表示观测值Aiq的标准差;Ajq表示邻接矩阵的第j行第q列的元素值,代表节点j与节点q之间是否有边相连,有边相连则该值为1,反之则为0;γj表示观测值Ajq的均值;σj表示观测值Ajq的标准差;
公式(9)中,nc表示网络图中含有的社区个数,lc表示社区c内部包含的边数,dc表示社区c内部节点的度数总和,e则表示网络图的总边数;
完成每个解向量的构造,从而构成整个解空间,最后获取解空间中模块度最高的解作为蚁群产生的最优解,实现网络社区的划分;
步骤三:解的优化:并行的计算划分后的网络社区中相连社区对合并后的模块度增量是否大于零,若大于零则筛选出待合并的社区对,并按照连边率从大到小的顺序对待合并的社区对一一合并,同时用模块度增量控制合并过程,从而对步骤二中蚁群产生的最优解进行优化,直至模块度增量为零,形成最终解,获得最终的社区划分结果。
2.根据权利要求1所述的发现方法,其特征在于,步骤一的具体过程是:
步骤1.1:根据网络节点数量N,实例化N个节点对象,并将其存放于列表NodelList[N],通过parallelize()算子将列表NodeList[N]创建成RDD,记为RDD1;
步骤1.2:根据点数量将RDD1分成若干个分区,并按照负载均衡原则,将RDD1均匀分布到各分区中;然后RDD1通过map()算子,计算当前节点的凝聚性Ψi,记为RDD2;
步骤1.3:通过collect()算子将各个Worker节点上凝聚性的计算结果收集起来,记为RDD3;
步骤1.4:通过sortBy()算子依据节点的凝聚性值对所有的节点进行升序排列,确定蚂蚁的转移顺序列表Ant_transfer;凝聚性越大,代表邻居节点多,所属社区内部链接越紧密,能准确的确定标签。
3.根据权利要求1所述的发现方法,其特征在于,步骤二的具体过程是:
步骤2.1:设定蚁群规模为x,实例化x个蚂蚁对象,并将其存放于列表List(x)中,通过parallelize()算子将列表List(x)创建成并行的RDD,记为...
【专利技术属性】
技术研发人员:顾军华,佘士耀,陈博,李鑫航,张丹红,常光耀,张亚娟,
申请(专利权)人:河北工业大学,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。