当前位置: 首页 > 专利查询>深圳大学专利>正文

一种非重叠社区集合质量度量指标的计算方法及装置制造方法及图纸

技术编号:19512437 阅读:31 留言:0更新日期:2018-11-21 08:27
本发明专利技术提供一种非重叠社区集合质量度量指标的计算方法及装置,通过获取社区集合X、Y中各社区中的元素得到顶点集合V,根据顶点集合V中各顶点vi,分别遍历社区集合X、Y,构建社区标签数据集合LidList,之后基于对LidList的key取模的分组策略,再对集合LidList进行按key切分并分发到各进程,由各进程进行计算,得到计算各指标的所需数值,最后将其合并至单一进程进行运算,得到社区集合X、Y的度量指标。该方法采用并行分布式计算框架MPI并利用社区标签对计数加速社区集合度量指标的运算速度,同时通过该社区集合质量度量指标计算方法可同时计算出更多的度量指标,适用于大规模社区集合质量度量指标的计算。

【技术实现步骤摘要】
一种非重叠社区集合质量度量指标的计算方法及装置
本专利技术属于计算机
,尤其涉及一种非重叠社区集合质量度量指标的计算方法及装置。
技术介绍
一般情况下,社交网络图可以抽象为节点和边构成的集合,其中节点表示网络中的个体,而边表示个体与个体之间的某种关联关系。社交网络图具有社区结构,其中,社区是由网络图中紧密连接节点构成,社区之间则通过稀疏的节点进行连接。社区发现即为对一个网络进行社区结构的刻画和划分,社区发现的结果则被称为社区集合。若社区集合中的节点仅属于一个社区,则该社区集合则被称为非重叠社区集合,否则被称为重叠社区集合。需要理解的是,通过不同的社区发现算法产生的社区集合是不同的,获知某一算法得到的社区集合与标准社区集合之间相似性或差异性,可通过计算相应的社区集合质量度量指标进行度量。对于非重叠社区集合,其度量指标有多个,具体分成为MeasuresbasedonCountingPairs(基于计数对的度量),MeasuresbasedonClusterMatching(基于簇匹配的度量)和MeasuresbasedonMutualInformation(基于交互信息的度量)三类。在现有的算法中,存在串行算法和于2014年提出的一种基于MPICH并行分布式框架的算法(简称MPI-2014算法),但是串行算法和该MPI-2014算法计算得到的度量指标仅为三类度量指标中的部分指标,同时由于现有算法无法适用于大规模社区集合,且算法效率较低,因此,提供一种适用于大规模社区集合的度量指标计算方法是亟需解决的。
技术实现思路
本专利技术的主要目的在于提供一种非重叠社区集合质量度量指标的计算方法及装置,旨在解决现有算法不适用于大规模社区集合质量度量指标计算的技术问题。本专利技术提供的一种非重叠社区集合质量度量指标的计算方法包括:步骤1、获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;步骤2、根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;步骤3、按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;步骤4、基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList进行按key切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值;步骤5、将所述各进程得到的所述计算各指标的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。可选的,在步骤4中,所述基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList进行按key切分,并将切分得到的元素分发至多个进程的步骤包括:构建各进程对应的新建社区标签数据集合NewLidList;基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按key进行划分至各进程对应的新建社区标签数据集合NewLidList。可选的,在步骤4中,所述由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值的步骤包括:将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。进一步地,本专利技术还提供了一种非重叠社区集合质量度量指标计算装置,所述非重叠社区集合质量度量指标计算装置包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的非重叠社区集合质量度量指标计算程序,所述非重叠社区集合质量度量指标计算程序包括:获取模块,用于获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;处理模块,用于根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;添加模块,用于按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;所述j为社区标签笛卡尔乘积数据集DicList[i]中元素的标签;分发模块,基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;运算模块,用于将所述各进程的所述计算各指标的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。可选的,分发模块还用于构建各进程对应的新建社区标签数据集合NewLidList;基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按key进行划分至各进程对应的新建社区标签数据集合NewLidList。可选的,分发模块还用于将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指标的所需数值。有益效果本专利技术提供一种非重叠社区集合质量度量指标计算方法及装置,通过获取社区集合X、Y中各社区中的元素得到顶点集合V,根据顶点集合V中各顶点vi,分别遍历社区集合X、Y,记录各顶点vi在社区集合X、Y中所属社区的标签,并构建社区标签数据集合LidList,之后基于对LidList的key取模的分组策略,将LidList集合中的元素按key切分并分发至各个进程,由各进程运算处理得到计算各指标的所需数值,最后合并计算各指标的所需数值至单一进程进行运算,得到关于社区集合X、Y的度量指标。由于该社区集合质量度量指标计算方法采用并行算法,从而可加速社区集合质量度量指标的运算速度,同时通过该社区集合质量度量指标计算方法计算出的度量指标更加丰富,从而适用于大规模社区集合质量度量指标的计算。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1为本专利技术实施例提供的非重叠社区集合质量度量指标计算方法流程图;图2为本专利技术实施例提供的非重叠社本文档来自技高网...

【技术保护点】
1.一种非重叠社区集合质量度量指标的计算方法,其特征在于,该方法包括以下步骤:步骤1、获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;步骤2、根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;步骤3、按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;步骤4、基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值;步骤5、将所述各进程计算得到的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。...

【技术特征摘要】
1.一种非重叠社区集合质量度量指标的计算方法,其特征在于,该方法包括以下步骤:步骤1、获取社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'},及包含所述社区集合X、Y中各社区的顶点集合V={v1,v2,...vn};所述K、K'、n分别表示社区集合X、Y以及顶点集合V中的元素个数;步骤2、根据所述顶点集合V={v1,v2,...vn}中的各顶点vi,分别遍历社区集合X={X1,X2,...XK}、Y={Y1,Y2,...YK'}中的各社区,记录各顶点vi在社区集合X、Y中所属社区的标签,得到标签Xid[i]、Yid[i],i为大于0小于n的整数;步骤3、按照元素类型(key,value),将各顶点vi对应的((Xid[i],0),Yid[i])、((Yid[i],1),Xid[i])元素添加至社区标签数据集合LidList,所述key为(key,value)类型的复合key;步骤4、基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程;由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值;步骤5、将所述各进程计算得到的所需数值发送至单一进程,由所述单一进程进行运算,输出所述社区集合X、Y的度量指标。2.如权利要求1所述的非重叠社区集合质量度量指标的计算方法,其特征在于,在步骤4中,所述基于对LidList的key取模的分组策略,对所述社区标签数据集合LidList按key进行切分,并将切分得到的元素分发至多个进程的步骤包括:构建各进程对应的新建社区标签数据集合NewLidList;基于对LidList的key取模的分组策略,将所述社区标签数据集合LidList按key进行划分至各进程对应的新建社区标签数据集合NewLidList。3.如权利要求2所述的非重叠社区集合质量度量指标的计算方法,其特征在于,在步骤4中,所述由各进程根据分发得到的元素进行运算处理,得到计算各指标的所需数值的步骤包括:将所述新建社区标签数据集合NewLidList中的各元素对key按字典序排序,并统计同一key中,不同value出现的次数;根据所述新建社区标签数据集合NewLidList中的元素以及所述次数进行运算处理,得到计算各指...

【专利技术属性】
技术研发人员:冯禹洪吴远诗佘松罗秋明
申请(专利权)人:深圳大学
类型:发明
国别省市:广东,44

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

1