一种基于团的大规模图最短距离索引方法技术

技术编号:13603770 阅读:31 留言:0更新日期:2016-08-27 23:22
本发明专利技术公开了一种基于团的大规模图最短距离索引方法。伴随着大数据时代的到来,图处理面临的数据规模越来越大,使得传统的距离算法(Dijkstra,BFS,Floyd)因为内存瓶颈变得不再适用,同时在在线应用中,对响应时间要求高,传统算法会因运算时间过长而无法满足实时响应的需求。为满足现实应用中对距离查询的实时响应要求,基于索引的大规模图距离查询算法得以提出。本发明专利技术提出的是一种针对无向无权稠密图的距离索引。在无向无权图中,特别是强关系图中,例如社交网络,通信网络中存在大量全连通子图(又被称为团)。本发明专利技术提出的索引是一种基于团的索引,同其他索引比较可有效压缩索引大小。

【技术实现步骤摘要】

本专利技术属于图算法
,更具体地,涉及一种基于团的大规模图最短距离索引方法
技术介绍
图数据被广泛用于刻画现实世界的各种实体关系,例如社交网路,语义网络,公路网路等等。许多应用问题最终可以抽象成图问题,最短距离(最短路径)作为图基础而重要的问题之一,有着广泛的应用背景,例如上文感知的web搜索,智能导航,LBS,社交网络的分析等。伴随着大数据时代的到来,图处理面临的数据规模越来越大,使得传统的距离算法(Dijkstra,BFS,Floyd)因为内存瓶颈变得不再适用,同时在在线应用中,对响应时间要求高,传统算法会因运算时间过长而无法满足实时响应的需求。为缩短距离查询时间,基于索引的距离查询算法应运而生。基于索引的查询算法,采用的是空间换时间思想,预计算图中部分顶点之间最短距离并将其组织成合适的索引,利用这些索引的组合可以计算出两点间的距离。根据图距离查询算法对处理数据的精度区分,可以将算法分为精确和非精确两类。精确算法可以得出任意两点的实际的最短距离,通常建立的索引比较复杂,占用的空间也比较大,而非精确算法得出的两点距离是个估值,准确度难以保证,特别是两个相距较近的点更容易产生误差,但是非精确算法建立的索引占用的空间较小,有更好的可扩展性。
技术实现思路
针对无向无权稠密图,本专利技术提出了一种精确距离索引。本专利技术首先利
用独立集对图中的顶点进行分层,然后自顶向下建立每个顶点的距离索引。针对精确索引通常占用空间较大,本专利技术利用稠密图的特有属性进行索引压缩。在一些种类的稠密图,例如社交网络,通信网络中存在着大量的完全连通子图(图论中称为团),利用这些团信息可以压缩表示距离索引,达到减小索引占用空间和加快查询速度的目的。本专利技术提供了一种基于团的大图最短距离索引方法,该方法针对无向无权稠密图计算其距离索引,所述方法包括以下步骤:(1)对图数据进行清理工作,去除自环和冗余边,将图数据以邻接表形式存储;(2)利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点构成的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所有顶点;(3)原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点(rank值高的点)向下层顶点(rank值低的点)建立距离索引,每个顶点记录到其祖先节点间的距离;(4)对每个顶点的距离索引,可将其中属于同一个团的顶点距离信息聚合压缩。与现有技术相比,本专利技术具有以下有益效果:(1)减小索引大小:原有的精确距离索引方法针对所有类型的图,未对特定类型的图进行优化;本专利技术利用稠密图中的团信息对索引进行压缩,可有效减小索引大小。(2)提高查询速度:一方面查询时间和索引大小成线性关系,故索引减小后,查询速度自然会有所提升;另一方面,压缩的索引可以进行位运算,进一步提高了速度。附图说明图1是本专利技术的总体流程图;图2是步骤(2)顶点分层的细化流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。图1所示为本专利技术基于团的大图最短距离索引方法流程图,具体包括以下步骤:(1)对图数据进行清理工作,去除自环和冗余边,将图数据以邻接表形式存储;(2)利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点构成的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所有顶点;(3)原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点(rank值高的点)向下层顶点(rank值低的点)建立距离索引,每个顶点记录到其祖先节点间的距离;(4)对每个顶点的距离索引,可将其中属于同一个团的顶点距离信息聚合压缩。如图2所示,对图1步骤(2)详细步骤如下:(2.1)对图中所有剩余顶点按照顶点度数进行排序;(2.2)假设i代表是第几次迭代,Si代表独立集,Gi代表移除Si-1后的图;按照顶点的度数由小到大选出一个尽可能大的独立集(互不相连的顶点组成的集合)Si;(2.3)对于Si中的每一个顶点v,从图Gi-1中移除v及其关联的边,假设其两个邻接点为u,w,若边<u,w>不存在,则添加辅助边<u,w>,且其
权值等于边<u,v>与边<v,w>的权值之和;若边<u,w>存在且权值大于<u,v>与<v,w>的权值之和,更新边<u,w>的权值为<u,v>与<v,w>的权值之和;(2-4)重复(2-1),(2-2),(2-3)的步骤直到Gi剩余一个顶点,此时所有顶点都被分割到若干独立集中,即∑∪Si=V,若顶点属于Si,则其rank值为i,最终每个顶点都有确定的rank值。对图1步骤(3)进行详细步骤如下:(3-1)初始化集合L(v),将(v,0),(w,WG(w,v))并入L(v),其中w为v的邻接点,WG(w,v)为边<w,v>的权值;(3-2)假设顶点rank的最大值为h,任意两点x,y的距离为dist(x,y),v∈Si(i=h-1,h-2,...,2,1),u∈Sj(j=i+1,...,h),(u,dist(u,v))∈L(v),(w,dist(w,u))∈L(u),若L(v)中未包含(w,dist(w,v)),则将(w,dist(w,u)+dist(u,v))插入到集合L(v)中;否则,更新dist(w,v)的值为dist(w,v),dist(w,u)+dist(u,v)两者中的较小者;优选地,在自顶向下的索引构建过程中,每个顶点的索引记录的是其到其祖先顶点的距离;在扩充图G’,两个顶点u,w间若存在序列<u=v1,v2,...,vn=w>且rank(v1)<rank(v2)<...<rank(vn),则w称为顶点u的祖先。对图1步骤(4)进行详细步骤如下:(4-1)对于顶点v的索引L(v),假设(u,dist(u,v))包含在L(v)中,扫描其余包含在L(v)中的条目(w,dist(w,v)),若u,w在同一个团中,将(w,dist(w,v))从L(v)中移除,转向(4-2);(4-2)若顶点u,w间的距离比u,v的距离小1,则将w放入集合中,否则放入集合其中(i=0,-1)表示与顶点u在同一个团中的顶点集合;(4-3)形成一条聚合团信息的压缩索引(u,dist(u,v),);(4-4)重复步骤(4-1),(4-2),(4-3)直至扫描完所有V中顶点。优选地,用机器字压缩表示,即集合中的元素用机器字中的某一个bit表示,若在集合中,将相应bit置1,否则置0。本领域的技术人员容易理解,以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡在本专利技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本专利技术的保护范围之内。本文档来自技高网
...

【技术保护点】
一种基于团的大规模图最短距离索引方法,其特征在于,包含以下步骤:(1)对原图数据进行清理,去除自环和冗余边,将图数据以邻接表形式存储;(2)利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点构成的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所有顶点;(3)将原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点向下层顶点建立距离索引,每个顶点记录到其祖先节点间的距离,其中顶层顶点是指rank值高的点,下层顶点是指rank值低的点;(4)对每个顶点的距离索引,将其中属于同一个团的顶点距离信息聚合压缩。

【技术特征摘要】
1.一种基于团的大规模图最短距离索引方法,其特征在于,包含以下步骤:(1)对原图数据进行清理,去除自环和冗余边,将图数据以邻接表形式存储;(2)利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点构成的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所有顶点;(3)将原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点向下层顶点建立距离索引,每个顶点记录到其祖先节点间的距离,其中顶层顶点是指rank值高的点,下层顶点是指rank值低的点;(4)对每个顶点的距离索引,将其中属于同一个团的顶点距离信息聚合压缩。2.根据权利要求1所述的方法,其特征在于,所述步骤(2)具体包括如下子步骤:(2.1)对图中所有剩余顶点按照顶点度数进行排序;(2.2)假设i代表是第几次迭代,Si代表独立集,Gi代表移除Si-1后的图;按照顶点的度数由小到大选出一个尽可能大的独立集(互不相连的顶点组成的集合)Si;(2.3)对于Si中的每一个顶点v,从图Gi-1中移除v及其关联的边,假设其两个邻接点为u和w,若边<u,w>不存在,则添加辅助边<u,w>,且其权值等于边<u,v>与边<v,w>的权值之和;若边<u,w>存在且权值大于<u,v>与<v,w>的权值之和,更新边<u,w>的权值为<u,v>与<v,w>的权值之和;(2.4)从Gi-1移除Si中所有节点后得到Gi,重复(2.1),(2.2)和(2.3)的步骤直到Gi剩余一个顶点,此时所有顶点都被分割到若干独立集
\t中,即∑∪Si=V,若顶点属于Si,则其rank值为i,最终每个顶点都有确定的rank值。3.根据权利要求1或2所述的方法,其特征在于,所述步骤(3)具体包括如下子步骤:(3.1)初始化顶点v的索引L(v),将(v,0),(...

【专利技术属性】
技术研发人员:谢夏李沛洋金海
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1