专利名称:一种图上两点间最短路径查询方法
技术领域:
本发明涉及数据库技术和图数据管理,主要涉及一种针对大规模图的基于2-hop 处理两点间最短路径查询的软件实现方法。
背景技术:
图数据库是一种利用图的结构和属性来表示与存储信息的新型数据库技术,是 NoSQL数据库的一种。图数据库(graphic database)是利用计算机将点、线、画霹图基本元素按一定数据结同灶行存储的数据集合,将地图与其它类型的平面图中的图描述为点、线、 面等基本元素,并将这些图元素按一定数据结构(通常为拓扑数据结构)建立起来的数据集合。包括两个层次第一层次为拓扑编码的数据集合,由描述点、线、面等图元素间关系的数据文件组成,包括多边形文件、线段文件、结点文件等。文件间通过关联数据项相互联系; 第二层次为坐标编码数据集合,由描述各图元素空间位置的坐标文件组成。图数据库仍是目前地理信息系统中对矢量结构地图数字化数据进行组织的主要形式。一般的图数据库应该能存储任何形式的图,包括地理上的地图、社会关系网络等等。图数据库是基于图论的,它利用了图论中点、边等概念。其中,点常用来代表现实中的实体,如人、公司、账户及其他一切你希望记录的事物。边用来连接两个点,用来表示两点之间的关系。一般而言,点或边上还会附带其他信息。比如一个基于社交网络的图上,每个点代表一个人,那么这个点上不但包含有这人的名字,一般还会有诸如住址、联系方式等其他信息,而边上就可能会有两个人具体关系的描述,比如父子关系、朋友关系等。相较于传统关系数据库,图数据库能更为直接地映射到面向对象的应用中去,同时也能更自然地扩展到海量数据集上。图数据库不依赖于模式,所以它们也更适合于管理那些会经常被更新的数据。其中,最短路径查询是图数据库领域里极为重要的一项需求。例如,给定一个社交网络图,我们想了解两个人之间的关系。显然,我们可以将这两个人在社交网络图中对应的点找到,之后,这就需要我们在大的社交网络图中找出连接这两个点的路径以表示二者的关系。对于最短路径查询,现阶段已经有了不少的方法。但是,这些方法中有一些是基于迪杰斯特拉(Dijkstra)算法的改进,这些算法的查找效率有限;另外一些通过对图上的点构建距离信息索引来提高路径查询的效率,但是现有的这些索引方法可扩展性都不强,无法满足大数据量级的图上路径查询需求。可见,传统的图数据库技术已经无法满足日益增长的图数据的应用的需求。
发明内容
本发明提出了一种基于2-hop的两点间路径查询方法,用以对大规模图数据上的最短路径查询进行高效地处理。数据预处理主要是针对大规模图数据及最短路径查询的特点设计的利用2-hop定义为图构建索引并进行组织与存储的方法。所谓2-hop,是在计算图数据中两点间距离时常用的一种数据结构。利用2-hop的定义,我们将给图上每个点打上该点对应的hop信息, 用来快速的计算两点间的可达性或者距离。常见的hop信息计算方法就是找出两点u和ν 之间最短路径上一个点作为中心点,然后将u和ν到中心点的距离信息分别记录到u和ν 对应的hop信息中去。本方法中,为了高效地计算构建索引,结合hop信息的定义,我们将hop信息分为两类基于中间性(Betweermess)定义的hop信息和基于图分割技术的hop信息,我们并为其提出了新的计算方法。查询执行是针对本发明一种图上两点间最短路径查询方法,具体方法如下1)从图上随机抽取若干点作为支点,根据各支点间的最短路径得出图上每点的中间性估计值;2)将中间性估计值大于设定值的点作为中心点,将图中各点到各中心点的最短路径信息加入图中各点的hop信息,这些中心点的集合记为Wb ;3)将图去除Wb中各点后分割为若干小图Si,l < i彡m,m为小图个数,并得到点割集Ws ;4)对于每个小图Si根据枚举出的任意两点间最短路径,得到该小图Si内的所有点的hop信息;5)根据Wb中各点到Ws中各点的最短路径得到不同小图之间的点的hop信息;6)根据图中各点的hop信息,得到用户输入的两查询点之间的最短路径。所述图中各点的hop信息存储为四元组<v,u, Distsp (v, u), neighbor (ν) |u>,其中,V是大规模数据图上的任意点,U是覆盖V的一条最短路径的中心点,DiStsp(v, u)是u 与ν之间的距离,neighbor (v) |u表示从ν到u的最短路径上ν的邻居,排序后形成一 hop 信息文件。根据所述hop信息文件建立hop信息索引,将图中各点的hop信息在hop文件的起始位置、长度存储为三元组,该三元组为〈V,pos, len>,其中ν是该大规模图中任意点,pos 是每个点hop信息文件中起始位置,Ien是每个点hop信息文件长度。所述中间性估计值按下述公式得出
权利要求
1.一种图上两点间最短路径查询方法,其步骤包括1)从图上随机抽取若干点作为支点,根据各支点间的最短路径得出图上每点的中间性估计值;2)将中间性估计值大于设定值的点作为中心点及图中各点到各中心点的最短路径信息加入图中各点的hop信息,这些中心点的集合记为Wb ;3)将图去除Wb中各点后分割为若干小图Si,l< i < m,m为小图个数,并得到点割集Ws ;4)对于每个小图Si根据枚举出的任意两点间最短路径,得到该小图Si内的所有点的 hop信息;5)根据Wb中各点到Ws中各点的最短路径得到不同小图之间的点的hop信息;6)根据图中各点的hop信息,得到用户输入的两查询点之间的最短路径。
2.如权利要求1所述的图上两点间最短路径查询方法,其特征在于,所述图中各点的hop信息存储为四元组<v,u, Distsp (v, u),neighbor (ν) |u>,其中,ν是大规模数据图上的任意点,u是覆盖ν的一条最短路径的中心点,Distsp(v, u)是11与¥之间的距离, neighbor (v) |u表示从ν到u的最短路径上ν的邻居,排序后形成一 hop信息文件。
3.如权利要求2或1所述的图上两点间最短路径查询方法,其特征在于,所述hop信息文件可建立hop信息索引,将图中各点的hop信息在hop文件的起始位置、长度存储为三元组,该三元组为<v,pos, len>,其中ν是该大规模图中任意点,pos是每个点hop信息文件中起始位置,Ien是每个点hop信息文件长度。
4.如权利要求1所述的图上两点间最短路径查询方法,其特征在于,所述各支点间的最短路径通过中间性算法得到,所述中间性公式为Belweenness {u) - ^ ―2 (),U-UtU2GV ^U1U2其中,U1和U2分别表示图上任意两个点,V表示在一大规模图中所有点所组成的集合, ^U1U2⑷是U出现在不同的U1和U2之间的最短路径总个数,^¥2是不同的U1和U2之间的最短路径的总个数。
5.如权利要求1所述的图上两点间最短路径查询方法,其特征在于,所述分割方法为, 使用METIS图分割方法对所述大规模图进行处理得到一边割集合和小图S1, S2,……,Sm,1 < i彡m,其中m为小图的个数。
6.如权利要求5所述的图上两点间最短路径查询方法,其特征在于,所述边割集转化为点割集的方法是,对边割集中每一条边e = (U1, U2),假设其连接大图的两个分割图P1和 P2,其中U1属于P1,且U2属于P2,根据P1和P2大小将e放入所述P1和P2中。
7.如权利要求1所述的图上两点间最短路径查询方法,其特征在于,所述随机抽取的总点数为图上有所点数的1/100,所述设定值为每个点上中间性估计值按照降序排列后,中间性估计值点的1/100。
8.如权利要求1所述的图上两点间最短路径查询方法,其特征在于,所述每个小图Si 内的所有点的hop信息还包括,利用贪心算法求出所述枚举出的两条最短路径间的中心点,并存入hop信息中。
9.如权利要求8所述的图上两点间最短路径查询方法,其特征在于,所述小图贪心算法迭代次数为5 10次。所述小图贪心算法迭代5 10次后,直接用路径端点作为所述小图内中心点。
10.如权利要求1所述的图上两点间最短路径查询方法,其特征在于,所述各点中的 hop信息,通过归并操作对查询请求的图上任意两点进行计算。
全文摘要
本发明涉及一种图上两点间最短路径查询方法,其步骤包括1)从图上随机抽取若干点作为支点,根据各支点间的最短路径得出图上每点的中间性估计值;2)将中间性估计值大于设定值的点作为中心点,将图中各点到各中心点的最短路径信息加入图中各点的hop信息,这些中心点的集合记为Wb;3)将图去除Wb中各点后分割为若干小图Si,并得到点割集Ws;4)对于每个小图Si根据枚举出的任意两点间最短路径,得到该小图Si内的所有点的hop信息;5)根据Wb中各点到Ws中各点的最短路径得到不同小图之间的点的hop信息;6)根据图中各点的hop信息,得到用户输入的两查询点之间的最短路径。本发明的方法可行且高效,能在可接受时间内计算出大规模图上的hop信息。
文档编号G06F17/30GK102521364SQ201110421889
公开日2012年6月27日 申请日期2011年12月15日 优先权日2011年12月15日
发明者彭鹏, 贾爱霞, 赵东岩, 邹磊 申请人:北京大学