一种基于k-truss的面向超图的社区发现方法技术

技术编号:32646647 阅读:19 留言:0更新日期:2022-03-12 18:30
本发明专利技术公开了一种基于k

【技术实现步骤摘要】
一种基于k

truss的面向超图的社区发现方法


[0001]本专利技术涉及设计图数据挖掘
,尤其是涉及一种基于k

truss的面向超图的社区发现方法。

技术介绍

[0002]超图是一种高维的对于数据的图形展示,弥补了普通图表示方式信息丢失的缺陷,专用于描述具有成对的组合关系(点与超边)的体系。超图由节点和超边组成,每个节点可以是一个人或一个对象。然而,每个超边可以充当任意数量节点的交互。
[0003]图社区发现是网络研究中的一个非常重要的分支,社区是一组拥有密切关系的实体集合。而k

truss作为一种稠密子图的表现形式,它的紧密程度要小于限制严格的团结构,但是大于k

core对于个体之间关系限制程度的要求,能很好的体现出一个社交网络中各个个体之间的关系。目前,在图中进行社区挖掘的问题,已经得到了广泛的研究和应用。由于图社区发现中常常需要的是一个社区中的极大k

truss,所以该类问题的主要目的通常是挖掘出图中的极大k

truss。
[0004]社区发现的研究对于分析网络的拓扑结构、理解网络的功能、发现网络中的隐藏规律和预测网络的行为都有十分重要的理论意义和应用前景。在计算机科学、物理、数学、生物、社会学和复杂性科学等领域均有相关的研究和应用,例如用于社会网络分析(如组织结构管理),生物网络分析(如新陈代谢网络分析、蛋白质交互网络分析、未知蛋白质功能预测、基因调控网络分析和主控基因识别等),Web社区挖掘,基于主题词的Web文档聚类和搜索引擎等。对一个大型网络进行社区发现,其实是对其按照某种标准进行了划分,在此基础上可对每个社区做进一步的发掘。而从计算的角度而言,社区发现相当于分解了任务,起到了降低计算复杂度的作用。
[0005]目前并没有基于超图的极大k

truss挖掘方法,而在图上使用较为广泛的方法是基于内存的计算方法,基本的计算思路是将图读入内存中并计算出图中每条边的支持度;给定一个k值,过滤掉所有支持度小于k

2的边;不断地递增k的值,重复以上步骤,直至图中所有的边都被移除为止;最终所留下的k

truss就是该图的极大k

truss。
[0006]这种方法虽然能够得到结果,但是存在着大量的冗余计算,通过这种方法计算极大k

truss时,需要不断地递增k的值,并对每一个k值都计算出相应的k

truss,在这个过程中,还需要不断的维护所有边的支持度的大小,而我们最终需要的通常只是最后找到的极大k

truss。因此该过程存在大量的冗余计算。其次,随着数据规模的增长,图和超图的规模也不断扩大,难以完整的将整个图载入到内存中,因此在整个图上进行这样的计算也是非常困难的。最后,目前在超图上还未有解决此类问题的方法。

技术实现思路

[0007]本专利技术的目的是提供一种基于k

truss的面向超图的社区发现方法,实现了在超图上的社区发现,解决了图上传统算法计算冗余、效率低等问题。通过使用该方法,可以分
析网络的拓扑结构、理解网络的功能、发现网络中的隐藏规律和预测网络的行为。
[0008]为实现上述目的,本专利技术提供了一种基于k

truss的面向超图的社区发现方法,具体步骤如下:
[0009]S1、首先输入超图H
G
=(V,E
h
)、S、r。S为允许精确计算的超图大小,r为加速因子,提高算法的迭代效率,r>=1。计算超图中所有超边的support。
[0010]S2、初始化超图的极大k

truss下界low=0,上界up=0,当Size(|H|)>S时,进行以下操作:
[0011]S3、计算当前超图中的三角形个数T=所有超边的support之和/3。令low=max(low,最小的超边support,T/超边总数),令up=max(up,最小的超边support,r*(T/超边总数))。
[0012]S4、将所有support小于上界up的超边从超图H中删除,得到一个新的超图H,更新所有剩余超边的support。
[0013]S5、重复步骤S2,直到超图H的大小小于S,执行步骤S6;
[0014]S6、令t=up,当超图H中剩余超边的集合不为空时,进行以下操作:
[0015]S7、移除所有support小于t的超边,所有移除的超边构成集合E0(H),更新所有剩余超边的support。
[0016]S8、若t>up,则对于所有属于E0(H)的超边,它们的truss值为t+2;否则令t=max(t、H中最小的超边support)。
[0017]S9、重复步骤S7,直到剩余超边集合为空时,若此时t>up,则t+2则是最终找到的k

truss值;否则,令r=1、up=low、H=初始输入超图,重复步骤S3。
[0018]其中,超图support定义:三条超边两两相交构成一个三角形,超边的support为该条超边参与构成的三角形数量。
[0019]超图k

truss定义:给定一个超图H和一个正整数k,满足k>2,H的k

truss为H中的满足对H中的任意超边,超边的support大于k的极大子图。
[0020]超图极大k

truss定义:K为H中的一个k

truss,且k为最大值。
[0021]因此,本专利技术采用上述一种基于k

truss的面向超图的社区发现方法,实现了在超图上进行truss分解计算的一种可行方案。本方案具有如下优点:
[0022]该方法将图的理论扩展到超图,在超图上实现了k

truss分解和极大k

truss的挖掘。本专利技术提供了一种基于k

truss的面向超图的社区发现方法,使得在超图上也能够进行社区发现,并以此来分析超图的社区网络结构和数据分布状况。本方法通过一个近似算法来快速收敛,找到最有可能成为极大k

truss的子图范围,避免了对整个超图进行大量的计算,提高了计算速度,解决了传统方案中内存大小无法容纳整个超图的问题,本专利技术还通过确定上下界的方式避免了对超图的每一层级进行分解计算,大幅减少了不必要的计算内容,消除了传统算法的冗余计算过程。
[0023]下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。
附图说明
[0024]图1是超边支持度的堆结构示意图。
具体实施方式
[0025]以下通过附图和实施例对本专利技术的技本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于k

truss的面向超图的社区发现方法,其特征在于,具体步骤如下:S1、首先输入超图H
G
=(V,E
h
)、S、r,S为允许精确计算的超图大小,r为加速因子,提高算法的迭代效率,r>=1,计算超图中所有超边的support;S2、初始化超图的极大k

truss下界low=0,上界up=0,当Size(|H|)>S时,进行以下操作;S3、计算当前超图中的三角形个数T=所有超边的support之和/3,令low=max(low,最小的超边support,T/超边总数),令up=max(up,最小的超边support,r*(T/超边总数));S4、将所有support小于上界up的超边从超图H中删除,得到一个新的超图H,更新所有剩余超边的support;S5、重复步骤S2,直到超图H的大小小于S,执行步骤S6;S6、令t=up,当超图H中剩余超边的集合不为空时,进行以下操作;S7、移除所有support小于t的超边,所有移除的超边构成集合E0(H),更新所有剩余超边的support;S8、若t>up,则对于所有属于E0(H...

【专利技术属性】
技术研发人员:易晗李荣华高玉金秦宏超王国仁金福生
申请(专利权)人:北京理工大学
类型:发明
国别省市:

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

1