一种高效的分布式大规模动态图k核维护方法技术

技术编号:14687863 阅读:109 留言:0更新日期:2017-02-23 10:07
本发明专利技术公开了一种高效的分布式大规模动态图k核维护方法,属于图形信息检索领域。该发明专利技术方法包括静态时k核维护子方法、插入边时k核维护子方法和删除边时k核维护子方法,静态时k核维护子方法充分利用每个顶点的邻居顶点信息,每个顶点通过访问这些邻居顶点的信息即可快速维护自己的核数;同时,插入边时k核维护子方法和删除边时k核维护子方法在计算过程中从插入或者删除了边的顶点开始进行遍历,快速找到可能发生更新的最小顶点任务队列集合,并对顶点任务队列中的每个顶点执行相同的操作。本发明专利技术方法能够实时更新动态图数据变化,且便于扩展进行分布式计算,可以处理单机难以计算的大规模图数据。

【技术实现步骤摘要】

本专利技术属于图形信息检索领域,更具体地,涉及一种高效的分布式大规模动态图k核维护方法
技术介绍
随着互联网的飞速发展,人类的社会活动越来越网络化。人与人、人与实体之间关系被抽象成图,其中顶点表示人或者实体,边表示关系。在我们生活中充满了各种各样的图结构,微博、微信等社交网络,航班、火车、地铁等交通网络图,电商购物平台中商家商品和用户构成的买卖关系网络图,科研合作和论文引用网络图等等。这些网络图规模越来越大,数据越来越复杂,分析的难度也逐渐加大。因此直接对整个网络结构进行分析的难度很大,通常的做法是提取网络中的重要结构进行分析。其中最主要的一个工作是检测图中相互关系十分紧密的顶点所构成的紧密子图。而K核是一个强有力的标准来衡量复杂网络中一组顶点之间的紧密性。网络中节点度至少为k的极大子图构成图的k核。当一个节点属于K核,但不属于K+1核时,它的核数为k。K核分解的过程就是求出图中每个节点的核数。K核值越大的节点越靠近图的中心,在网络中的所处的地位越重要比传统研究中考虑的度数大的节点对于图的拓扑性质以及网络中信息的传播所起的作用要大。除了分析子图的紧密性,K核分解还被用于大规模网络的可视化、识别网络中最有影响力的传播者、社区发现等等。在许多现实生活的应用中,例如社交网络和互联网拓扑结构,都是会随着时间的变化发生变化。在这样的动态网络中,许多应用需要实时的维护每个节点的核数。例如在一个基于k核的网络可视化中,图结构随着用户的增减而变化,可视化算法便需要实时更新每个顶点的核数来动态的显示图结构。然而,在一个动态网络中实时更新k核是十分困难的。因为插入或者删除一条边可能会让该条边的端点核数增加或者减少1,但是这个端点的核数更新可能会传播至其邻居顶点,邻居顶点再传播至邻居顶点,以至于最后甚至传遍整个网络。现有的计算k核的算法大多集中在静态图上,计算图中所有顶点的核数。已有的关于动态图k核更新的方法,要么不够高效,复杂度过高,计算开销大,要么基于单机的计算,难于扩展至分布式方法,无法适用于大规模图数据。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种高效的分布式大规模动态图k核维护方法及系统,其目的在于采用迭代的计算框架,采用分布式思维,以动态图中每个顶点为最小单位,结合每个顶点的邻居顶点信息快速更新其真实核数,由此解决现有技术解决更新动态图k核过于复杂,开销过高,无法扩展分布式计算的问题。为实现上述目的,按照本专利技术的一个方面,提供了一种高效的分布式大规模动态图k核维护方法,该方法包括静态k核维护子方法、插入边时k核维护子方法和删除边时k核维护子方法:其中静态时k核维护子方法包括以下步骤:(11)将图中所有顶点的当前核数初始化为自身的度数,并将当前核数信息传递给其邻居顶点,再将所有顶点加入任务队列;(12)若队列为空,则结束流程;否则从任务队列中移除一个顶点,并求出此顶点的估算核数;(13)若此顶点估算核数小于当前核数,则该顶点的最终核数为估算核数,再把最终核数传递给该顶点的邻居顶点,并将该顶点再次加入任务队列,并返回步骤(12);否则直接返回步骤(12)。进一步地,所述步骤(12)中求各个顶点的估算核数值具体包括以下子步骤:(121)当前顶点核数记为core_v,初始化数组count大小为core_v,数组内每个元素值为0;(122)若当前顶点v还有未被访问的邻居顶点u,则选取core_u和core_v中较小的一个记为j,并且使数组count[j]增加1,之后返回到步骤(122);否则进入步骤(123);(123)初始化为i=core_v;若i>2,则count[i-1]=count[i-1]+count[i],之后i=i-1,返回步骤(123);否则进入步骤(124);(124)赋值i=core_v;(125)若i>1,count[i]<i,则i=i-1,返回步骤(125);否则当前顶点的估算核数值即为i,结束流程。其中插入边时k核维护子方法包括以下步骤:(31)将图中每个顶点的当前核数初始化为自身的度数,初始化每个顶点的访问标志位visited为0,移除标志位removed为0,计算每个顶点的最大核度数(MCD)和纯核度数(PCD):MCD(v)=|{u∈neighbor(v)|K(u)≥K(v)本文档来自技高网
...
一种高效的分布式大规模动态图k核维护方法

【技术保护点】
一种高效的分布式大规模动态图k核维护方法,其特征在于,当图没有发生变化时采用静态k时核维护子方法;静态时k核维护子方法包括以下步骤:(11)将图中所有顶点的当前核数初始化为自身的度数,并将当前核数信息传递给其邻居顶点,再将所有顶点加入任务队列;(12)若队列为空,则结束流程;否则从任务队列中移除一个顶点,并求出此顶点的估算核数;(13)若此顶点估算核数小于当前核数,则该顶点的最终核数为估算核数,再把最终核数传递给该顶点的邻居顶点,并将该顶点再次加入任务队列,并返回步骤(12);否则直接返回步骤(12)。

【技术特征摘要】
1.一种高效的分布式大规模动态图k核维护方法,其特征在于,当图没有发生变化时采用静态k时核维护子方法;静态时k核维护子方法包括以下步骤:(11)将图中所有顶点的当前核数初始化为自身的度数,并将当前核数信息传递给其邻居顶点,再将所有顶点加入任务队列;(12)若队列为空,则结束流程;否则从任务队列中移除一个顶点,并求出此顶点的估算核数;(13)若此顶点估算核数小于当前核数,则该顶点的最终核数为估算核数,再把最终核数传递给该顶点的邻居顶点,并将该顶点再次加入任务队列,并返回步骤(12);否则直接返回步骤(12)。2.根据权利要求1所述的一种高效的分布式大规模动态图k核维护方法,其特征在于,所述步骤(12)中求各个顶点的估算核数值具体包括以下子步骤:(121)当前顶点核数记为core_v,初始化数组count大小为core_v,数组内每个元素值为0;(122)若当前顶点v还有未被访问的邻居顶点u,则选取core_u...

【专利技术属性】
技术研发人员:金海王娜谢夏钱辰柯西江付煜
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1