CN108595603B - 图数据库中查询无权图中两点间最短路径的方法及应用 - Google Patents

图数据库中查询无权图中两点间最短路径的方法及应用 Download PDF

Info

Publication number
CN108595603B
CN108595603B CN201810359289.4A CN201810359289A CN108595603B CN 108595603 B CN108595603 B CN 108595603B CN 201810359289 A CN201810359289 A CN 201810359289A CN 108595603 B CN108595603 B CN 108595603B
Authority
CN
China
Prior art keywords
node
social
path
automobile
neighbor
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.)
Active
Application number
CN201810359289.4A
Other languages
English (en)
Other versions
CN108595603A (zh
Inventor
洪春涛
朱晓伟
王涛
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.)
Ant yunchuang digital technology (Beijing) Co.,Ltd.
Original Assignee
Shenzhen Shentu Technology Co Ltd
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
Application filed by Shenzhen Shentu Technology Co Ltd filed Critical Shenzhen Shentu Technology Co Ltd
Priority to CN201810359289.4A priority Critical patent/CN108595603B/zh
Publication of CN108595603A publication Critical patent/CN108595603A/zh
Application granted granted Critical
Publication of CN108595603B publication Critical patent/CN108595603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

图数据库中用于查询无权图中两点间最短路径的长度的方法,假设给定的图为G(V,E),需要查询点a到点b的最短路径,限定的最长跳数为K,则最短路径查询方法包括:(1)比较a侧的潮头和b侧的潮头的大小;(2)选择两侧的“潮头”中的元素数目较小的一侧,以及得到该侧的新潮头;(3)重复上述步骤(1)和(2)直到:查找到一个潮头节点y,它既是a的潮头节点,又是b的潮头节点,此时确定找到最短路径,或者达到其它预定的终止条件;(4)若确定找到最短路径,则确定a,b两点之间最短路径的长度。本发明利用双向搜索,以及基于潮头大小的方向选择,可以大大减少搜索范围,从而可以在大规模的图上高效的执行两点间最短路径查询。

Description

图数据库中查询无权图中两点间最短路径的方法及应用
技术领域
本发明总体地涉及复杂网络技术,特别是涉及数据库中用于查询无权图中两点间最短路径的长度的方法、计算装置和计算机可读存储介质。
背景技术
复杂网络是由数据巨大的节点和节点之间错综复杂的关系共同构成的网络结构。现实世界中,包含着各种类似的复杂网络,例如社交网络、电网等。
复杂网络从数学的视角看,是一个有着复杂的拓扑结构特征的图。
图数据库也称为面向/基于图的数据库,其基本含义是以图这种数据结构来存储和查询数据。图数据库中的主要元素是节点和边。在实际应用中,往往用节点来表示实体或者概念,而节点之间相连的边则用于表示节点(实体或概念)之间的关系。这种基于图的抽象结构易于表示复杂的关系数据,因此图数据库被广泛应用于社交网络,电网等领域。
在图数据库中,一种常用的查询是查找无权图中两点之间最短路径的长度。例如:1)在社交网络中,节点是社交账号,边是账号之间的好友关系,两个节点之间的最短路径长度可以用于判断两人的生活圈远近,从而用于好友推荐;2)在交易网络上,节点银行账户,边是账户之间的转账关系,当两个节点之间发生新的转账时,两个节点之间的最短路径长度可用于判断这笔交易是否为误操作或者诈骗(若节点之间最短路径长度很长,或者没有路径相连,那么交易就比较可疑);3)在保险理赔中,可构造一张图,节点为汽车和修理厂,边是汽车与汽车的事故,以及汽车进入修理厂进行维修,对于一次新的理赔申请,查询两辆汽车之间的最短路径长度,以及最短路径中是否包含该修理厂可以用于判断此次理赔的可疑程度。
对于最短路径查询,传统的方法是使用迪杰斯特拉(Dijkstra)算法,从其中一点出发查找最短路径,直到找到另一个点为止。但是在实际的网络中,由于节点出度(边数)分布极度不均,Dijkstra算法往往会导致大量不必要的计算,从而导致查询过程非常缓慢。
发明内容
鉴于上述情况,提出了本发明。
根据本发明的一个方面,提供了一种图数据库中用于查询无权图中两点间最短路径的长度的方法,假设给定的图为G(V,E),需要查询点a到点b的最短路径,限定的最长跳数为K,则最短路径查询方法包括:(1)比较a侧的潮头和b侧的潮头的大小;(2)选择两侧的“潮头”中的元素数目较小的一侧,以及得到该侧的新潮头;(3)重复上述步骤(1)和(2)直到:查找到一个潮头节点y,使它既是a的潮头节点,又是b的潮头节点,此时确定找到最短路径,或者达到其它预定的终止条件;(4)若确定找到最短路径,则确定a,b两点之间最短路径的长度。
可选的,最短路径查询方法还包括:维持a,b当前可达的所有邻居列表;以及对于a、b中之一,称其为第一点,维持第一点可达的所有邻居列表中的每个结点的子节点,其中对于第一点侧,当前某潮头节点的下一跳作为其子节点,以及对于a、b中另一个,称其为第二点,维持第二点可达的所有邻居列表中的每个结点的父节点,其中对于第二点侧,当前某潮头节点的下一跳作为其父节点;在查找到潮头节点y的情况下,通过从潮头节点y起,在第一点的所有邻居列表中通过逐次追溯父节点而反溯出第一点到潮头节点y的路径,然后再在第二点的所有邻居列表中通过逐次追溯子节点而正向取出潮头节点到第二点的路径,由此组合得到从第一点到第二点的最短路径。
可选的,所述图数据库应用于社交网络,节点是社交账号,边是账号之间的好友关系。
可选的,最短路径查询方法还包括:依据两个节点之间的最短路径长度判断两人的生活圈远近,以及依据两人的生活圈远近进行好友推荐。
可选的,所述图数据库应用于交易网络,节点是银行账户,边是账户之间的转账关系,所述方法还包括:当两个节点之间发生新的转账时,确定两个节点之间的最短路径长度;依据两个节点之间的最短路径长度,判断这笔交易是否为误操作或者诈骗。
可选的,依据两个节点之间的最短路径长度,判断这笔交易是否为误操作或者诈骗包括:若节点之间最短路径长度很长,或者没有路径相连,则判断交易倾向于为误操作或诈骗。
可选的,所述图数据库应用于保险理赔,节点为汽车和修理厂,边是汽车与汽车的事故或汽车进入修理厂进行维修,所述方法还包括:对于一次新的理赔申请,查询两辆汽车之间的最短路径长度,以及最短路径中是否包含该修理厂,据此判断此次理赔的可疑程度。
根据本发明的另一方面,提供了一种图数据库中用于查询无权图中两点间最短路径的长度的方法,假设给定的图为G(V,E),需要查询点a到点b的最短路径,限定的最长跳数为K,则最短路径查询方法包括:
1)初始化,包括:设置a,b当前跳数为Ha=0,Hb=0;
设置a,b在当前跳数能达到的最新潮头为Wa={a},Wb={b};
设置a,b当前可达的所有邻居列表Na=Wa,Nb=Wb
2)比较a侧的潮头节点列表和b侧的潮头节点列表,从中选择潮头节点列表数量|Wx|较小的潮头节点列表,若两者相同,则随机取一个;
3)从选择的潮头节点列表出发,查找新的潮头节点列表W′x,包括:
i.若x=a,则新的潮头节点列表W′x是Wa中所有节点的邻居节点中不在Na中的集合,即:
Figure BDA0001635529620000031
ii.若x=b,则新的潮头节点列表W′x是Wb中所有节点的邻居节点中不在Nb中的集合。即:
Figure BDA0001635529620000032
iii.设置W′x为新潮头节点列表Wx=W′x
iv.将新的潮头节点列表Wx加入到X的可达邻居列表中Nx=Nx∪Wx
v.增加x的当前跳数Hx=Hx+1;
4).重复步骤2)-3),直到:
e)查找到一个潮头节点y,使它既是a的潮头节点,又是b的潮头节点;
或者
f)任意一个潮头节点列表为空;或者
g)a和b的跳数总和超过预定的最大跳数阈值k;
5).如果已经找到最短路径,则a,b两点距离为Ha+Hb,否则a,b之间在K跳内不可达。
可选的,最短路径查询方法还包括:对于a、b中之一,称其为第一点,维持第一点可达的所有邻居列表中的每个结点的子节点,以及对于a、b中另一个,称其为第二点,维持第二点可达的所有邻居列表中的每个结点的父节点,在查找到潮头节点y的情况下,通过从潮头节点y起,在第一点的所有邻居列表中反溯出第一点到潮头节点y的路径,然后再在第二点的所有邻居列表中正向取出潮头节点y到第二点的路径,由此组合得到从第一点到第二点的最短路径。
根据本发明的再一方面,提供了一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行前述任一项的方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行前述任一项所述的方法。
根据本发明实施例的无权图两点间最短路径查询方法,利用双向搜索,以及基于潮头大小的方向选择,可以大大减少搜索范围,从而可以在大规模的图上高效的执行两点间最短路径查询。
附图说明
从下面结合附图对本发明实施例的详细描述中,本发明的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:
图1示出了根据本发明实施例的图数据库中用于查询无权图中两点间最短路径的长度的方法100的流程图。
图2示出了根据本发明实施例的一张示例性有向图中的算法运行状态示意图。
图3图示了根据本申请实施例的计算装置10的框图。
具体实施方式
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
一、术语含义以及发明构思
在介绍之前,解释一下有关术语在本文中的含义。
无权图:在一张图中,若所有的边都是等长的,则可以将其长度全部视为1。本文中将这种边的长度全部为1的图称为无权图。在无权图中,路径的长度只与其经过的边的数量有关。
K跳邻居:对于无权图中的任意节点u和v,若u到v的最短路径长度为K,则称v是u的K跳(也称K度)邻居。
K跳可达邻居:对于无权图中的任意节点u,称其所有X跳(X≤K)邻居组成的集合为K跳可达邻居。即,K跳可达邻居包括所有0跳,1跳…K跳邻居。
K跳潮头:对于无权图中的任意节点u,称其所有K跳邻居组成的集合为K跳潮头(wavefront),也即从起点出发,在K条边内可达,但(K-1)条边内不可达的节点集合)。需要注意的是,K跳潮头只包含K跳邻居,而不包含0到K-1跳邻居。
在详细介绍之前,为便于理解,首先介绍一下本发明的发明构思。本文提出一种基于广度优先搜索的、带方向判断的、优先搜索潮头侧的最短路径查询方法,用于大规模无权图上的两点间最短路径的高效查询。
本发明的最短路径查询方法主要考虑了:1)从两点同时向中间搜索;2)优先搜索“潮头”较小的一边。从两点同时向中间搜索可以将搜索范围减小:由于节点的K跳邻居总数与K约成指数关系,而从两点向中间搜索可以将两边的搜索跳数减少到约K/2,因此能大大减小搜索范围;同时,由于社交网络中节点出度分布不均,选择“潮头”较小的一边有利于进一步减小搜索范围。
二、最短路径查询方法的第一实施例
下面参考附图1描述根据本发明实施例的图数据库中用于查询无权图中两点间最短路径的长度的方法,图1示出了根据本发明实施例的图数据库中用于查询无权图中两点间最短路径的长度的方法100的流程图,其中假设给定的图为G(V,E),需要查询点a到点b的最短路径,限定的最长跳数为K。
如图1所示,在步骤S110中,比较a侧的潮头和b侧的潮头的大小。
对于初始时刻,即比较a的一跳邻居和b的一跳邻居的多少;随着过程的进行,潮头不断向前推进,继续比较当前时刻的潮头的大小,需要说明的是,推进过程是从a侧和b侧交替进行的,交替的时机由潮头大小的比较决定,每次都从小的潮头开始向前推进至下一跳潮头。
在步骤S120中,选择两侧的“潮头”中的元素数目较小的一侧,以及得到该侧的新潮头(即下一跳潮头)。在两侧潮头数目相同的情况下,可以随机选择一侧,或者结合其它的条件来决定从那侧开始搜索。
在步骤S130中,确定是否查找到一个潮头节点y,它既是a的潮头节点,又是b的潮头节点,找到这样的潮头节点y,意味着找到了a到b的最短路径。如果步骤S130的答案为否,即未找到这样的潮头节点,则前进到步骤S140;否则找到了这样的潮头节点,则前进到步骤S150。
在步骤S140中,确定是否达到其它预定的终止条件,例如,a侧的潮头节点列表和b侧的潮头节点列表均为空,或者a和b的跳数总和超过了跳数阈值,即跳数总和超过算法规定的最大跳数k。如果步骤S140的答案为否,即未达到其它预定的终止条件,则跳回到步骤S110循环执行确定搜索起始的潮头侧、从确定的潮头侧进行广度优先搜索的过程。反之,如果步骤S140的答案为是,即达到了其它预定的终止条件,则过程结束,此时未找到最短路径。
在步骤S150中,确定a,b两点之间最短路径的长度,最短路径的长度即a侧至潮头节点y的跳数加上b侧至潮头节点y的跳数。
下文中首先给出一个具体实施例,其中以集合形式存储某侧节点的当前可达邻居列表和当前跳数的潮头列表,以及以伪码形式给出实现算法,然后给出一个具体的实现示例,最后给出理论证明,证明如果一个潮头节点y既在a的i跳潮头列表
Figure BDA0001635529620000061
中,也在b的j跳潮头列表
Figure BDA0001635529620000062
中中,则a到b的最短路径长度为i+j。
二、最短路径查询方法的第二实施例
假设给定的图为G(V,E),需要查询点a到点b的最短路径,限定的最长跳数为K,则最短路径查询算法如下:
1)初始化,包括:
设置a,b当前跳数为Ha=0,Hb=0;
设置a,b在当前跳数能达到的最新潮头为Wa={a},Wb={b};
设置a,b当前跳数可达的所有邻居列表Na=Wa,Nb=Wb
2)比较a侧的潮头节点列表和b侧的潮头节点列表,从中选择潮头节点列表数量|Wx|较小的潮头节点列表,若两者相同,则随机取一个;
3)从选择的潮头节点列表出发,查找新的潮头节点列表W′x,包括:
i.若x=a,则新的潮头节点列表W′x是Wa中所有节点的邻居节点中不在Na中的集合,即:
Figure BDA0001635529620000071
ii.若x=b,则新的潮头节点列表W′x是Wb中所有节点的邻居节点中不在Nb中的集合。即:
Figure BDA0001635529620000072
iii.设置W′x为新潮头节点列表Wx=W′x
iv.将新的潮头节点列表Wx加入到X的可达邻居列表中Nx=Nx∪Wx
v.增加x的当前跳数Hx=Hx+1;
4).重复步骤2)-3),直到:
h)查找到一个潮头节点y,使它既是a的潮头节点,又是b的潮头节点;
或者
i)任意一个潮头节点列表Wa或Wb为空;或者
j)a和b的跳数总和超过预定的最大跳数阈值k;
5).如果已经找到最短路径,则a,b两点距离为Ha+Hb,否则a,b之间在K跳内不可达。
上面的算法中,y→z表示节点y到节点z的一条边。
在上面的第一实施例和第二实施例,阐述的是需要求得的是最短路径的长度或者说距离,若需要求出最短路径而不仅是距离,那么示例性地可如下实现:在当前跳数可达邻居列表N中存储每个节点的父节点或子节点(例如,在需要求得a到b的最短路径的情况下,对节点a的当前跳数可达邻居列表Na中的节点存储父节点,对节点b的当前跳数可达邻居列表Nb中的节点则存储子节点),从而将当前跳数可达邻居列表N变为一个<节点id,父/子节点>的字典。在前述查找新的潮头节点列表(例如,第二实施例的步骤3))的步骤中同时记录下新节点的父/子节点,然后在更新可达邻居列表的步骤(例如,第二实施例的步骤3)中的iv子步骤)中将父节点信息同时记录在N中。在算法结束时,假设找到的潮头节点为y,那么就需要从该潮头节点y起,在a的当前跳数的可达邻居列表Na中反溯出节点a到节点y的路径,然后再在Nb中正向取出y到b的路径。
概况起来,在找到上述潮头节点y后,确定最短路径可以如下进行:
(1)维持a,b当前可达的所有邻居列表;以及
(2)对于a、b中之一,称其为第一点,维持第一点可达的所有邻居列表中的每个结点的子节点,其中对于第一点侧,当前某潮头节点的下一跳作为其子节点,以及对于a、b中另一个,称其为第二点,维持第二点可达的所有邻居列表中的每个结点的父节点,其中对于第二点侧,当前某潮头节点的下一跳作为其父节点;
(3)在查找到潮头节点y的情况下,通过从潮头节点y起,在第一点的所有邻居列表中通过逐次追溯父节点而反溯出第一点到潮头节点y的路径,然后再在第二点的所有邻居列表中通过逐次追溯子节点而正向取出潮头节点到第二点的路径,由此组合得到从第一点到第二点的最短路径。
顺便说一下,在存在多条最短路径的情况下,可以不要求找到所有的最短路径,只需返回一条最短路径即可。
若图是无向图,则只需要将每条无向边x←→y视为两条边x→y和x→y,其它步骤与有向图完全相同。
根据本发明实施例的无权图两点间最短路径查询方法,利用双向搜索,以及基于潮头大小的方向选择,可以大大减少搜索范围,从而可以在大规模的图上高效的执行两点间最短路径查询。
三、具体示例
下面结合图2描述根据本发明实施例的无权图两点间最短路径查询方法的具体实施示例。
图2示出了一张有向图中的算法运行状态示意图。图2中共有12个节点,算法需要求出a到b的最短路径。图中使用黑色或灰色标识当前从a出发可达的节点Na,使用网格标识当前可到达b的节点Nb。当前步骤的潮头节点使用黑色(Wa)或者深色网格(Wb)标识。
程序初始化(步骤0)时,a的潮头与b的潮头都被设为其自身。
在步骤1时,由于a的潮头Wa与b的潮头Wb大小相同,因此随机选择a,并由其出发找出新的潮头Wa={1,5}。
在步骤2,由于|Wb|<|Wa|,选择由b出发,查找新的潮头Wb={4,7,10}。
到步骤3,选择由a出发,发现新的潮头Wa={2,6}。
到步骤4,由于|Wa|<|Wb|,仍然由a出发,发现新的潮头Wa={3,7}。
此时发现7同时也在Wb中,因此算法终止,最短路径长度为Ha+Hb=4。为了求出a到b的最短路径,需要在Na中反溯出a到7的最短路径,然后在Nb正向求出7到b的最短路径。在Na中,每一条记录由<节点id,父节点id>组成,因此可以从7号反溯它的父节点为2号节点,然后再从2号节点反溯至1号节点,最终反追溯至节点a,从而知道a到7的最短路径是a→1→2→7,同理,可知7到b的最短路径7→b,从而最终得到a到b的最短路径a→1→2→7→b。
下面给出理论证明,证明本发明的无权图最短路径查询方法所确定的路径为最短路径,下面各符号的含义与上文同。
证明
引理1:对任意节点y,
Figure BDA0001635529620000091
(即Ha=i时的Wa)是a到y的最短路径长度为i的充要条件
证明:
对于i=0,引理成立
对于i>0,假设引理对于i-1成立,则根据定义
Figure BDA0001635529620000092
Figure BDA0001635529620000093
可知:
对任意
Figure BDA0001635529620000094
a到y存在一条路径a→…→z→y,a到z的最短路径为i-1,从而a到y存在一条长度为i的路径;并且
a到y的最短路径大于i-1
因此,对于任意i>=0,引理成立
同理,我们可以证明
引理2:
Figure BDA0001635529620000095
是y到b的最短路径长度为i的充要条件。
定理1:若在步骤3中,存在节点y既在a的潮头列表
Figure BDA0001635529620000096
中,又在b的潮头列表
Figure BDA0001635529620000097
中,那么a到b的最短路径长度为i+j
证明:
假设a到b存在一条长度小于i+j的路径:
若a到b最短路径小于i,根据引理1可知
Figure BDA0001635529620000101
则算法应当于Ha=m时终止,因此假设不成立
若a到b存在一条最短路径a→…→z→…→b,使得a到z的距离为i,z到b的最短距离小于j,则根据引理2可知
Figure BDA0001635529620000102
从而算法应当于Hb=n时终止,因此假设不成立
综上可知,定理1成立
由此,可简单推出:
定理2:若步骤3中,Ha+Hb>K,则a到b不存在长度小于等于K的最短路径
定理3:若在步骤3中,
Figure BDA0001635529620000103
Figure BDA0001635529620000104
则a到b不存在可达路径
证明:
假设a到b存在可达路径,假设其中最短路径长度为m:
若m<i+j,则算法应当于Ha+Hb=m时终止,因此假设不成立若m≥i+j,则:
最短路径中必然存在点x,使a到x距离为i,因此
Figure BDA0001635529620000105
且同时存在点y,使y到b距离为j,因此
Figure BDA0001635529620000106
这与假设
Figure BDA0001635529620000107
Figure BDA0001635529620000108
冲突,因此假设不成立
综上所述,a到b必然不存在可达路径。
下面,参考图3来描述根据本申请实施例的计算装置。
图3图示了根据本申请实施例的计算装置10的框图。
如图3所示,计算装置10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制计算装置10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的数据处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如用户在电商网站的评论数据等各种内容。
在一个示例中,计算装置10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置13可以是例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括用户的情感信息等。该输出设备14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图3中仅示出了该计算装置10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,计算装置10还可以包括任何其他适当的组件。
示意性计算机程序产品
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的数据处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (14)

1.一种用于基于图数据库确定第一社交节点与第二社交节点之间的生活圈远近的方法,其中,所述图数据库被表征为无权图G(V,E),社交节点V用于表示社交账号,边E用于表示社交账号之间的好友关系,所述方法包括:
执行下述循环过程,直到确定出第一社交节点和第二社交节点之间的最短社交路径或者达到其它预定的终止条件:
根据图数据库确定第一社交节点和第二社交节点的当前可达邻居社交节点列表,各个社交节点的当前可达邻居节点列表包括第0跳邻居社交节点到当前跳数所对应的邻居社交节点,
在第一社交节点和第二社交节点的当前可达邻居社交节点列表中存在公共社交节点时,确定出第一社交节点和第二社交节点之间的最短社交路径,
在第一社交节点和第二社交节点的当前可达邻居社交节点列表中不存在公共社交节点时,比较第一社交节点和第二社交节点的各自当前跳数所对应的邻居社交节点列表的节点数目大小,并且将所具有的节点数目较小的社交节点的当前跳数加一,作为该社交节点在下一循环过程中的当前跳数,
在确定出第一社交节点和第二社交节点之间的最短社交路径后,确定第一社交节点和第二社交节点之间的最短社交路径长度,所述最短社交路径长度为第一社交节点到所述公共社交节点的跳数与第二社交节点到所述公共社交节点的跳数之和;以及
依据第一社交节点和第二社交节点之间的最短社交路径长度,判断第一社交节点和第二社交节点的生活圈远近。
2.根据权利要求1所述的方法,其中,在第一社交节点和第二社交节点的当前可达邻居社交节点列表中存在公共社交节点时,确定出第一社交节点和第二社交节点之间的最短社交路径包括:
自所述公共社交节点起,在第一社交节点的所有可达邻居社交节点列表中通过逐次追溯父节点而反溯出第一社交节点到所述公共社交节点的社交路径;
自所述公共社交节点起,在第二社交节点的所有可达邻居社交节点列表中通过逐次追溯子节点而正向取出所述公共社交节点到第二社交节点的社交路径;以及
组合所得到的第一社交节点到所述公共社交节点的社交路径以及所述公共社交节点到第二社交节点的社交路径,确定出第一社交节点到第二社交节点的最短社交路径,
其中,针对自第一社交节点起的可达邻居社交节点列表,每个社交节点的下一跳社交节点为该社交节点的子节点,以及针对自第二社交节点起的可达邻居社交节点列表,每个社交节点的下一跳社交节点为该社交节点的父节点。
3.根据权利要求1所述的方法,还包括:
依据第一社交节点和第二社交节点的生活圈远近进行好友推荐。
4.一种用于基于图数据库进行交易行为评估的方法,其中,所述图数据库被表征为无权图G(V,E),节点V用于表示交易网络中的银行账号,边E用于表示银行账号之间的转账关系,所述方法包括:
响应于第一节点和第二节点之间发生新的转账时,执行下述循环过程,直到确定出第一节点和第二节点之间的最短转账路径或者达到其它预定的终止条件:
根据图数据库确定第一节点和第二节点的当前可达邻居节点列表,各个节点的当前可达邻居节点列表包括第0跳邻居节点到当前跳数所对应的邻居节点,
在第一节点和第二节点的当前可达邻居节点列表中存在公共节点时,确定出第一节点和第二节点之间的最短转账路径,
在第一节点和第二节点的当前可达邻居节点列表中不存在公共节点时,比较第一节点和第二节点的各自当前跳数所对应的邻居节点列表的节点数目大小,并且将所具有的节点数目较小的节点的当前跳数加一,
作为该节点在下一循环过程中的当前跳数,
在确定出第一节点和第二节点之间的最短转账路径后,确定第一节点和第二节点之间的最短转账路径长度,所述最短转账路径长度为第一节点到所述公共节点的跳数与第二节点到所述公共节点的跳数之和;以及
依据第一节点和第二节点之间的最短转账路径长度,判断该笔转账是否为误操作或者诈骗。
5.根据权利要求4所述的方法,其中,依据第一节点和第二节点之间的最短转账路径长度,判断该笔转账是否为误操作或者诈骗包括:
在第一节点和第二节点之间的最短转账路径长度很长或者第一节点和第二节点之间没有路径相连时,判断该笔转账为误操作或者诈骗。
6.根据权利要求4所述的方法,其中,在第一节点和第二节点的当前可达邻居节点列表中存在公共节点时,确定出第一节点和第二节点之间的最短社交路径包括:
自所述公共节点起,在第一节点的所有可达邻居节点列表中通过逐次追溯父节点而反溯出第一节点到所述公共节点的路径;
自所述公共节点起,在第二节点的所有可达邻居节点列表中通过逐次追溯子节点而正向取出所述公共节点到第二节点的路径;以及
组合所得到的第一节点到所述公共节点的路径以及所述公共节点到第二节点的路径,确定出第一节点到第二节点的最短路径,
其中,针对自第一节点起的可达邻居节点列表,每个节点的下一跳节点为该节点的子节点,以及针对自第二节点起的可达邻居节点列表,每个节点的下一跳节点为该节点的父节点。
7.一种用于基于图数据库进行车辆保险理赔评估的方法,其中,所述图数据库被表征为无权图G(V,E),节点V用于表示汽车和修理厂,边E用于表示汽车与汽车的事故或者汽车进入修理厂进行维修,所述方法包括:
响应于接收到新的理赔申请时,执行下述循环过程,直到确定出第一汽车节点和第二汽车节点之间的最短路径或者达到其它预定的终止条件:
根据图数据库确定第一汽车节点和第二汽车节点的当前可达邻居节点列表,各个汽车节点的当前可达邻居节点列表包括第0跳邻居节点到当前跳数所对应的邻居节点,
在第一汽车节点和第二汽车节点的当前可达邻居节点列表中存在公共节点时,确定出第一汽车节点和第二汽车节点之间的最短路径,
在第一汽车节点和第二汽车节点的当前可达邻居节点列表中不存在公共节点时,比较第一汽车节点和第二汽车节点的各自当前跳数所对应的邻居节点列表的节点数目大小,并且将所具有的节点数目较小的汽车节点的当前跳数加一,作为该汽车节点在下一循环过程中的当前跳数,在确定出第一汽车节点和第二汽车节点之间的最短路径后,根据所述最短路径中是否包含该修理厂,判断此次理赔申请的可疑程度。
8.根据权利要求7所述的方法,其中,在第一汽车节点和第二汽车节点的当前可达邻居节点列表中存在公共节点时,确定出第一汽车节点和第二汽车节点之间的最短路径包括:
自所述公共节点起,在第一汽车节点的所有可达邻居节点列表中通过逐次追溯父节点而反溯出第一汽车节点到所述公共节点的路径;
自所述公共节点起,在第二汽车节点的所有可达邻居节点列表中通过逐次追溯子节点而正向取出所述公共节点到第二汽车节点的路径;以及
组合所得到的第一汽车节点到所述公共节点的路径以及所述公共节点到第二汽车节点的路径,确定出第一汽车节点到第二汽车节点的最短路径,
其中,针对自第一汽车节点起的可达邻居节点列表,每个节点的下一跳节点为该节点的子节点,以及针对自第二汽车节点起的可达邻居节点列表,每个节点的下一跳节点为该节点的父节点。
9.一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行如权利要求1到3中任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行如权利要求1到3中任一所述的方法。
11.一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行如权利要求4到6中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行如权利要求4到6中任一所述的方法。
13.一种计算装置,包括存储器和处理器,存储器上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行如权利要求7或8所述的方法。
14.一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令当被处理器加载和执行时,执行如权利要求7或8所述的方法。
CN201810359289.4A 2018-04-20 2018-04-20 图数据库中查询无权图中两点间最短路径的方法及应用 Active CN108595603B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810359289.4A CN108595603B (zh) 2018-04-20 2018-04-20 图数据库中查询无权图中两点间最短路径的方法及应用

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810359289.4A CN108595603B (zh) 2018-04-20 2018-04-20 图数据库中查询无权图中两点间最短路径的方法及应用

Publications (2)

Publication Number Publication Date
CN108595603A CN108595603A (zh) 2018-09-28
CN108595603B true CN108595603B (zh) 2021-07-02

Family

ID=63614209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810359289.4A Active CN108595603B (zh) 2018-04-20 2018-04-20 图数据库中查询无权图中两点间最短路径的方法及应用

Country Status (1)

Country Link
CN (1) CN108595603B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634987A (zh) * 2018-11-22 2019-04-16 全球能源互联网研究院有限公司 电网图数据库的查询方法及装置
CN111309989A (zh) * 2020-02-13 2020-06-19 平安科技(深圳)有限公司 基于图数据库的最短路径查询方法及相关设备
CN112419779B (zh) * 2020-11-09 2022-04-12 北京京东乾石科技有限公司 无人车停靠点的选取方法及装置、存储介质及电子设备
CN113079094B (zh) * 2021-03-24 2022-07-26 苏州科达科技股份有限公司 多处理器网络的处理路径确定方法、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330457A (zh) * 2008-07-24 2008-12-24 安徽大学 一种基于商空间覆盖模型的最短路径搜索方法
CN101458716A (zh) * 2008-12-31 2009-06-17 北京大学 一种图中节点间最短路径的查找方法
CN102036338A (zh) * 2010-12-22 2011-04-27 中国科学院计算技术研究所 一种基于数据驱动链路估计的传感器网络实时路由方法
CN102521364A (zh) * 2011-12-15 2012-06-27 北京大学 一种图上两点间最短路径查询方法
CN102722566A (zh) * 2012-06-04 2012-10-10 上海电力学院 社交网络中潜在好友查询方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8818918B2 (en) * 2011-04-28 2014-08-26 International Business Machines Corporation Determining the importance of data items and their characteristics using centrality measures

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330457A (zh) * 2008-07-24 2008-12-24 安徽大学 一种基于商空间覆盖模型的最短路径搜索方法
CN101458716A (zh) * 2008-12-31 2009-06-17 北京大学 一种图中节点间最短路径的查找方法
CN102036338A (zh) * 2010-12-22 2011-04-27 中国科学院计算技术研究所 一种基于数据驱动链路估计的传感器网络实时路由方法
CN102521364A (zh) * 2011-12-15 2012-06-27 北京大学 一种图上两点间最短路径查询方法
CN102722566A (zh) * 2012-06-04 2012-10-10 上海电力学院 社交网络中潜在好友查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大图上的k跳可达性查询算法;杨晓冬;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180115;全文 *

Also Published As

Publication number Publication date
CN108595603A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108595603B (zh) 图数据库中查询无权图中两点间最短路径的方法及应用
Khan et al. Neighborhood based fast graph search in large networks
CN113536383B (zh) 基于隐私保护训练图神经网络的方法及装置
Zhang et al. Deep dual support vector data description for anomaly detection on attributed networks
US20150019592A1 (en) Systems, methods and software for computing reachability in large graphs
CN113706326B (zh) 基于矩阵运算的移动社会网络图修改方法
He et al. Minimum-sized influential node set selection for social networks under the independent cascade model
CN111723298A (zh) 基于改进标签传播的社交网络社团发现方法、装置及介质
Zhang et al. Mechanism design for finding experts using locally constructed social referral web
Mo et al. Choosing a heuristic and root node for edge ordering in BDD-based network reliability analysis
Gundecha et al. Seeking provenance of information using social media
Zhao et al. Community identification in signed networks: a k-truss based model
Geyer et al. On the robustness of deep learning-predicted contention models for network calculus
Giraldo et al. On the trade-off between over-smoothing and over-squashing in deep graph neural networks
Zhang et al. Contrastive learning for signed bipartite graphs
Bai et al. Complex query answering on eventuality knowledge graph with implicit logical constraints
Yu et al. KGTrust: evaluating trustworthiness of SIoT via knowledge enhanced graph neural networks
Choi et al. Graph neural rough differential equations for traffic forecasting
Wu et al. RelpNet: relation-based link prediction neural network
CN107241222B (zh) 一种网络拓扑校准方法
CN111026882A (zh) 一种基于知识图谱的违约确定方法、装置、设备及存储介质
Feng et al. Recovering information recipients in social media via provenance
Dong et al. Pure Message Passing Can Estimate Common Neighbor for Link Prediction
CN111488490A (zh) 视频聚类方法、装置、服务器及存储介质
Shao et al. Adversarial for social privacy: A poisoning strategy to degrade user identity linkage

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20201203

Address after: 518000 a1202ac17, building 1, Shenzhen software industry base, No. 81, 83, 85, Gaoxin South 10th Road, Binhai community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Shentu Technology Co., Ltd

Address before: 100080 room 801, 1 building, 3 Haidian Avenue, Haidian District, Beijing, -810L-027

Applicant before: BEIJING FMA TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210909

Address after: No. 306, 3 / F, building 28, Baosheng Beili West District, Haidian District, Beijing 100080

Patentee after: Beijing ant cloud Financial Information Service Co.,Ltd.

Address before: A1202ac17, building 1, Shenzhen software industry base, No. 81, 83 and 85, South 10th Road, Gaoxin, Binhai community, Yuehai street, Nanshan District, Shenzhen, Guangdong 518000

Patentee before: Shenzhen Shentu Technology Co., Ltd

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: No. 306, 3 / F, building 28, Baosheng Beili West District, Haidian District, Beijing 100080

Patentee after: Ant yunchuang digital technology (Beijing) Co.,Ltd.

Address before: No. 306, 3 / F, building 28, Baosheng Beili West District, Haidian District, Beijing 100080

Patentee before: Beijing ant cloud Financial Information Service Co.,Ltd.