CN103064872A - 使用数据结构处理搜索查询 - Google Patents

使用数据结构处理搜索查询 Download PDF

Info

Publication number
CN103064872A
CN103064872A CN2012104089710A CN201210408971A CN103064872A CN 103064872 A CN103064872 A CN 103064872A CN 2012104089710 A CN2012104089710 A CN 2012104089710A CN 201210408971 A CN201210408971 A CN 201210408971A CN 103064872 A CN103064872 A CN 103064872A
Authority
CN
China
Prior art keywords
node
terrestrial reference
shortest path
distance
source node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012104089710A
Other languages
English (en)
Other versions
CN103064872B (zh
Inventor
K.特雷特贾科夫
L.加西亚-巴吕洛斯
A.阿马斯-切尔文特斯
J.维洛
M.G.杜马斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Skype Ltd Ireland
Original Assignee
Skype Ltd Ireland
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GBGB1118332.4A external-priority patent/GB201118332D0/en
Application filed by Skype Ltd Ireland filed Critical Skype Ltd Ireland
Publication of CN103064872A publication Critical patent/CN103064872A/zh
Application granted granted Critical
Publication of CN103064872B publication Critical patent/CN103064872B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种处理搜索查询以提供搜索结果的方法,所述方法包括:在计算机设备处接收数字消息形式的搜索查询,所述查询标识源节点和目标节点;并且在所述计算机设备处执行用于生成搜索结果的应用,所述应用执行以下步骤:访问保持多个地标节点的数据结构,每个地标已经随其存储了父链接集形式的最短路径树,其中每个父链接标识邻近的顶点节点;对于每个地标,标识所述源节点和所述目标节点在通向所述地标节点的所述最短路径树中的位置;对于每个地标节点,使用所标识的所述目标节点和所述源节点的位置生成在所述源节点与所述目标节点之间的距离的度量;确定具有最短距离的所述地标;以及提供与该地标的所述最短路径树有关的搜索结果。

Description

使用数据结构处理搜索查询
技术领域
本发明涉及处理搜索查询,特别是在互连节点的网络中处理搜索查询。
背景技术
存在计算机网络典型地包括很大数目的互连节点的许多情形。例如Skype的通信网络代表用于对等通信的大型社交网络。图1是典型计算机网络的一小部分的示意图。示出的网络包括多个节点Ni。每个节点可以如图所示与一个或者多个物理计算机设备关联,例如在节点Ni的情况下示出了该节点与移动设备2、PC 4和平板电脑6关联。每个节点与单个用户关联,该用户在这一情况下可以使用这些计算机设备中的任何一个来向特定网络注册或者登录。示出了节点由连接Ci互连。在物理网络的背景中,可以用任何已知的有线或者无线方式实施连接Ci。在与节点关联的用户的背景中,连接未必涉及网络中的单个物理连接,但是代表与在连接的任一端处的节点关联的用户之间的关系。作为例子,在Skype的情况下,两个用户在他们处于彼此的联系人列表中的情况下被视为连接。对这样的网络的常见挑战是允许用户例如按照姓名搜寻另一用户并且看见搜索的结果,这些结果以它们到他的最短路径距离的顺序排列。类似地,用户可能希望知道什么联系人链允许他到达网络中的另一用户。对解决该问题的尝试已经使用分析技术以便找到在图形中的给定一对节点之间的最短路径。
存在有解决这一问题的许多方法。现有方法可以广义地分类为精确的和近似的。对于在具有数以亿计的顶点的图形上执行在线查询,精确方法(如基于Dijkstra遍历的方法)极其缓慢,该顶点数目是现代社交网络的典型大小。在近似方法之中,用于这一问题的可扩展的算法系列是所谓的基于地标(或者基于略图)的方法。在这一技术系列中,选择地标节点的固定集并且预先计算从每个顶点到一些或者所有地标的距离。关于到地标的距离的知识连同三角不等式一起典型地允许人们在O(k)时间、O(kn)空间内计算任何两个顶点之间的近似距离,其中k是地标数目并且n是网络中的顶点数目。然后可以原样使用那些估计或者进一步利用它们作为图形遍历或者路由策略的组成部分(component)以便获得精确的最短路径。
参考Potamias等人的标题为“Fast Shortest Path Distance Estimation in Large networks”的论文,该论文发表于CIKM ’09:2009年美国纽约第18界关于IKM会议的会议录第867-878页。在该论文中,在不同地标选择策略之下评估基于地标的距离估计算法。该算法依赖于存储每个地标节点到图形中的每个其它顶点的距离。与其它基于地标的算法一样,近似质量特别在网络随时间升级时可能较差。
在Gubichev等人的标题为“Fast and accurate estimates of shortest paths in large graphs”的另一篇论文中,该论文发表于CKM’10:2010年AEM的第19界AEM IKM会议的会议录第499-508页。与用于每个顶点的不同地标集一起存储从每个顶点到每个地标的完整路径。这显著提高存储器要求并且增加了用于处理查询的执行时间。
虽然基于地标的算法未提供关于近似质量的强理论保障,但是已经表明它们在实践中表现良好从而升级至具有数以百万或者甚至数十亿计的边的图形,而精度是可接受的并且响应时间在每个查询一秒以下。
本发明的目的是较现有技术而言提高精度,而用于返回搜索查询的结果的计算时间和存储器要求是可接受的。
发明内容
根据本发明的一个方面,提供一种处理搜索查询以提供搜索结果的计算机实施的方法,该方法包括:在计算机设备处接收数字消息形式的搜索查询,该查询标识源节点和目标节点;并且在计算机设备处执行用于生成搜索结果的应用,该应用执行以下步骤:访问保持多个地标节点的数据结构,其中每个地标节点已经随其存储了父链接集形式的最短路径树,其中每个父链接标识在数据结构中的每个节点与地标节点之间的最短路径中的邻近的顶点节点;对于每个地标节点,标识源节点和目标节点在通向地标节点的最短路径树中的位置;对于每个地标节点,使用标识的目标节点和源节点的位置生成源节点与目标节点之间的距离的度量;确定具有最短距离的地标节点;并且提供与该地标节点的最短路径树有关的搜索结果。
本发明也提供一种计算机程序产品,该计算机程序产品包括记录于介质上的程序代码装置,该程序代码装置在由计算机执行时执行上文限定的方法的步骤。
本发明在不同实施例中提供三种技术。
根据第一技术,通过以下操作生成距离的度量:在源节点与地标节点之间的最短路径上计算第一距离;在地标节点与目标节点之间的最短路径上计算第二距离;并且将第一与第二距离求和。
根据第二技术,通过标识在从源节点和目标节点到地标节点的最短路径树中的共同祖先节点来生成距离的度量。在一个版本中,在这之后为以下步骤:将从源节点到共同祖先节点的第一距离与从共同祖先节点到目标节点的第二距离求和。
在另一版本中,在这之后为以下步骤:标识在源节点与共同祖先节点之间的第一路径和在共同祖先节点与目标节点之间的第二路径中的所有节点对;定位所述对中的作为边的任何对;标识最短距离的边;并且使用边确定在源节点与目标节点之间的距离度量。
根据第三技术,通过以下操作生成距离的度量:记录在从源节点和目标节点到每个地标节点的最短路径树之间共同的节点;从源节点执行图形遍历(仅遍历共同记录的节点)以更新从源节点到目标节点的最短路径;并且使用更新的最短路径确定距离的度量。
本发明在另一方面提供一种用于处理搜索查询以提供搜索结果的计算机设备,该计算机设备包括:第一部件,形式为保持多个地标节点的数据结构,每个地标节点随其存储了父链接集形式的最短路径树,其中每个父链接标识在数据结构中的每个节点与地标节点之间的最短路径中的邻近顶点节点;以及第二部件,包括配置成执行用于生成搜索结果的应用的处理器,该应用执行以下步骤:访问数据结构;对于每个地标,标识源节点和目标节点在通向地标节点的最短路径树中的位置;对于每个地标,使用标识的目标节点和源节点的位置以生成在源节点与目标节点之间的距离度量;确定具有最短距离的地标;并且提供与该地标的最短路径树有关的搜索结果。
在下文中描述的本发明实施例提供涉及使用最短路径树的改进,具体而言,其中以父链接的形式保持最短路径树,其中每个父链接是在从源顶点到地标的最短路径上的下一顶点。使用最短路径树允许实现更高精度而时间和存储器开销是可接受的。另外,在边插入和删除之下可以递增地维持以这一方式存储的最短路径树,这允许全动态算法。因此,使用最短路径树提供相对于上文以Potamias的名义引用的论文而言的显著改进,后者仅保持从每个地标到每个顶点的距离。
与Gubichev的论文对照,以每个地标一个最短路径树的形式存储路径。最短路径树的存储是如下形式,该形式存储每个顶点-地标对(如与用于每个顶点的不同地标集对比)的仅单个指针(父链接)、减少存储器要求并且允许执行递增更新的可能性。在下文中讨论的本发明实施例允许对如下图形的显著改进的执行时间、例如多于四秒,该图形具有比2010年2月的Skype图形快照的边的十分之一更少的边和顶点的百分之一更少的顶点。
为了更好地理解本发明并且示出如何可以将本发明付诸实践,现在将通过例子参照如下附图。
附图说明
图1是网络的部分的图。
图2是用于执行搜索查询的系统的框图。
图3图示了用于一个地标的最短路径树。
图4图示了用于一个地标的数据集。
图5图示了具有更低共同祖先的最短路径树。
图6图示了具有边插入的最短路径树。
图7是地标选择方法的流程图。
图8是实验结果的表。
具体实施方式
图2是用于处理搜索查询的系统的示意框图。系统包括实施两个部件的计算机设备20。第一部件22是数据结构,该数据结构是以如这里进一步描述的图形形式保持数据的存储器或者其它形式的计算机存储库。第二部件是访问数据结构22并且使用它处理搜索查询的处理功能(function)24。在操作中,计算机设备20接收数字消息形式的查询26,并且计算机设备20操作以生成结果28。该结果可以由用户结果功能(function)30以多个不同方式利用。例如用户结果功能30可以是将其它输入与结果28一起接收并且向用户生成搜索结果的搜索功能。可替代地,用户结果功能30可以是向用户直接显示结果28的显示器。
每个部件22、24可以由处理器和存储器实施。将容易理解单个处理器和单个存储器可以用来提供两个部件,或者这些部件可以由分开的处理和分开的存储器提供。在第一组件中,由处理器22a执行的代码维持数据结构,并且如后文将更完全描述的那样在第二部件中由处理器执行的代码处理搜索查询。
计算机设备20接收来自用户的查询26。用户可以将查询输入到通过任何已知输入手段将他与之关联的物理设备之一中。通过任何传输机制以数字消息的形式向计算机设备20供应查询。例如当用户与客户端终端关联时,可以通过因特网向实施计算机设备20的服务器供应查询。可替代地,可以在客户端终端处本地处置查询。如将在下文中变得更清楚的那样,查询包括源节点和目标节点的标识符,该源节点一般是与输入查询的用户关联的节点,该目标节点将是查询的对象。
较现有技术而言的改进源于使用最短路径树(SPT)维持在图形中每个地标与每个顶点之间的路径。基于这一数据结构,派生出用于计算在任何节点对之间的近似最短路径的三个策略。另外,SPT的使用使所提出的方法适合于连续演变图形。
现在将描述本发明的实施例。
基本定义
G=(V,E)表示具有n=|V|个顶点和m=|E|个边的图形。为了简化说明,我们将考虑无方向非加权图形,尽管该方法可以容易推广以便也适应加权有方向图形。
在两个顶点                                                
Figure 2012104089710100002DEST_PATH_IMAGE001
之间的长度为l的路径
Figure 499310DEST_PATH_IMAGE002
被定义为序列,其中
Figure 354133DEST_PATH_IMAGE004
并且
Figure 2012104089710100002DEST_PATH_IMAGE005
。我们将路径的长度l表示为
Figure 716030DEST_PATH_IMAGE006
。两个路径
Figure DEST_PATH_IMAGE007
Figure 468086DEST_PATH_IMAGE008
的级联是组合路径
在顶点st之间的距离d(s,t)被定义为在st之间的最短路径的长度。图形中的最短路径距离是度量(metric)并且满足三角不等式:对于任何
Figure 976034DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE011
。            (1)
如果存在穿过u的最短路径
Figure 180750DEST_PATH_IMAGE012
,则上界变成等式。
图形的直径是图形中的最短路径的最大长度。社交网络在这方面的重要性质是它们的直径小。顶点的中心性是用来指代图形内的顶点的多个重要性度量的一般术语。居间中心性对应于穿过给定顶点的最短路径的的平均比例(mean proportion)。接近中心性测量顶点到图形中所有其他顶点的平均距离。
基于地标的距离估计
在描述改进之前,将说明基本的基于地标的距离估计技术。
如公式1中指出的那样,如果我们固定单个地标节点u并且预先计算从这一节点到图形中的每个其它顶点v的距离d(u,v),我们可以得到针对在任何两个顶点st之间的距离d(s,t)的上界近似:
Figure DEST_PATH_IMAGE013
如果我们现在选择k个地标的集合
Figure 566601DEST_PATH_IMAGE014
,则可以计算潜在更好的近似:
Figure DEST_PATH_IMAGE015
在原理上,三角不等式也允许计算关于距离的下界,但是先前工作指示下界估计不如上界估计那样精确。
在下文中,我们将这一算法称为地标-基本(LANDMARKS-BASIC)(算法1)。
对于非加权图形,该算法需要使用k个BFS遍历来预先计算距离的O(km)时间和存储距离的O(kn)空间。在O(k)时间内答复每个查询。注意这一方式仅允许我们计算近似距离,而未提供一种用于获得路径本身的方式。
改进的基于地标的算法
最短路径树
本发明实施例底层的概念是维持用于每个地标的显式最短路径树(SPT)而不是将到地标的距离简单地存储为数的思想。更准确地说,令为从顶点v到地标u的任意选择的最短路径上的下一顶点。我们将
Figure 166527DEST_PATH_IMAGE016
称为vu的SPT中的父链接(见图3)。类似于距离,可以以每个地标O(m)时间在图形的BFS遍历期间以简单直接方式计算父链接。
在图3中,黑箭头表示父链接。虚线是图形边,这些边不是树的部分。
父链接的可用性使得我们能够通过简单地跟随对应链接来恢复从每个顶点v到每个地标u的精确最短路径。例如,如果源节点是v 5,则数据集指示
Figure DEST_PATH_IMAGE017
Figure 609272DEST_PATH_IMAGE018
Figure DEST_PATH_IMAGE019
。因而它也允许计算最短路径距离d(u,v)(在该情况下为3),并且因此直接应用地标-基本算法的思想,而仅有的不同在于每个距离计算现在需要O(D)个步骤,其中D是图形的直径。随着社交网络图形直径趋小,这样的计算的开销是较少的。
注意这一方法允许除了距离近似之外还获得在任何两个顶点之间的实际路径。图4示出了数据结构22中的用于地标u的数据集。将理解针对每个地标保持相似数据集。
最低共同祖先方法
除了执行基本的基于地标的近似之外,SPT的可用性还允许我们显著改进关于许多顶点对的距离的上界估计。考虑图5中描绘的情形并且假设我们希望近似v 5v 8之间的距离。通过应用基本技术,我们获得上界估计
Figure 346284DEST_PATH_IMAGE020
。然而观察到一旦我们有显式最短路径:
Figure DEST_PATH_IMAGE021
我们就可以注意到它们二者穿过v 3,因此以下估计将导致更好上界:
。一般而言,无论两个最短路径
Figure 424147DEST_PATH_IMAGE024
何时具有共同顶点vu,我们都有:
Figure DEST_PATH_IMAGE025
,             (2)
并且因此如果我们使用v而不是u近似d(s,t),则我们获得更严密上界。自然地,选择提供最好的这样的近似的顶点v是有意义的。可见这一顶点是stu的SPT中的最低共同祖先(LCA)。当近似v 5v 8之间的距离时,我们使用它们的最低共同祖先v 3而不是地标u作为参考。
这一观察提供LCA近似方法(距离-LCA,算法2)的基础。通过将该距离估计代入公式3中,我们获得具有增加的精度的新算法地标-LCA(LANDMARKS-LCA)。注意也可以平凡地扩展这一算法以返回实际路径。
一种用于理解改进程度的方式是注意到基本算法将仅针对穿过地标顶点的最短路径提供精确估计。在图5中,那些仅为连接v 2v 1v 3的路径。然而LCA算法将针对沿着SPT存在的所有最短路径提供精确答复并且将典型地有明显更多那些最短路径。
地标-BFS
算法地标-基本和地标-LCA将每个地标独立于其它地标地用于距离近似。这不是对所有可用地标数据的最好可能的使用。例如考虑图6。当近似顶点v 1v 5之间的距离时,如果我们独立使用两个地标,则我们将获得长度为5的路径。通过组合两个子树,我们可以发现长度为4的更好路径。
这暗示较先前方法而言的强大改进。为了近似两个顶点之间的距离,收集从那些顶点到所有地标的所有路径并且在由那些路径的并集产生的子图形上执行常见的BFS(或者在加权图形的情况下为Dijkstra)遍历。我们将这一算法称为地标-BFS(算法3)。
对于k个地标,子图形的大小将少于2kD。因而地标-BFS的存储器复杂度为O(kD)并且时间复杂度至多为O(k 2 D 2)。
通过考虑其它图形边(即“捷径”),在地标-BFS中我们进一步将距离近似改进至3。
取捷径
v表示st的最低共同祖先。LCA算法通过
Figure 603456DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE027
的级联来近似
Figure 878579DEST_PATH_IMAGE028
。然而可能发生由边直接连接顶点
Figure DEST_PATH_IMAGE029
与顶点
Figure 207536DEST_PATH_IMAGE030
。在这一情况下,可以通过将路径
Figure DEST_PATH_IMAGE031
Figure 480385DEST_PATH_IMAGE032
Figure DEST_PATH_IMAGE033
级联来获得对
Figure 396258DEST_PATH_IMAGE028
的甚至更短近似。例如在图5中,边
Figure 475072DEST_PATH_IMAGE034
充当从
Figure DEST_PATH_IMAGE035
Figure 910733DEST_PATH_IMAGE036
的捷径。如果我们考虑这一个边,则我们可以将LCA距离估计进一步改进为真正的最短路径
Figure DEST_PATH_IMAGE037
为了对捷径定位,我们可以简单地检查
Figure 370795DEST_PATH_IMAGE038
中的所有顶点对,并且如果它们中的一些由边连接,则找到提供最佳距离估计的边。可以在
Figure DEST_PATH_IMAGE039
中、即至多
Figure 321434DEST_PATH_IMAGE040
个步骤完成这一点。我们将所得距离近似方法称为距离-SC(算法4)。通过使用公式3中的该上界估计,我们获得基于地标的算法地标-SC(LANDMARKS-SC)。
地标选择技术
虽然可以随机均匀选择地标,但是实验已经表明选择具有最高程度或者最低接近中心性的地标典型地保证更好的距离估计,然而表明两种方法提供相似的精度。上述估计算法可以与任何地标选择技术一起使用,不过现在描述具有改进精度的新颖地标选择技术。
最好覆盖
当地标u落在st之间的最短路径上时,它的上界距离估计是精确的。我们说这样的地标覆盖对(s,t)。因而最合乎需要的地标集将是覆盖尽可能多的顶点对的地标集。参照算法4和图7说明基于采样的简单贪婪策略。供应(702)代表网络的具有V个顶点的图形G。我们对M个顶点对的集合采样(704)并且计算(706,708)用于每对的精确最短路径。可以通过任何已知方法如BSF图形遍历实现这一计算。作为第一地标,我们选择(710)存在于样本的最大数目的路径中的顶点、即最流行的顶点。我们从样本去除(712)该第一地标覆盖的路径并且继续选择(通过针对i<k返回到710)覆盖大多数剩余路径的第二地标作为顶点。以相似方式确定返回(714)的集合中的后续地标。在数据结构22中存储地标。
递增更新
如果图形受到密集的边插入和删除,则原先已经计算的地标变得过时并且近似性能恶化。因此必须维持地标最新。虽然这可以借助每天或者每小时完全重新计算来实现,但是这样的解决方案在计算上昂贵。另外对于某些应用如上文提到的社交搜索,一直维持地标最新可能特别重要。实际上,如果新用户依赖于社交搜索功能建立他们的最初联系人列表,则重要的是添加新联系人将立即在随之产生的搜索排序中得到反映。
幸运的是,当以具有单指针(父链接)的最短路径树的形式维持地标时,可以递增地更新他们以适应边插入或者删除。已知用于在插入和删除之下维持SPT的过程,例如见D. Frigori等人的“Full dynamic algorithms for maintaining shortest path trees”,该文献发表于Journal of Algorithms的2000年11月2日第34卷第251-281页。在具有小直径的非加权图形的特定情况下,它们是相当简单直接的。
作为非正式例子,考虑图3上呈现的SPT。假设恰好已经向图形中插入边
Figure 141622DEST_PATH_IMAGE042
。SPT更新算法将继续如下。首先注意新添加的边提供从v 8到地标的比先前可用的路径更短的路径。因此必须改变v 8的父指针以利用新边:
Figure DEST_PATH_IMAGE043
。由于从v 8到地标的路径已经改进,我们必须递归地检查v 8的所有邻居(即v 6v 7)并且校验将它们的父指针切换到v 8是否将改进它们的通向地标的先前已知的路径。这对于v 6v 7而言均成立,因此我们设置
Figure 681057DEST_PATH_IMAGE044
。针对v 6v 7的所有邻居,我们再次重复这一点。发现没有新路径改进,我们完成更新。
边的删除涉及两道关(pass)。再次考虑图3并且假设从图形去除边
Figure DEST_PATH_IMAGE045
。为了找到v 3通向地标的新路径(和新父指针),我们首先检查它的邻居(v 5v 6)。遗憾的是,它们二者依赖于v 3以便到达地标,因此它们未提供立即的定位(fix)。使用最佳的可用新路径长度(目前为止为∞)作为关键词(key),我们在优先级队列中暂时记录v 3。然后我们递归地下降以处理v 3在SPT中的子代。顶点v 5没有立即定位并且在具有关键词∞的优先级队列中被记录。然而顶点v 6可以连接到v 4从而保持长度为3的通向地标的路径。因而无需处理v 6的子代。在重新连接v 6之后,我们必须更新它在优先级队列中的邻居(v 3v 5)的关键词——长度为4的新潜在路径好于先前记录的∞。这完成第一道关。在第二道关中,我们清空优先级队列从而重建SPT的其余部分。
在算法5和6中我们提供更新过程的更正式描述。
在理论上,单个更新可以触发用于整个图形的SPT重新计算(例如删除如下的边,该边是在地标与所有其它节点之间的桥梁)。然而在实践中,这样的情形是罕见的,并且根据我们的实验,为了处理实际Skype网络中的单个更新所必需的分摊时间是毫秒级。
网络
以下是现实世界社交网络图形的例子,这些例子代表在网络大小方面的四个不同数量级。
· DBLP。DBLP数据集包含计算机科学出版物的书目信息。每个顶点对应于一个作者。两个作者在它们已经合著至少一个出版物的情况下由边连接。
· Orkut。Orkut是大型社交联网网站。它是这样的图形,其中每个用户对应于顶点并且每个用户到用户连接是边。
· Twitter。Twitter是微博站点,该站点允许用户相互追随从而形成网络。
· Skype。Skype是用于对等通信的大型社交网络。我们认为两个用户在他们处于彼此的联系人列表中的情况下由边连接。
在表1中概括这些数据集的性质。该表示出了顶点数目|V|、边数目|E|、在顶点之间的平均距离d(关于样本顶点对计算的)、近似直径△、最大连接组件中的顶点分数|S|/|V|和用于在图形上执行BFS遍历的平均时间t BFS 。  
Figure 561288DEST_PATH_IMAGE046
表1:数据集。
存储这里关于精度进行的比较陈述作为实验,这些实验使用来自上述数据集的每个图形的SV顶点对的随机样本和参数。
计算近似误差
Figure DEST_PATH_IMAGE047
,其中I’是近似并且I是实际距离。
适当硬件是访问IBM DS 3400 FC SAN盘阵列、运行Red Hat Enterprise Linux 5操作系统的服务器,该服务器具有32×四芯AMD Opteron 64位2.2GHz处理器、256G RAM。
使用上述数据集和硬件来实现的实验表明地标-LCA、SC和BFS与地标-基本相比时精度提高——见图8。
针对无方向非加权图形的情况下呈现算法。可以通过将SPT预先计算阶段中和地标BFS-算法中的BFS替换为Dijkstra遍历而将技术推广至加权图形。推广至有方向图形需要计算用于每个地标的两个最短路径树——第一个保持通向地标的距离并且第二个保持来自地标的距离。然后算法需要略微更新以适当使用两个树(例如算法3的第4和5行将引用两个不同树而不是一个树)。
作为距离近似方案,如例如Goldberg等人在2005年第16届ACM – SIAM分立算法讨论会的第156-165页发表的论文中描述的那样,可以在单向或者双向A*搜索中使用基于地标的算法作为试探。具体而言,这一高效估计精确最短路径的能力允许我们取得用于选择最佳覆盖地标的更大样本。注意由于上述方法的递增更新能力,结果是快速全动态精确最短路径算法。
在上文描述的方法中,预先选择所有地标并且从未修正地标选择。可以通过使用在处理查询期间收集的信息以便添加或者去除地标而获得又一改进。每当使用地标-LCA算法来答复查询时,我们可以标识使用哪些地标并且使用哪些指定顶点作为LCA。基于LCA的使用频率,可以提升某些顶点以变成地标或者可以丢弃未频繁使用的地标。
附录
Figure 999223DEST_PATH_IMAGE048
Figure DEST_PATH_IMAGE049

Claims (10)

1. 一种处理搜索查询以提供搜索结果的方法,所述方法包括:
在计算机设备处接收数字消息形式的搜索查询,所述查询标识源节点和目标节点;并且
在所述计算机设备处执行用于生成搜索结果的应用,所述应用执行以下步骤:
访问保持多个地标节点的数据结构,每个地标已经随其存储了父链接集形式的最短路径树,其中每个父链接标识邻近的顶点节点;
对于每个地标,标识所述源节点和所述目标节点在通向所述地标节点的所述最短路径树中的位置;
对于每个地标节点,使用所标识的所述目标节点和所述源节点的位置生成在所述源节点与所述目标节点之间的距离的度量;
确定具有最短距离的所述地标;以及
提供与该地标的所述最短路径树有关的搜索结果。
2. 根据权利要求1所述的方法,其中通过以下操作生成距离的度量:
计算在所述源节点与所述地标节点之间的最短路径上的第一距离;
计算在所述地标节点与所述目标节点之间的最短路径上的第二距离;以及
将所述第一与第二距离求和。
3. 根据权利要求1所述的方法,其中通过以下操作生成所述距离的度量:
标识在从所述源节点和所述目标节点到所述地标节点的所述最短路径树中的共同祖先节点;以及
将从所述源节点到所述共同祖先节点的第一距离与从所述共同祖先节点到所述目标节点的第二距离求和。
4. 根据权利要求1所述的方法,其中通过以下操作生成所述距离的度量:
标识在从所述源节点和所述目标节点到所述地标节点的所述最短路径树中的共同祖先节点;
标识在所述源节点与所述共同祖先节点之间的第一路径和在所述共同祖先节点与所述目标节点之间的第二路径中的所有节点对;
对所述对中的作为边的任何对定位;
标识最短距离的所述边;并且
使用所述边确定在所述源节点与所述目标节点之间的距离度量。
5. 根据权利要求1所述的方法,其中通过以下操作生成所述距离的度量:
对于每个地标,记录在从所述源节点和所述目标节点到所述地标节点的所述最短路径树之间共同的节点;
从所述源节点执行图形遍历,仅遍历共同记录的节点,以更新从所述源节点到所述目标节点的最短路径;以及
使用所更新的最短路径确定所述距离度量。
6. 根据权利要求5所述的方法,其中通过根据权利要求2、3或者4所述的方法使用所更新的最短路径树来生成所述距离度量。
7. 根据任一前述权利要求所述的方法,其中提供搜索结果的步骤包括向用户显示所述搜索结果,或者向搜索功能提供所述搜索结果,所述搜索功能生成在多个搜索结果之间的比较以按照排列顺序提供输出集。
8. 根据任一前述权利要求所述的方法,其中所述搜索结果包括具有最短距离的所述地标的所述最短路径树中的节点标识符列表,和/或针对最短距离的所述地标的所述最短路径树中的节点数目。
9. 一种用于处理搜索查询以提供搜索结果的计算机设备,所述计算机设备包括:
第一部件,其形式为保持多个地标节点的数据结构,每个地标节点已经随其存储了父链接集形式的最短路径树,其中每个父链接标识在所述数据结构中的每个节点与所述地标节点之间的所述最短路径中的邻近顶点节点;以及
第二部件,包括被配置成执行用于生成搜索结果的应用的处理器,所述应用执行以下步骤:
访问所述数据结构;
对于每个地标,标识所述源节点和所述目标节点在通向所述地标节点的所述最短路径树中的位置;
对于每个地标,使用所标识的所述目标节点和所述源节点的位置生成在所述源节点与所述目标节点之间的距离度量;
确定具有最短距离的所述地标;以及
提供与该地标的所述最短路径树有关的搜索结果。
10. 一种计算机程序产品,包括在由计算机执行时执行权利要求1至8中的任一项的步骤的程序代码装置。
CN201210408971.0A 2011-10-24 2012-10-24 使用数据结构处理搜索查询 Active CN103064872B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB1118332.4A GB201118332D0 (en) 2011-10-24 2011-10-24 Processing search queries in a network of interconnected nodes
GB1118332.4 2011-10-24
US13/341373 2011-12-30
US13/341,373 US8527503B2 (en) 2011-10-24 2011-12-30 Processing search queries in a network of interconnected nodes

Publications (2)

Publication Number Publication Date
CN103064872A true CN103064872A (zh) 2013-04-24
CN103064872B CN103064872B (zh) 2016-08-17

Family

ID=48107502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210408971.0A Active CN103064872B (zh) 2011-10-24 2012-10-24 使用数据结构处理搜索查询

Country Status (1)

Country Link
CN (1) CN103064872B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572729A (zh) * 2013-10-22 2015-04-29 腾讯科技(深圳)有限公司 一种链接分析的计算方法和装置及系统
CN107451285A (zh) * 2017-08-11 2017-12-08 新智数通(北京)技术服务有限公司 一种亲属关系的分析方法、装置、存储介质及智能终端
CN113592166A (zh) * 2018-08-27 2021-11-02 北京百度网讯科技有限公司 用于图检索的方法、设备、存储介质和程序产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090040931A1 (en) * 2007-08-10 2009-02-12 Max-Planck-Gesellschaft Zur Forderung Der Wissenschaften E.V. Method and device for determining the length of a shortest path in a network
US20090228198A1 (en) * 2008-03-07 2009-09-10 Microsoft Corporation Selecting landmarks in shortest path computations

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090040931A1 (en) * 2007-08-10 2009-02-12 Max-Planck-Gesellschaft Zur Forderung Der Wissenschaften E.V. Method and device for determining the length of a shortest path in a network
US20090228198A1 (en) * 2008-03-07 2009-09-10 Microsoft Corporation Selecting landmarks in shortest path computations

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MICHALIS POTAMIAS.ETC: ""Fast shortest path distance estimation in large networks"", 《PROCEEDING OF THE 18TH ACM CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT》, 30 November 2009 (2009-11-30) *
唐晋韬等: ""复杂社会网络的介数性质近似计算方法研究"", 《计算机工程与科学》, vol. 30, no. 12, 31 December 2008 (2008-12-31) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572729A (zh) * 2013-10-22 2015-04-29 腾讯科技(深圳)有限公司 一种链接分析的计算方法和装置及系统
CN104572729B (zh) * 2013-10-22 2019-04-02 腾讯科技(深圳)有限公司 一种链接分析的计算方法和装置及系统
CN107451285A (zh) * 2017-08-11 2017-12-08 新智数通(北京)技术服务有限公司 一种亲属关系的分析方法、装置、存储介质及智能终端
CN113592166A (zh) * 2018-08-27 2021-11-02 北京百度网讯科技有限公司 用于图检索的方法、设备、存储介质和程序产品
CN113592166B (zh) * 2018-08-27 2023-12-19 北京百度网讯科技有限公司 用于图检索的方法、设备、存储介质和程序产品

Also Published As

Publication number Publication date
CN103064872B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
US10353742B2 (en) Tracking large numbers of moving objects in an event processing system
US8527503B2 (en) Processing search queries in a network of interconnected nodes
Bahmani et al. Fast incremental and personalized pagerank
US8521724B2 (en) Processing search queries using a data structure
US9524316B2 (en) Processing search queries using a data structure
Bergamini et al. Improving the betweenness centrality of a node by adding links
US8655805B2 (en) Method for classification of objects in a graph data stream
JP6222680B2 (ja) 位置情報サービスを実施するための方法、装置、およびシステム
Alvari et al. Community detection in dynamic social networks: A game-theoretic approach
US20140143407A1 (en) Multi-objective server placement determination
US20130036236A1 (en) Method and system for creating peer-to-peer geographical routing and multi-attribute similarity routing
CN102999558A (zh) 使用数据结构处理搜索查询
Tasgin et al. Community detection using preference networks
CN117235285B (zh) 融合知识图谱数据的方法及装置
CN103064872A (zh) 使用数据结构处理搜索查询
Xhafa et al. Modeling and processing for next-generation Big-Data technologies
CN108696418B (zh) 一种社交网络中隐私保护方法及装置
Zhao et al. Fast and scalable analysis of massive social graphs
Eltarjaman et al. Private retrieval of POI details in top-K queries
US20130173764A1 (en) Coordinated information collection system, coordinated information collection method, and program
Bonsma et al. Extremal graphs having no matching cuts
CN109284444A (zh) 一种好友的推荐方法、装置、服务器及存储介质
Tiausas et al. Hprop: Hierarchical privacy-preserving route planning for smart cities
KR101591595B1 (ko) 대용량 그래프 데이터베이스에서 링크를 예측하는 방법
Fu et al. Graph calculus: Scalable shortest path analytics for large social graphs through core net

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant