用于最短路径图搜索的向量化的队列制造技术

技术编号:35559295 阅读:24 留言:0更新日期:2022-11-12 15:41
描述了用于向量化的队列的技术,该技术实现了确定值是否在队列中的向量化的“contains”函数。三阶段向量化的最短路径图搜索将每个扩展和探测迭代拆分成利用向量化的指令的三个阶段:(1)获取在下一个队列中的节点的邻居并将其写入当前队列。(2)确定目的地节点是否在当前队列中获取的邻居节点中。(3)获取的尚未被访问的邻居节点被放入下一个队列。根据实施例,向量化的复制操作使用向量化的加载和存储指令来执行基于向量的数据复制。具体而言,数据的向量被从源复制到目的地。复制到目的地的任何无效数据都将被附加有效数据的向量或者随机数数据的向量覆写。据的向量或者随机数数据的向量覆写。据的向量或者随机数数据的向量覆写。

【技术实现步骤摘要】
【国外来华专利技术】用于最短路径图搜索的向量化的队列


[0001]本专利技术涉及查询图数据库数据,并且更具体而言涉及使用向量化的操作在图数据库数据内执行最短路径图搜索,以及执行高效的基于向量的数据移动。

技术介绍

[0002]图处理是用于数据分析的重要工具。具体而言,数据实体之间的细粒度关系在图数据库中被具体化为图节点(或简称为“节点”)之间的图边(或简称为“边”)。可以查询和分析由节点表示的关于实体的信息以及由边表示的关于实体之间的关系的信息以获得对所表示的数据的洞察。
[0003]图处理包括两种主要方法:(a)分析/算法,和(b)模式匹配查询。图算法(诸如PageRank)迭代地探索图数据以识别图中编码的信息,并且可以聚合识别出的信息。相比之下,模式匹配查询为图的交互式探索提供接口,类似于结构化查询语言(SQL)为关系数据库提供的接口,重点是探索数据中的联系。为简单起见,本文的术语“图查询”是指图查询和模式匹配。虽然对图分析进行了大量研究,但图查询引起的关注却少得多。尽管如此,图查询对于工业来说是个非常重要的工具,正如大量可用的图查询引擎和语言所指示的那样。
[0004]图查询是具有挑战性的工作量,因为它们专注于图数据中的连接。寻找图数据中从一个或多个源节点到一个或多个目的地节点的(一条或多条)最短路径(本文称为最短路径图搜索或最短路径问题)是图论中的关键问题。这是计算和存储器昂贵的问题,并且在如图数据库、搜索引擎或社交网络等各种各样的系统中有许多应用。一些用例包括道路网络中的寻路、欺诈检测或计算机网络中的路由。在此类应用中使用的最短路径图搜索技术的效率极大地影响了应用本身的效率。
[0005]最短路径问题有多种变体。最短路径可以或者构成1)从源节点到目的地节点的边最少的路径

即,它具有最小的跳距(在由边直接连接的两个节点之间执行跳);或2)路径的边的权重之和最小的路径

即,所谓的“最便宜的路径”。图1描绘了具有节点A

F和表示节点之间关系的边(与权重相关联)的示例图数据100。在图1中,从节点A到节点B的最短路径(跳数最少)是A

D

B,而从节点A到节点B的最便宜的路径是A

E

D

B。
[0006]关于源节点和目的地节点的数量还有进一步的变化。单对最短路径问题涉及单对节点(如上面解释的从节点A到节点B的最短路径搜索),涉及从一个源节点到一个目的地节点的最短路径。单源最短路径问题涉及图中从一个源节点到多个目的地节点中的每一个(直至所有其它节点)的最短路径。单目的地最短路径问题涉及从图的多个源节点(直至所有节点)中的每一个到一个目的地节点的最短路径。全对最短路径问题涉及从图的多个源节点中的每一个(直至所有节点)到图的多个目的地节点中的每一个(直至到所有其它节点)的最短路径。最短路径问题通过多种图分析普遍存在,照此,最短路径问题的已实现的解决方案的有效性极大地影响了相关联的图分析是否被高执行。
[0007]最短路径图搜索算法基于图的物理表示而存在显著差异。图可以经由邻接矩阵或经由邻接列表来表示。在邻接矩阵类型的图表示中,矩阵的每个元素表示所表示图中的关
联节点对是否相邻(或是邻居),即,通过一跳连接。矩阵表示对于不随时间改变的密集图工作良好。但是,矩阵类型的图表示一般用于表示相对小的图数据集,因为邻接矩阵的存储器消耗是基于所表示图中节点数的二次方。因此,矩阵样式的图表示对于甚至中型图数据集一般就是不切实际的,更不用说对于大型图形数据集,因为中型到大型数据集的邻接矩阵的存储器需求一般超过可用存储器。
[0008]在邻接列表类型的图表示中,对于所表示图中的每个节点,表示给定图的一个或多个邻接列表包括相应节点的邻居节点的相应子列表。邻接列表类型的图表示的存储器需求是线性的,基于所表示图中的节点数。照此,对于大型图数据集,列表类型图表示使用的存储器比矩阵类型图表示所需的存储器少。
[0009]一般而言,广度优先遍历策略被用于解决最短路径问题。这种技术迭代地扩展可以从源节点到达的已知节点集,直到或者(a)到达目的地节点,或者(b)源节点可到达的节点集无法进一步扩展。在后一种情况下,图数据中没有从源节点到目的地节点的路径。
[0010]此类策略的实施方式一般维护散列表来记录哪些节点已经被访问过。此类实施方式一般还维护两个队列;一个队列记录在当前迭代中被扩展的节点集,而另一个队列记录将在下一次迭代中被扩展的节点集。
[0011]以下伪代码1说明了最短路径图搜索的标量实施方式:
[0012][0013][0014]伪代码1:标量shortest_path()
[0015]在伪代码1的第1

2行中,函数Graph::shortest_path将源节点(node0)和目的地节点(node1)以及状态对象(vs)作为输入参数。状态对象保存函数所需的数据结构(即,队列,以及无序集,一般被实现为散列表)并被用于避免在每次调用函数时创建和销毁这些数据结构。在第4

5行,如果给定节点作为源节点和目的地节点被传递,那么函数返回距离0。在第6

8行,无序集和两个队列被指派给变量visited、cur_queue和next_queue。所有这三个数据结构在函数开始时都是空的。在第9行,保持距离的变量dist最初设置为0,并将起始节点添加到下一个队列。
[0016]此后,在第13

40行,伪代码1在外循环中迭代,直到或者找到目的地节点(第27

29行),或者下一个队列为空(第13行)。在后一种情况下,没有从源节点到结束节点的路径并且返回

1(第43行)。在外循环的每次迭代中,距离增加一(第17行),并交换cur_queue和next_queue的内容,即,通过将next_queue的所有节点指派给cur_queue,从而清空next_queue(第15行)。此后,获取cur_queue的节点(第20行),并且伪代码1在内循环中在所获取的节点的所有邻居节点上迭代(第19

39行)。在第22行,获取的节点从cur_queue被删除。在内循环中,伪代码1检查每个邻居节点是否是目的地节点

在这种情况下返回dist并终止函数(第27

29行)

如果不是,那么探测该节点是否已经在visited散列中表(第32行)。如果节点之前没有被访问过,那么伪代码1将邻居节点添加到next_queue和visited散列表中(第33

38行)。
[0017]此类标量最短路径图搜索要求检查每个节点是否是目的地节点以及该节点之前
是否被访问过。这些功能要求多次触摸队列中的每个节点,这可以是耗时的。此外,最短路径图搜索的标量实施方式包括不可预测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于在图数据库中识别包括源节点和目的地节点的一对节点之间的路径的计算机执行的方法,该方法包括:通过在图数据库中识别下一个队列中的节点的一个或多个邻居节点来执行第一阶段;通过确定目的地节点是否包括在所述一个或多个邻居节点中来执行第二阶段;以及响应于确定目的地节点不包括在所述一个或多个邻居节点中,通过针对所述一个或多个邻居节点中的每个节点执行以下操作来执行第三阶段:确定相应节点先前是否已被访问,并且响应于确定相应节点先前未被访问过,在下一个队列中包括相应节点;其中该方法由一个或多个计算设备执行。2.如权利要求1所述的计算机执行的方法,其中确定目的地节点是否包括在所述一个或多个邻居节点中包括:用目的地节点的标识符填充目的地节点向量;其中识别所述一个或多个邻居节点的信息存储在当前队列中;对于当前队列中的每个数据的向量:使用向量化的指令将数据的相应向量与目的地节点向量进行比较,以产生相应的结果向量,以及至少部分地基于相应的结果向量来确定目的地节点是否包括在数据的相应向量中。3.如权利要求1所述的计算机执行的方法,还包括:在邻接列表中识别存储下一个队列中的第一节点的邻居节点的列表的数据的第一部分;通过第一复制操作,通过向量将数据的第一部分复制到当前队列。4.如权利要求3所述的计算机执行的方法,其中:第一复制操作的执行导致邻居节点数据存储在当前队列中;以及执行第二阶段至少部分地基于存储在当前队列中的邻居节点数据。5.如权利要求3所述的计算机执行的方法,还包括:在邻接列表中识别数据的第二部分,该第二部分存储下一个队列中的第二节点的邻居节点的第二列表;通过第二复制操作,通过向量将数据的第二部分复制到当前队列中标记邻居节点信息的结束的位置;其中复制数据的第二部分包括覆写在第一复制操作中复制的数据。6.如权利要求3所述的计算机执行的方法,还包括:在通过第一复制操作复制数据之后并且在执行第二阶段之前,用随机数数据覆写当前队列中的数据的特定部分,该数据的特定部分直接跟随反映用于下一个队列中的节点的邻居信息的数据;其中数据的特定部分反映除用于...

【专利技术属性】
技术研发人员:B
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:

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

1