[发明专利]关系数据库环境下图中最短路径的查询方法有效
申请号: | 201210167376.2 | 申请日: | 2012-05-25 |
公开(公告)号: | CN102722546A | 公开(公告)日: | 2012-10-10 |
发明(设计)人: | 周家帅;高军;蒋晓;王腾蛟;杨冬青;唐世渭 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 关系 数据库 环境 下图 中最短 路径 查询 方法 | ||
技术领域
本发明属于信息技术领域,涉及图中最短路径的查询方法,具体涉及一种在关系数据库环境下基于表划分的存储方式高效地查询图中最短路径的方法,可提高大图上数据的查询效率。
背景技术
随着图数据规模的增长以及图上面各种应用需求的增加,传统的最短路径的计算及查询方法已经不能有效地对大图数据进行管理和查询了。而且随着图的规模越来越大,已经不能假定整个图都能完全放在内存之中了,这样很多传统的基于内存的图算法都需要重新进行调整,每次只能加载一部分需要的数据进行计算,而不是一次加载整个图,这样的话磁盘IO代价会成为查询执行的关键。同时在内存不足的情况下提供灵活的结点和边访问方式也需要很大的代价,用户可能需要自己根据不同的应用来设计有效的Buffer机制。
目前已经存在利用关系数据库来对大图进行管理的方法,该方法利用成熟的关系数据库提供的稳定的数据存储、灵活的数据访问方式、高效的数据访问缓冲区等功能来实现大图上的最短路径查询,使得用户不需要自己单独实现Buffer机制,就可以有效地执行大图上的最短路径查询。不过,该方法对大图的查询都是在单个数据库表上实现的,这样随着需要管理的图进一步增大,该方法的规模性和查询效率都会大大下降,不利于对超大规模图的管理。
发明内容
本发明目的在于提出一种在关系数据库环境下基于表划分的图中最短路径的查询方法,将一个大图划分成多个子图,分别存储在不同的数据库表中,使得查询拓展可以在较小的表上进行,能够获得更好的规模性和查询效率。
为达到上述目的,本发明采用如下技术方案:
一种关系数据库环境下图中最短路径的查询方法,其步骤包括:
1)将图存储于关系数据库中,按照该图中边的权重将该图对应的表划分成若干子表;
2)根据查询请求中的源结点与目标结点建立已访问结点表,并为源结点和目标结点初始化需要拓展的子表;
3)采用宽度优先搜索方法对图中各个结点在选定的子表上进行迭代拓展;
4)所述迭代拓展终止后,继续在原图的所有边上进行一次补充拓展,得到最短路径。
进一步地,步骤1)所述图为有向带权图或无向带权图;在划分子表时,使各子表包含权重落在一定范围内的边。
进一步地,步骤3)所述迭代拓展为双向拓展或单向拓展。进行双向拓展时,所述已访问结点表中的每个结点u包含如下属性:
nid,表示结点u的标识符id;
d2s,表示结点u距离源结点s当前的最短距离;
p2s,表示结点u到源结点s当前最短路径上的前一个结点;
fwd,用来引导结点u进行向前拓展时应选择的子表;初始化源结点的fwd为1,在第i次拓展之后,所有新拓展的结点的fwd设置为i+1;
d2t,表示结点u距离目标结点t当前的最短距离;
p2t,表示结点u到目标结点t当前最短路径上的下一个结点;以及
bwd,用来引导结点u进行向后拓展时应选择的子表;初始化源结点的bwd为1,在第i次拓展之后,所有新拓展的结点的bwd设置为i+1。
进一步地,步骤3)采用受限的宽度优先搜索方法,优先拓展权重较小的边。
进一步地,步骤3)所述迭代拓展包含三种操作:
F操作:该操作从已访问结点中选出边界结点进行拓展,如果一个结点未在所有子表上完成拓展,则选其为边界结点;对于正向拓展,若当前是第i次拓展,则边界结点的fwd满足i-fwd+1小于等于子表的数目;对于反向拓展,若当前是第j次拓展,则边界结点的bwd满足j-bwd+1小于等于子表的数目;
E操作:该操作拓展选出来的边界结点,得到新拓展的结点,每次拓展只为边界结点选择一个子表进行拓展;对于正向拓展,若当前是第i次拓展,则为边界结点选择的拓展子表为第i-fwd+1个子表;对于反向拓展,若当前是第j次拓展,则为边界结点选择的拓展子表为第j-bwd+1个子表;
M操作:该操作合并新拓展出的结点与之前已访问的结点。
进一步地,步骤4)所述补充拓展是使用原图的整个边表或所有子表的并集进行拓展。
本发明的优点和积极效果如下:
1)本发明设计了一种基于权重的表划分存储模式,保证拓展在每一个划分后的子表上进行,这样可以降低每次拓展的执行时间;同时,更小的表也可以使得关系数据库的缓冲区策略更有效。因此本发明可以获得更好的规模性和查询效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210167376.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:结构复用的蓝牙耳机插头
- 下一篇:一种分散式网络控制系统