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

文档序号:10534941阅读:168来源:国知局
一种基于团的大规模图最短距离索引方法
【专利摘要】本发明公开了一种基于团的大规模图最短距离索引方法。伴随着大数据时代的到来,图处理面临的数据规模越来越大,使得传统的距离算法(Dijkstra,BFS,Floyd)因为内存瓶颈变得不再适用,同时在在线应用中,对响应时间要求高,传统算法会因运算时间过长而无法满足实时响应的需求。为满足现实应用中对距离查询的实时响应要求,基于索引的大规模图距离查询算法得以提出。本发明提出的是一种针对无向无权稠密图的距离索引。在无向无权图中,特别是强关系图中,例如社交网络,通信网络中存在大量全连通子图(又被称为团)。本发明提出的索引是一种基于团的索引,同其他索引比较可有效压缩索引大小。
【专利说明】
一种基于团的大规模图最短距离索引方法
技术领域
[0001 ]本发明属于图算法技术领域,更具体地,涉及一种基于团的大规模图最短距离索 引方法。
【背景技术】
[0002] 图数据被广泛用于刻画现实世界的各种实体关系,例如社交网路,语义网络,公路 网路等等。许多应用问题最终可以抽象成图问题,最短距离(最短路径)作为图基础而重要 的问题之一,有着广泛的应用背景,例如上文感知的web搜索,智能导航,LBS,社交网络的分 析等。
[0003] 伴随着大数据时代的到来,图处理面临的数据规模越来越大,使得传统的距离算 法(0。1^杜&,8?5^1 〇7(1)因为内存瓶颈变得不再适用,同时在在线应用中,对响应时间要 求高,传统算法会因运算时间过长而无法满足实时响应的需求。为缩短距离查询时间,基于 索引的距离查询算法应运而生。基于索引的查询算法,采用的是空间换时间思想,预计算图 中部分顶点之间最短距离并将其组织成合适的索引,利用这些索引的组合可以计算出两点 间的距离。
[0004] 根据图距离查询算法对处理数据的精度区分,可以将算法分为精确和非精确两 类。精确算法可以得出任意两点的实际的最短距离,通常建立的索引比较复杂,占用的空间 也比较大,而非精确算法得出的两点距离是个估值,准确度难以保证,特别是两个相距较近 的点更容易产生误差,但是非精确算法建立的索引占用的空间较小,有更好的可扩展性。

【发明内容】

[0005] 针对无向无权稠密图,本发明提出了一种精确距离索引。本发明首先利用独立集 对图中的顶点进行分层,然后自顶向下建立每个顶点的距离索引。针对精确索引通常占用 空间较大,本发明利用稠密图的特有属性进行索引压缩。在一些种类的稠密图,例如社交网 络,通信网络中存在着大量的完全连通子图(图论中称为团),利用这些团信息可以压缩表 示距离索引,达到减小索引占用空间和加快查询速度的目的。
[0006] 本发明提供了一种基于团的大图最短距离索引方法,该方法针对无向无权稠密图 计算其距离索引,所述方法包括以下步骤:
[0007] (1)对图数据进行清理工作,去除自环和冗余边,将图数据以邻接表形式存储; [0008] (2)利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点 构成的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所 有顶点;
[0009] (3)原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点(rank值高 的点)向下层顶点(rank值低的点)建立距离索引,每个顶点记录到其祖先节点间的距离;
[0010] (4)对每个顶点的距离索引,可将其中属于同一个团的顶点距离信息聚合压缩。
[0011] 与现有技术相比,本发明具有以下有益效果:
[0012] (1)减小索引大小:原有的精确距离索引方法针对所有类型的图,未对特定类型的 图进行优化;本发明利用稠密图中的团信息对索引进行压缩,可有效减小索引大小。
[0013] (2)提高查询速度:一方面查询时间和索引大小成线性关系,故索引减小后,查询 速度自然会有所提升;另一方面,压缩的索引可以进行位运算,进一步提高了速度。
【附图说明】
[0014] 图1是本发明的总体流程图;
[0015] 图2是步骤⑵顶点分层的细化流程图。
【具体实施方式】
[0016] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要 彼此之间未构成冲突就可以相互组合。
[0017] 图1所示为本发明基于团的大图最短距离索引方法流程图,具体包括以下步骤:
[0018] (1)对图数据进行清理工作,去除自环和冗余边,将图数据以邻接表形式存储;
[0019] (2)利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点 构成的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所 有顶点;
[0020] (3)原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点(rank值高 的点)向下层顶点(rank值低的点)建立距离索引,每个顶点记录到其祖先节点间的距离; [0021] (4)对每个顶点的距离索引,可将其中属于同一个团的顶点距离信息聚合压缩。
[0022] 如图2所示,对图1步骤(2)详细步骤如下:
[0023] (2.1)对图中所有剩余顶点按照顶点度数进行排序;
[0024] (2.2)假设i代表是第几次迭代,&代表独立集,仏代表移除Sh后的图;按照顶点的 度数由小到大选出一个尽可能大的独立集(互不相连的顶点组成的集合)S 1;
[0025] (2.3)对于S#的每一个顶点v,从图Gp冲移除v及其关联的边,假设其两个邻接 点为U,w,若边<U,W>不存在,贝lj添加辅助边<u,w>,且其权值等于边<u, V〉与边<v,w>的权值 之和;若边〈U,W>存在且权值大于〈U,V〉与〈V,W>的权值之和,更新边〈U,W>的权值为〈U,V〉与 <v,w>的权值之和;
[0026] (2-4)重复(2-1),(2-2),(2-3)的步骤直到Gi剩余一个顶点,此时所有顶点都被分 害_若干独立集中,即E USfV,戈若顶点属于Si,则其rank值为i,最终每 个顶点都有确定的rank值。
[0027] 对图1步骤(3)进行详细步骤如下:
[0028] (3_1)初始化集合1^(>),将(>,0),(¥,16(¥,¥))并入1(>),其中¥为¥的邻接点,1〇(¥, V )为边〈W,V〉的权值;
[0029] (3-2)假设顶点抑]^的最大值为11,任意两点1,7的距离为(1181:(1,7),¥£51(1=11- 1,h_2,? ? ?,2,l),uGSj(j = i+l,? ? ?,h),(u,dist(u,v))GL(v),(w,dist(w,u))GL(u),若 L(v)中未包含(《,虹5^(?^)),则将(《,虹5^(?,11)+(115^(11^))插入到集合1(4中;否则,更 新dist(w,v)的值为dist(W,V),虹81:(¥,11)+(1181:(11,¥)两者中的较小者;
[0030]优选地,在自顶向下的索引构建过程中,每个顶点的索引记录的是其到其祖先顶 点的距离;在扩充图G',两个顶点u,w间若存在序列<U = V1,V2,. . .,vn = w>且rank(vi)〈rank (V2)〈...〈rank(vn),贝ijw称为顶点u的祖先。
[0031] 对图1步骤(4)进行详细步骤如下:
[0032] (4-1)对于顶点¥的索弓丨1(>),假设(11,(1181:(11,¥))包含在1(>)中,扫描其余包含在 1^<>)中的条目(¥,(1181:(¥,¥)),若11,'\¥在同一个团中,将(¥,(1181:(¥,¥))从1(>)中移除,转向 (4-2);
[0033] (4-2)若顶点1!,《间的距离比u,v的距离小1,则将w放入集合中,否则放入集 合;其中i = 0,-1)表示与顶点U在同一个团中的顶点集合;
[0034] (4-3)形成一条聚合团信息的压缩索引(11,虹#(1^),6::1州,(^如);
[0035] (4_4)重复步骤(4_1),(4_2),(4_3)直至扫描完所有V中顶点。
[0036]优选地,C:/v) (_/=〇, -1)用机器字压缩表示,即集合中的元素用机器字中的某一个 bit表示,若在集合中,将相应bit置1,否则置0。
[0037]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以 限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含 在本发明的保护范围之内。
【主权项】
1. 一种基于团的大规模图最短距离索引方法,其特征在于,包含以下步骤: (1) 对原图数据进行清理,去除自环和冗余边,将图数据以邻接表形式存储; (2) 利用独立集对图的顶点进行分层,每层独立集都是由若干个互不相连的顶点构成 的顶点子集,最终每个顶点被划归到某一特定独立集,所有独立集的并集组成图的所有顶 占. (3) 将原图与步骤(2)中生成的所有辅助边构成一个扩充图G,自顶层顶点向下层顶点 建立距离索引,每个顶点记录到其祖先节点间的距离,其中顶层顶点是指rank值高的点,下 层顶点是指rank值低的点; (4) 对每个顶点的距离索引,将其中属于同一个团的顶点距离信息聚合压缩。2. 根据权利要求1所述的方法,其特征在于,所述步骤(2)具体包括如下子步骤: (2.1) 对图中所有剩余顶点按照顶点度数进行排序; (2.2) 假设i代表是第几次迭代,S1代表独立集,仏代表移除Sh后的图;按照顶点的度数 由小到大选出一个尽可能大的独立集(互不相连的顶点组成的集合)S 1; (2.3) 对于S1*的每一个顶点V,从图Gh中移除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-i移除Si中所有节点后得到Gi,重复(2.1),(2.2)和(2.3)的步骤直到Gi剩余 一个顶点,此时所有顶点都被分割到若干独立集中,即Σ U S1 = V,叉Π & = 0(/' * ./);若顶 点属于Si,则其rank值为i,最终每个顶点都有确定的rank值。3. 根据权利要求1或2所述的方法,其特征在于,所述步骤(3)具体包括如下子步骤: (3.1) 初始化顶点¥的索弓丨1^(>),将(>,0),(¥,¥〇(¥,¥))并入1^(>),其中¥为¥的邻接点,呢 (3.2) 假设顶点抑111^的最大值为11,任意两点1,7的距离为(1181:(1,7),¥£51(1=11-1,11-2, · · ·,2,l),ueSj(j = i+l,· · ·,h),(u,dist(u,v))eL(v),(w,dist(w,u))eL(u),若L(v) 中未包含(》,(1181:(¥,¥)),则将(¥,(1181:(¥,11)+(1181:(11,¥))插入到集合]^(>)中 ;否则,更新 虹81:(¥,¥)的值为(1181:(¥,¥),(1181:(¥,11)+(1181:(11,¥)两者中的较小者。4. 根据权利要求1或2所述的方法,其特征在于,所述步骤(3)具体包括如下子步骤: (4.1) 对于顶点V的索引L(v),假设(u,dist(u, V))包含在L(v)中,扫描其余包含在L(v) 中的条目(W,dist(W,V)),若U,W在同一个团中,将(¥,(1181:(¥,¥))从]^(>)中移除,转向 (4.2); (4.2) 若顶点1!,《间的距离比1!^的距离小1,则将《放入集合(:"?中,否则放入集合 cyw ;其中C>:Ki = 〇,-1)表示与顶点U在同一个团中的顶点集合; (4.3) 形成一条聚合团信息的压缩索弓丨(11,(1181:(11,¥),〇/:,€^柯); (4.4) 重复步骤(4.1),(4.2),(4.3)直至扫描完所有V中顶点。5. 根据权利要求1或2所述的方法,其特征在于子步骤(3)中,在自顶向下的索引构建过 程中,每个顶点的索引记录的是其到其祖先顶点的距离;在扩充图G',两个顶点u,w间若存 在序列〈u = vi,V2, · · ·,vn=w>且rank(vi)〈rank(V2)〈. · .〈rank(vn),则w称为顶点u的祖先。
【文档编号】G06F17/30GK105893486SQ201610188131
【公开日】2016年8月24日
【申请日】2016年3月29日
【发明人】谢夏, 李沛洋, 金海
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1