当前位置: 首页 > 专利查询>之江实验室专利>正文

基于分层预计算的图数据中最短路径的查询方法和装置制造方法及图纸

技术编号:39678438 阅读:16 留言:0更新日期:2023-12-11 18:55
本说明书公开了一种基于分层预计算的图数据中最短路径的查询方法和装置,在接收到查询请求时,确定起始节点和目标节点,从预先构建得到的包含地标节点和普通节点的各层生成图中,根据各层生成图中普通节点与地标节点之间的最短路径

【技术实现步骤摘要】
基于分层预计算的图数据中最短路径的查询方法和装置


[0001]本说明书涉及计算机
,尤其涉及一种基于分层预计算的图数据中最短路径的查询方法和装置


技术介绍

[0002]目前,随着计算机技术的发展和业务融合的需要,图结构由于其可用于刻画现实世界中各种实体之间复杂关系的特点,被广泛应用于社交网络

计算机网络

语义网络

公路网络等多种网络结构中

而在使用图结构来抽象具体应用问题时,计算顶点间的最短路径成为了图数据的基本运算

[0003]一种常见的查询方式,是预先针对图结构中的每个节点,计算并存储该图结构中其他节点与该节点之间的最短路径,并在需要进行查询时,确定待查询节点对应的节点标识,并根据节点标识确定待查询节点,进而根据预先存储的待查询节点,确定最短路径

[0004]但是,在图结构所包含的节点的数量过大时,需要存储的最短路径的数量过于庞大,所需的计算资源也较多,可能会造成查询设备没有存储资源来存储相应数据的情况出现,进而导致无法查询

[0005]基于此,本说明书提供一种基于分层预计算的超大网络中最短路径的查询方法和装置


技术实现思路

[0006]本说明书提供一种基于分层预计算的图数据中最短路径的查询方法和装置,以部分的解决现有技术存在的上述问题

[0007]本说明书采用下述技术方案:本说明书提供一种分层预计算的图数据中的最短路径的查询方法,所述方法包括:接收目标图数据的查询请求,并确定所述查询请求对应的起始节点和目标节点;确定所述目标图数据对应的生成图数据,所述生成图数据中包含多层生成图,针对每层生成图,该生成图包含地标节点和普通节点,下一层生成图根据该层生成图中的普通节点构建;针对所述生成图数据中的每层生成图,根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定所述起始节点和所述目标节点在该层生成图中的最短路径,作为该层生成图中的目标路径;根据所述查询请求,返回各目标路径

[0008]可选地,所述方法应用于服务器,针对每层生成图,所述服务器中存储有该层生成图中各普通节点和该层生成图中各地标节点之间分别对应的最短路径;根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定所述起始节点和所述目标节点在该层生成图中的最短路
径,作为该层生成图中的目标路径,具体包括:根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定指定数量的特定路径,所述特定路径为该层生成图中以所述起始节点为起点

以所述目标节点为终点的路径;确定各特定路径分别对应的路径长度,并根据各路径长度,从各特定路径中确定路径长度最短的特定路径,作为该层生成图中的目标路径

[0009]可选地,所述方法还包括:将该层生成图中的目标路径作为候选路径,并确定所述候选路径对应的候选长度;根据所述候选长度,判断是否存在以所述起始节点为起点

以所述目标节点为终点且路径长度小于所述候选长度的指定路径;若是,确定所述指定路径为目标路径;若否,确定所述候选路径为目标路径

[0010]可选地,在确定各层生成图中的目标路径前,所述方法还包括:确定待生成的生成图数据包含的生成图的层数,并确定各层生成图分别对应的地标节点的数量;将所述目标图数据中包含的各节点,作为初始生成图包含的全量节点,构建所述初始生成图,并根据所述初始生成图中对应的地标节点的数量,从所述初始生成图包含的全量节点中,确定各地标节点,并所述全量节点中将除各地标节点外的节点,作为各普通节点;将所述初始生成图中的各普通节点,作为中间生成图的全量节点,构建所述中间生成图,并继续确定所述中间生成图包含的地标节点和普通节点,以及将所述中间生成图重新作为初始生成图,并根据重新确定出的初始生成图的普通节点,继续构建中间生成图,直至构建得到的中间生成图的数量到达预设的数量阈值为止;根据确定出的各初始生成图以及所述各初始生成图的构建次序,确定各层生成图以及各层生成图的次序,作为生成图数据

[0011]可选地,根据所述初始生成图中对应的地标节点的数量,从所述初始生成图包含的全量节点中,确定各地标节点,具体包括:针对所述初始生成图中的每个节点,确定该节点对应的邻居节点的数量;根据所述初始生成图中各节点分别对应的邻居节点的数量,对所述初始生成图中的各节点进行排序,并根据所述排序和所述初始生成图对应的地标节点的数量,确定各地标节点

[0012]可选地,将所述初始生成图中的各普通节点,作为中间生成图的全量节点,构建所述中间生成图,具体包括:在所述目标图数据中删除所述初始生成图中的各地标节点,以及删除所述各地标节点分别对应的路径,并将删除结果作为中间生成图

[0013]可选地,所述生成图数据中各层生成图包含的各地标节点的数量不完全相同

[0014]本说明书提供一种分层预计算的图数据中的最短路径的查询装置,所述装置包括:
接收模块,用于接收目标图数据的查询请求,并确定所述查询请求对应的起始节点和目标节点;确定模块,用于确定所述目标图数据对应的生成图数据,所述生成图数据中包含多层生成图,针对每层生成图,该生成图包含地标节点和普通节点,下一层生成图根据该层生成图中的普通节点构建;查询模块,用于针对所述生成图数据中的每层生成图,根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定所述起始节点和所述目标节点在该层生成图中的最短路径,作为该层生成图中的目标路径;返回模块,用于根据所述查询请求,返回各目标路径

[0015]本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述分层预计算的图数据中的最短路径的查询方法

[0016]本说明书提供了一种电子设备,包括存储器

处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述分层预计算的图数据中的最短路径的查询方法

[0017]本说明书采用的上述至少一个技术方案能够达到以下有益效果:在接收到查询请求时,确定起始节点和目标节点,从预先构建得到的包含地标节点和普通节点的各层生成图中,根据各层生成图中普通节点与地标节点之间的最短路径

各地标节点之间的最短路径,确定该起始节点和目标节点各层生成图数据中的最短路径,作为各目标路径

即使在目标图数据中包含的节点数较多的情况下,也可通过使用较少的计算资源存储普通节点和地标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种分层预计算的图数据中的最短路径的查询方法,其特征在于,所述方法包括:接收目标图数据的查询请求,并确定所述查询请求对应的起始节点和目标节点;确定所述目标图数据对应的生成图数据,所述生成图数据中包含多层生成图,针对每层生成图,该生成图包含地标节点和普通节点,下一层生成图根据该层生成图中的普通节点构建;针对所述生成图数据中的每层生成图,根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定所述起始节点和所述目标节点在该层生成图中的最短路径,作为该层生成图中的目标路径;根据所述查询请求,返回各目标路径
。2.
如权利要求1所述的方法,其特征在于,所述方法应用于服务器,针对每层生成图,所述服务器中存储有该层生成图中各普通节点和该层生成图中各地标节点之间分别对应的最短路径;根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定所述起始节点和所述目标节点在该层生成图中的最短路径,作为该层生成图中的目标路径,具体包括:根据该层生成图中各普通节点和各地标节点之间的最短路径

所述起始节点的位置和所述目标节点的位置,确定指定数量的特定路径,所述特定路径为该层生成图中以所述起始节点为起点

以所述目标节点为终点的路径;确定各特定路径分别对应的路径长度,并根据各路径长度,从各特定路径中确定路径长度最短的特定路径,作为该层生成图中的目标路径
。3.
如权利要求2所述的方法,其特征在于,所述方法还包括:将该层生成图中的目标路径作为候选路径,并确定所述候选路径对应的候选长度;根据所述候选长度,判断是否存在以所述起始节点为起点

以所述目标节点为终点且路径长度小于所述候选长度的指定路径;若是,确定所述指定路径为目标路径;若否,确定所述候选路径为目标路径
。4.
如权利要求1所述的方法,其特征在于,在确定各层生成图中的目标路径前,所述方法还包括:确定待生成的生成图数据包含的生成图的层数,并确定各层生成图分别对应的地标节点的数量;将所述目标图数据中包含的各节点,作为初始生成图包含的全量节点,构建所述初始生成图,并根据所述初始生成图中对应的地标节点的数量,从所述初始生成图包含的全量节点中,确定各地标节点,并所述全量节点中将除各地标节点外的节点,作为各普通节点;将所述初始生成图中的各普通节点,作为中间生成图的全量节点,构建所述中间生成图,...

【专利技术属性】
技术研发人员:王乐乐王永恒李炳强罗实巫英才
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1