一种基于极大团与强连通分量的社区发现方法

文档序号:25733899发布日期:2021-07-06 18:42阅读:229来源:国知局
一种基于极大团与强连通分量的社区发现方法

本申请属于数据挖掘技术领域,具体涉及一种有向网络中的特定社区结构发现方法。



背景技术:

随着数字技术的飞速发展,图模型已经被广泛应用于表示大量的信息和数据间的复杂关系,现实世界的许多复杂系统都能被抽象表示为复杂网络的形式。不同于随机生成的图数据,实际网络往往包含许多子网络结构,同一子网络内的个体关系紧密,而不同子网络间的个体关系较为稀疏。通过网络的连边情况,不同性质、类型的节点组成了关系丰富的社区结构。

在现实世界中,节点经常隶属于多个社区,例如生物网络中大部分蛋白质有多种生物功能,人际交往网络中每个人可以依据工作、教育、家庭等方面分为多个社会团体。因此重叠社区发现在真实世界更具有普遍性,其允许节点同时属于多个社区,对复杂网络不完全严格划分,有着重要的应用价值。

同时,现实世界中抽象出的复杂网络往往为有向网络,节点间的联系具有方向性。在保留边方向的抽象网络中进行社区发现,更能有效反映出复杂网络的真实结构。2017年conte等人提出有向网络中具有团的性质和连通性约束的社区结构,但其给出的输出敏感型算法在实际应用中效率不高,且仅实现了在全图数据上的串行化搜索,不适于处理较大规模的数据。



技术实现要素:

本发明的目的在于提供一种社区发现方法,以解决大规模图模型数据处理难度大以及效率低的问题。

为实现上述目的,本发明提供了一种基于极大团与强连通分量的社区发现方法,包括如下步骤:

s1:图数据预处理,根据阈值参数与有向团的性质对输入数据进行预处理,缩减顶点集合的大小,并且将原图分成互不相交的若干个子图,再分别进行顶点排序;

s2:分步枚举,对每个子图分别使用枚举算法,寻找原图的极大有向团;

s3:结果判重,通过对寻找到的所有极大有向团进行比较,去除重复的极大有向团并存储。

优选的,所述s1步骤具体包括:

s11:缩图删点,基于k核心算法,删去所有度数小于k或者入度出度任一为零的顶点;

s12:划分子图,对原图的每一个强连通分量进行缩点,从而将原图变成一张有向无环图;然后,将上述有向无环图根据强连通分量个数,划分为对应个数的不相交子图;

s13:顶点排序,将每个子图中的顶点按照degeneracy顺序重新编号。

优选的,所述s2步骤具体包括:

s21:忽略有向图的边的方向,使用基于给定阈值剪枝的bk算法,求得底图中的极大团;

s22:在找到的每一个极大团中,使用tarjan算法求得强连通分量;

s23:对于每个强连通分量,进行扩展判定;根据强连通分量在图中顶点的共同邻居的关系,判断是否存在最多两个顶点的可扩展集合,若不可扩展即找到的强连通分量为原图的一个极大有向团社区。

优选的,所述s3步骤具体包括:

使用字典树的数据结构记录搜索中遇到的结果,树中的每个节点记录一个顶点的编号,每次遇到新的结果时,将极大有向团的顶点按照编号顺序排列,在将序列插入结果树的同时,根据是否有新增树上节点来判断该结果是否重复。

优选的,所述s2步骤中,每次调用枚举算法时指定一个顶点作为有向团的起始顶点,将搜索范围限制在该顶点及其邻居顶点中,并在枚举过程中保证寻找的有向团均以该顶点为最小值。

本发明采用上述结构的基于极大团与强连通分量的社区发现方法,具有以下有益效果:

1、预处理将原图进行划分并对顶点排序,减少后续枚举的冗余计算量,同时本预处理过程通用于其他对该社区结构的枚举方法。

2、分步枚举限制在起始顶点的导出子图,实现了并行化计算,效率较高。

附图说明

图1为本发明实施例的整体流程示意图;

图2为本发明实施例中图数据预处理的流程示意图;

图3为本发明中分步枚举的示例图;

图4为本发明中结果判重中结果树的示例图。

具体实施方式

概念引入:

1、给定一个有向图g=(v,e),若顶点的子集满足以下条件,则称s为一个极大有向团:

(1)在g的底图中,s中的所有顶点的导出子图是一个团;

(2)在g中,s的导出子图是强连通的;

(3)不存在一个更大的包含s且满足(1)和(2)的顶点集合。

2、在无向图中,将极大的满足所有顶点在子图中的度数都大于等于k的子图称为该图的k核心(k-core)。

3、对于一个有向图而言,如果从任意一个顶点出发均无法经过若干条边回到该顶点,则称该图为有向无环图。

4、对于图的所有顶点,存在一种排列(v_1,v_2,…,v_n)使得每个顶点v_i在它和它之后的顶点构成的导出子图g[{v_i,…,v_n}]中度数最小,称该排列为顶点的degeneracy顺序。

5、一个图的degeneracy顺序是最小的k使得该图为k退化图,而一个无向图是k退化图(k-degenerategraph)当且仅当该图的任意子图均至少有一个顶点在子图中的度数小于等于k。

下面结合附图与实施例对本发明方法进一步说明。

如图1所示,本方法总体分为三大步骤,读入数据后对原图进行预处理计算、在预处理得到的每个子图中执行分步枚举、对找到的所需结果进行存储与判重。

如图2所示,本方法的原始输入为一个有向无权图和约束社区大小的阈值参数,通过阈值参数,减少冗余操作,缩减顶点集合的大小。

预处理的第一步执行适用于k核心算法,具体为:设置一个队列暂存从图中删去的顶点,初始化时先计算并记录每个顶点的入度和出度,将入度为零、出度为零、或者入度出度之和小于k的顶点放入队列中。每次从队列中取出一个顶点,沿着入边和出边将邻居的对应度数减一,并根据结果判断是否放入队列,循环直到队列为空,最后图中没有进过队列的顶点即为原图k核心的顶点集合。该过程中每个顶点最多进队一次,可以在线性时间内删去冗余的顶点。

预处理的第二步要求剩余图中的强连通分量,使用tarjan算法进行计算。基于深度优先搜索,搜索时维护一个栈记录正在搜索的顶点,回溯时判断是否需要从栈顶弹出一个强连通分量。得到所有强连通分量后,将每个顶点标上所属的强连通分量序号,根据序号在线性时间内划分成多个子图。

预处理的第三步将每个子图中的顶点按照degeneracy顺序重新编号。计算degeneracy顺序的方式与顶点的度数有关。初始化时计算每个顶点的入度出度之和,并按照度数将顶点分组。每次从不为空的组中取出一个度数最小的顶点,放入结果队列中,接着枚举该顶点的邻居将度数减一并移入邻居当前所属组的前一组,重复上述操作直到所有组均为空,结果队列即为所求。

图3给出了一个通过分步枚举得到极大有向团社区的示例,该步骤顺序执行bk、tarjan、扩展判定算法,将上一步操作的运行结果作为下一步计算的输入。例如在图3中,底图的极大团{1,2,3,5}中存在强连通分量{1,2,3},同时底图的极大团{1,2,3,4}中存在强连通分量{1,2,3,4},通过扩展判定{1,2,3}为找到的一个非极大结果,筛选去除。

分步枚举的第一步采用根据阈值参数剪枝的带pivot优化的bk算法,具体为:使用三个集合r、p、x,分别表示已经在当前团里的顶点、可加入当前团的顶点和从当前团出发已经寻找完所有结果的顶点。在每次递归操作最开始时,判断已在团中的顶点和可入团的顶点数量之和是否小于阈值,若是则之后的枚举操作均不可能找到满足大小约束的极大有向团,剪枝并返回上层函数搜索其余结果。接着,判断可选集合p是否为空集,若为空集则表示已经找到可能是极大团的结果,此时若x为空集则为新的极大团,否则当前结果可以通过加入x中的顶点构成已经计算过的极大团。若p不为空集,从p与x的并集中选择一个邻居和p交集最多的pivot点,从pivot或者pivot的非邻居顶点中取出一个顶点加入当前极大团中并递归搜索,回溯时已经搜索完当前团出发所有包含该顶点的极大团,因此从集合p移入x中。

分步枚举的第二步在上一步找到的所有极大团中枚举强连通分量,同预处理步骤中的第二步一样,使用tarjan算法进行计算。

分步枚举的第三步对找到的每一个强连通分量进行扩展判定判断是否是一个极大结果。具体过程是,首先将有向团中顶点的邻居交集根据连边情况分为源点集合、汇点集合和双连点集合,三个集合中的所有点均满足团的性质。其中源点指有向团所有顶点均为源点的出边邻居,汇点指有向团所有顶点均为汇点的入边邻居,双连点指在有向团中既有双连点的入边邻居也有出边邻居。如果双连点集合不为空,则可以直接用任意一个双连点集合中的顶点加入有向团中,否则可能需要两个顶点进行扩展。从汇点集合、源点集合中枚举点对,如果存在由汇点指向源点的连边则可以使用该点对扩展有向团,当找到第一个可扩展点集时即可判定可扩展。

图4是结果判重步骤中一棵已经存储了四个极大有向团的结果树示例,其中{1,2}和{1,5}共同拥有顶点序列前缀{1},因此属于同一个子树。如果需要插入一个新结果{2,3,6},从root节点出发经过②和③,新增叶节点⑥即可。

对于不是极大有向团的结果可以通过判定是否可扩展来筛选,但对于极大的重复有向团则需要与之前已经搜索出来的结果进行对比,并且由于极大有向团的结果非常多,合理的存储与判重方式非常重要。本方法使用类似于字典树的数据结构记录搜索中遇到的结果,称为一棵结果树。

在并行的分步枚举过程中,选定一个顶点保证其为找到的极大有向团中按照degeneracy顺序最小的顶点,限制了结果树中每个节点的出度和整棵树的高度。结果判重具体为:在插入结果序列的过程中维护结果树上的一个指针,初始指向根节点。按照编号序列的顺序,每次判断指针的当前指向节点是否存在编号对应的儿子节点,如果不存在则新建儿子节点并将指针指向该节点,否则直接根据编号与边的关系移向对应节点。如果该过程中不存在新建儿子节点的操作则当前顶点编号序列为重复结果。

以上是本发明的具体实施方式,但本发明的保护范围不应局限于此。任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内,因此本发明的保护范围应以权利要求书所限定的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1