[发明专利]一种基于Spark的并行蚁群优化社区发现方法在审
申请号: | 201911342546.4 | 申请日: | 2019-12-23 |
公开(公告)号: | CN111159523A | 公开(公告)日: | 2020-05-15 |
发明(设计)人: | 顾军华;佘士耀;陈博;李鑫航;张丹红;常光耀;张亚娟 | 申请(专利权)人: | 河北工业大学 |
主分类号: | G06F16/953 | 分类号: | G06F16/953;G06N3/00 |
代理公司: | 天津翰林知识产权代理事务所(普通合伙) 12210 | 代理人: | 付长杰 |
地址: | 300130 天津市红桥区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 spark 并行 优化 社区 发现 方法 | ||
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;凝聚性越大,代表邻居节点多,所属社区内部链接越紧密,能准确的确定标签。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河北工业大学,未经河北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911342546.4/1.html,转载请声明来源钻瓜专利网。