重叠社区并行发现的方法及系统的制作方法_4

文档序号:9547205阅读:来源:国知局
社区集合的相应数据。
[0076] 在本发明的一个实施例中,所述节点贡献度的计算方法是:
[0077] 假设节点V1的所述节点贡献度为c,社区η,内的节点个数为N,节点V1属于社区 η,,节点V1与社区n]内部其他节点连接的边数为Lin,节点V 1与社区n]外节点连接的边数 为Lciut,则节点V1的所述节点贡献度c由以下公式计算:
[0079] 其中,i为从1到N-I的自然数,j为从1到η的自然数。
[0080] 在本发明的一个实施例中,所述社区聚集度的计算方法是:
[0081] 假设社区Ii1的所述社区聚集度为Μ,社区η,内的节点个数为Ν,节点V 1属于社区 Iij,且节点V1到社区中心节点V。的距离为DW1, V。),节点V1与社区Iij内部其他节点连接的 边数为Lin,节点V 1与社区η,外节点连接的边数为Lciut,则社区η,的所述社区聚集度为M由 以下公式计算:
[0083] 其中,i为从1到N-I的自然数,j为从1到η的自然数;
[0084] 所述初始社区聚集度、所述中间社区聚集度及所述新社区聚集度的计算方法都与 所述社区聚集度的计算方法相同。
[0085] 在本发明的一个实施例中,两个社区的所述社区重叠度的计算方法是:
[0086] 假设两个社区为A和Β,社区A的节点集合记为Ca,社区B的节点集合记为C b,社 区A和社区B的所述社区重叠度记为Oab,则社区A和社区B的所述社区重叠度O ab由以下 公式计算:
[0088] 其中,社区A和社区B是两个不同的社区。
[0089] 此外,本发明还提供一种重叠社区并行快速发现系统,包括:
[0090] 社区发现准备模块,用于:从数据集文件中读取节点分布网络图;创建社区集合; 将所述节点分布网络图与所述社区集合相关联;
[0091] 初始社区确定模块,用于:设定初始社区的个数为η ;计算所述节点分布网络图中 每个节点的度数,并获取前η个节点度数最高的节点分别作为η个初始社区的中心节点;此 时每个初始社区的聚集度为〇 ;η个初始社区储存于所述社区集合;
[0092] 社区并行发现模块,用于:对上述η个初始社区的每一个,将所述中心节点的直接 相邻节点(即有边相连的节点)选为该社区的候选成员节点,并将所述候选成员节点加入 该社区的候选成员集合;计算每个所述候选成员节点的节点贡献度;将所述节点贡献度为 1的节点并入该社区,并计算该社区的初始社区聚集度;对于所述节点贡献度不为1的节 点,根据其所述节点贡献度由高到底进行排序,并从其中所述节点贡献度最高的节点开始, 依次假设其属于该社区并计算该社区的中间社区聚集度,若该中间社区聚集度大于该初始 社区聚集度,则将相应节点并入该社区,并重复该步骤;若该中间社区聚集度小于该初始社 区聚集度,则相应节点不并入该社区,并判断为该社区发现完毕,该初始社区聚集度即为该 社区的社区聚集度;将该社区数据存入所述社区集合;
[0093] 判断控制模块,用于:判断所述节点分布网络图中是否有节点未并入任何社区,若 是,则电泳所述初始社区确定模块及所述社区并行发现模块,对未并入任何社区的节点重 新进行社区发现,直至所述节点分布网络图中的所有节点都属于一个社区;
[0094] 第一社区合并模块,用于:对所述社区集合中的所有社区两两计算其社区重叠度, 若两个社区的所述社区重叠度大于设定阈值,则将该所述社区重叠度大于设定阈值的两个 社区合并为一个社区,并更新所述社区集合的相应数据;
[0095] 第二社区合并模块,用于:对所述社区集合中任意两个具有公共节点的社区,计算 将其合并为一个新社区的新社区聚集度,将该新社区聚集度分别与合并前该两个具有公共 节点的社区的所述社区聚集度进行对比,若该新社区聚集度分别大于合并前该两个具有公 共节点的社区的所述社区聚集度,则将该两个具有公共节点的社区合并为一个新社区,该 新社区聚集度为该两个具有公共节点的社区合并后的新社区的社区聚集度,并更新所述社 区集合的相应数据。
[0096] 在本发明的一个实施例中,所述节点贡献度的计算方法是:
[0097] 假设节点V1的所述节点贡献度为c,社区η,内的节点个数为Ν,节点V1属于社区 η,,节点V1与社区η]内部其他节点连接的边数为Lin,节点V 1与社区η]外节点连接的边数 为Lciut,则节点V1的所述节点贡献度c由以下公式计算:
[0099] 其中,i为从1到N-I的自然数,j为从1到η的自然数。
[0100] 在本发明的一个实施例中,所述社区聚集度的计算方法是:
[0101] 假设社区Ii1的所述社区聚集度为Μ,社区η]内的节点个数为Ν,节点V 1属于社区 Iij,且节点V1到社区中心节点V。的距离为DW1, V。),节点V1与社区Iij内部其他节点连接的 边数为Lin,节点V 1与社区η,外节点连接的边数为Lciut,则社区η,的所述社区聚集度为M由 以下公式计算:
[0103] 其中,i为从1到N-I的自然数,j为从1到η的自然数;
[0104] 所述初始社区聚集度、所述中间社区聚集度及所述新社区聚集度的计算方法都与 所述社区聚集度的计算方法相同。
[0105] 在本发明的一个实施例中,两个社区的所述社区重叠度的计算方法是:
[0106] 假设两个社区为A和Β,社区A的节点集合记为Ca,社区B的节点集合记为C b,社 区A和社区B的所述社区重叠度记为Oab,则社区A和社区B的所述社区重叠度O ab由以下 公式计算:
[0108] 其中,社区A和社区B是两个不同的社区。
[0109] 本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或 流程并不一定是实施本发明所必须的。
[0110] 本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0111] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然 可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换; 而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范 围。
【主权项】
1. 一种重叠社区并行快速发现方法,其特征在于,包括以下步骤: 51 :从数据集文件中读取节点分布网络图;创建社区集合;将所述节点分布网络图与 所述社区集合相关联; 52 :设定初始社区的个数为η;计算所述节点分布网络图中每个节点的度数,并获取前 η个节点度数最高的节点分别作为η个初始社区的中心节点;此时每个初始社区的聚集度 为〇 ;η个初始社区储存于所述社区集合; 53 :对上述η个初始社区的每一个同时执行以下程序:将所述中心节点的直接相邻节 点选为该社区的候选成员节点,并将所述候选成员节点加入该社区的候选成员集合;依次 判断所述候选成员集合中的所述候选成员节点是否属于该社区,将属于该社区的节点并入 该社区,对属于该社区的节点的直接相邻节点选为该社区的候选成员节点,重复该步骤;对 不属于该社区的节点移出所述候选成员集合;将该社区数据存入所述社区集合; S4:判断所述节点分布网络图中是否有节点未并入任何社区,若是,则对未并入任何社 区的节点重复执行步骤S2、S3、S4,直至所述节点分布网络图中的所有节点都属于一个社 区; S5:对所述社区集合中的所有社区两两计算其社区重叠度,若两个社区的所述社区重 叠度大于设定阈值,则将该所述社区重叠度大于设定阈值的两个社区合并为一个社区,并 更新所述社区集合的相应数据; S6:对所述社区集合中任意两个具有公共节点的社区,计算将其合并为一个新社区的 新社区聚集度,将该新社区聚集度分别与合并前该两个具有公共节点的社区的所述社区聚 集度进行对比,若该新社区聚集度分别大于合并前该两个具有公共节点的社区的所述社区 聚集度,则将该两个具有公共节点的
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1