当前位置: 首页 > 专利查询>中山大学专利>正文

一种基于两阶段处理的点到点最短路求解方法技术

技术编号:39181439 阅读:10 留言:0更新日期:2023-10-27 08:29
本发明专利技术公开一种基于两阶段处理的点到点最短路求解方法,包括以下步骤:S1:获取地图信息,根据地图信息构建图G;S2:对Dijkstra算法进行改进,在Dijkstra算法的预处理阶段,引入reach值并改进reach值的计算方式,采用上界值限制reach值;在Dijkstra算法的在线查询阶段,引入Heap与Map数组求取精确解;通过reach值对在线查找的过程进行剪枝;S3:利用步骤S2改进的Dijkstra算法对步骤S1中得到的图G进行处理,得到源点与汇点的最短路径。本发明专利技术通过改进Dijkstra算法,实现点到点最短路的快速求解。解。解。

【技术实现步骤摘要】
一种基于两阶段处理的点到点最短路求解方法


[0001]本专利技术涉及图计算
,更具体地,涉及一种基于两阶段处理的点到点最短路求解方法。

技术介绍

[0002]通过将研究对象抽象成图的顶点,将对象与对象之间的关系抽象成顶点之间的边,现实中的许多问题的研究对象都可以转化为图数据结构,因此很多问题都可以转化为图计算的相关问题来解决。
[0003]点到点最短路径问题主要研究的是选取图中的两个顶点分别作为源点与目标点,求解从源点到目标点的最短路径,这一问题在实际场景中有许多的应用,如交通导航、航路规划等等,而这些场景通常需要对同一幅图进行大规模多次的查询。
[0004]进入21世纪,电子商务的浪潮席卷而至,大大小小的电子商务网站如雨后春笋般出现在了互联网。要想在竞争惨烈的电商大战中生存下来必须要建立企业的核心竞争力,而物流配送必定是其中之一。长期以来,物流配送人员在道路上穿梭时往往靠经验选择路线,这样的选择不具有实时性,且人为的判断不太精准。所以物流的效率一直无法有效提高。
[0005]所以随着信息化的发生,现在越来越多的物流配送也采用GPS(全球定位系统)定位导航的方式来选择目的地的路线,但是由于现有地图信息得到数据量越发庞大,很多时候求解出来的路线并不一定是最短路径。
[0006]在大数据的应用场景下,对最短路径求解算法的运行时间效率的要求越来越高,两阶段处理算法成为了研究热点。此类算法的主要思想在于将求解过程分为两个阶段
‑‑
预处理阶段与在线查询阶段。在预处理阶段,主要是对图离线计算并且存储相应的计算结果以及附加数据,而在线查询阶段就可以利用在预处理阶段保存的数据进行少量的计算从而快速地得到结果。
[0007]现有技术中公开一种在建筑中计算平面内任意点到点最短路径的方法及系统,将平面空间抽象为计算机可操作的点Point、边Edge、多边形Polygon和图Graph;对初始的图Graph使用可见点算法进行可见性图Visibility Graph的计算;对要计算的点,将额外的可见边Additional Visibility Edges添加到可见性图Visibility Graph中;使用Dijkstra算法寻找最短路径。该方案直接使用Dijkstra算法,其计算效率不高,在面对大图数据时计算实时性不强。

技术实现思路

[0008]本专利技术提供一种基于两阶段处理的点到点最短路求解方法,改进Dijkstra算法,提升了点到点最短路径的求解效率。
[0009]为解决上述技术问题,本专利技术的技术方案如下:
[0010]一种基于两阶段处理的点到点最短路求解方法,包括以下步骤:
[0011]S1:获取地图信息,根据地图信息构建图G;
[0012]S2:对Dijkstra算法进行改进,在Dijkstra算法的预处理阶段,引入reach值并改进reach值的计算方式,采用上界值限制reach值;在Dijkstra算法的在线查询阶段,引入Heap与Map数组求取精确解;通过reach值对在线查找的过程进行剪枝;
[0013]S3:利用步骤S2改进的Dijkstra算法对步骤S1中得到的图G进行处理,得到源点与汇点的最短路径。
[0014]在上述技术手段中,对Dijkstra算法进行改进,引入reach值并改进reach值的计算方式,采用上界值限制reach值;在Dijkstra算法的在线查询阶段,引入Heap与Map数组求取精确解;通过reach值对在线查找的过程进行剪枝,提升了Dijkstra算法的计算效率。
[0015]优选地,步骤S1中,根据地图信息构建图G,具体为:
[0016]将地图中不同地点作为顶点,地点之间的道路作为边,构建图G。
[0017]优选地,步骤S2中,改进的Dijkstra算法的预处理阶段,具体包括以下步骤:
[0018]S2.01:计算当前已经求得的最大上界值c;
[0019]S2.02:对V'中的每个顶点v,设置bounds(v)为0,r(v)为0,r(v)表示顶点v的精确reach值;
[0020]S2.03:定义图H={VH,EH},其中EH={(x,y)|x∈V',y∈V},S2.03:定义图H={VH,EH},其中EH={(x,y)|x∈V',y∈V},
[0021]S2.04:对V'中的每个顶点s

,以s

为根节点,在图H和最大上界值c的约束下生成部分最短路径树;
[0022]S2.05:根据部分最短路径树,计算bounds(v),并更新r(v)和bounds(v);
[0023]S2.06:对于r(v)大于预设阈值的顶点,将其reach上界值重设为∞,返回步骤S2.01,若求解出reach上界值的顶点的比例满足规定比例,迭代结束。
[0024]优选地,步骤S2.01中,计算当前已经求得的最大上界值c,具体为:
[0025]c=max{bounds(x)|x∈V

V'}
[0026]式中,bounds(x)为顶点x的reach上界值,初始状态下,bounds(x)=∞;V为图G中的顶点集合,V'为图G'的顶点集合,图G'是图G的子图,G'={V',E'},V'中存储仍未求reach上界值,即bounds(v)为∞的顶点,E'存放连接V'中两个顶点的边,初始状态下,G'=G。
[0027]优选地,步骤S2.04对V'中的每个顶点s

,以s

为根节点,在图H和最大上界值c的约束下生成部分最短路径树,具体为:
[0028]如果存在边(x,y)∈E

E',则有:
[0029]g=,ax{nounds(x)+w(x,s

)|(x,s

)∈E

E'}
[0030]d=max{w(x,s

)|(x,s

)∈E

E'}
[0031]如果不存在边(x,y)∈E

E',则g=d=0;
[0032]式中,E为图G的边集合,g、d为两个不同的限制参数,w(x,s

)为边(x,s

)的权值;
[0033]以s

根节点在图H上运行Dijkstra算法生成最短路径树T,并根据最大上界值c和限制参数d设置提前终止条件,当生成的最短路径满足提前终止条件时,停止生成树。
[0034]优选地,所述提前终止条件,具体为:
[0035]当最短路径P

的长度达到2B[i]+c+d+w(f)+w(l)时,停止生成树,式中,i为当前迭代次数,B[i]为自定义阈值数组B中的第i个数,所述自定义阈值数组B中的数为一列从小到
大排列的常数,w(f)位最短路径上的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于两阶段处理的点到点最短路求解方法,其特征在于,包括以下步骤:S1:获取地图信息,根据地图信息构建图G;S2:对Dijkstra算法进行改进,在Dijkstra算法的预处理阶段,引入reach值并改进reach值的计算方式,采用上界值限制reach值;在Dijkstra算法的在线查询阶段,引入Heap与Map数组求取精确解;通过reach值对在线查找的过程进行剪枝;S3:利用步骤S2改进的Dijkstra算法对步骤S1中得到的图G进行处理,得到源点与汇点的最短路径。2.根据权利要求1所述的基于两阶段处理的点到点最短路求解方法,其特征在于,步骤S1中,根据地图信息构建图G,具体为:将地图中不同地点作为顶点,地点之间的道路作为边,构建图G。3.根据权利要求1所述的基于两阶段处理的点到点最短路求解方法,其特征在于,步骤S2中,改进的Dijkstra算法的预处理阶段,具体包括以下步骤:S2.01:计算当前已经求得的最大上界值c;S2.02:对V'中的每个顶点v,设置bounds(v)为0,r(v)为0,r(v)表示顶点v的精确reach值;S2.03:定义图H={VH,EH},其中EH={(x,y)|x∈V',y∈V},S2.03:定义图H={VH,EH},其中EH={(x,y)|x∈V',y∈V},S2.04:对V'中的每个顶点s

,以s

为根节点,在图H和最大上界值c的约束下生成部分最短路径树;S2.05:根据部分最短路径树,计算bounds(v),并更新r(v)和bounds(v);S2.06:对于r(v)大于预设阈值的顶点,将其reach上界值重设为∞,返回步骤S2.01,若求解出reach上界值的顶点的比例满足规定比例,迭代结束。4.根据权利要求3所述的基于两阶段处理的点到点最短路求解方法,其特征在于,步骤S2.01中,计算当前已经求得的最大上界值c,具体为:c=max{bounds(x)|x∈V

V'}式中,bounds(x)为顶点x的reach上界值,初始状态下,bounds(x)=∞;V为图G中的顶点集合,V'为图G'的顶点集合,图G'是图G的子图,G'={V',E'},V'中存储仍未求reach上界值,即bounds(v)为∞的顶点,E'存放连接V'中两个顶点的边,初始状态下,G'=G。5.根据权利要求3所述的基于两阶段处理的点到点最短路求解方法,其特征在于,步骤S2.04对V'中的每个顶点s

,以s

为根节点,在图H和最大上界值c的约束下生成部分最短路径树,具体为:如果存在边(x,y)∈E

E',则有:g=max{bounds(x)+w(x,s

)|(x,s

)∈E

E'}d=max{w(x,s

)|(x,s

)∈E
...

【专利技术属性】
技术研发人员:姚正安张婧纯
申请(专利权)人:中山大学
类型:发明
国别省市:

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

1