基于路链的快速最短路径规划方法.pdf

上传人:r7 文档编号:6093353 上传时间:2019-04-10 格式:PDF 页数:10 大小:582.07KB
返回 下载 相关 举报
摘要
申请专利号:

CN201611055011.5

申请日:

2016.11.25

公开号:

CN106323324A

公开日:

2017.01.11

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G01C 21/34申请日:20161125|||公开

IPC分类号:

G01C21/34

主分类号:

G01C21/34

申请人:

西安电子科技大学

发明人:

付少忠; 宋一博; 李晓炎; 孙彦梅; 高明; 葛建华; 漆维正; 刘肖莹

地址:

710071 陕西省西安市雁塔区太白南路2号

优先权:

专利代理机构:

陕西电子工业专利中心 61205

代理人:

王品华;朱红星

PDF下载: PDF下载
内容摘要

本发明公开了一种基于路链的快速最短路径规划方法,针对现有A*算法中open表中所含节点多、耗时多和规划出来的路径转弯次数多的问题进行改进。其步骤包括:1)根据城市道路网生成节点拓扑表K;2)根据节点拓扑表K生成路链拓扑表U;3)创建open表和closed表;4)初始化open表,并根据路链拓扑表U维护open表和close表,划分出行驶的最短路径。本发明减少了路径规划所需处理的数据单元,降低了路径规划所需的时间,保持了道路的整体性和视觉上的连贯性,降低了输出路径中转弯的次数,可用于车辆或者步行导航。

权利要求书

1.基于路链的快速最短路径规划方法,其特征在于,包括以下步骤:
1)根据道路网生成节点拓扑表K,该节点拓扑表K包含节点的相邻节点、节点与相邻节
点之间弧段的长度;
2)创建一张路链拓扑表U,用以保存路链的拓扑关系,该路链拓扑表U包含路链的相邻
路链、路链与相邻路链的交点、路链所包含的节点以及相邻节点之间的距离;
3)通过节点拓扑表K中每一对相邻的节点生成路链,保存到路链拓扑表U,并将路链拓
扑表U中以相同节点为端点且夹角大于120度的两条路链合并成一条新的路链,若多条路链
与同一条路链夹角都大于120度,则选取夹角最大的两条路链组合成一条路链;
4)根据路链拓扑表U进行路径规划:
4.1)创建两张表:open表和closed表,其中closed表中用于保存已扩展过的路链,open
表用于保存已生成尚未扩展的路链;
4.2)设路链s的数据结构包含前继路链pre、从初始节点到该路链的实际代价g、从该路
链到目标节点最佳路径的估计代价h、从初始节点经由该路链到达目的节点的估计代价f;
4.3)确定步骤4.2)中g、h、f的值:
4.31)g值的确定:
若路链s是初始节点所在的路链,则路链s的g值为零,否则路链s的g值等于路链s的前
继路链t的g值加上Δg,其中Δg是路链t上第一节点a和第二节点b之间路链的长度,其中第
一节点a在路链t的前继路链不存在时,为路径规划的初始节点,否则为路链t的前继路链与
路链t的交点,第二节点b为路链t与路链s的交点;
4.32)h的确定:
路链s的h值等于节点c到目标节点的欧式距离加上路链s上以第二节点b和第三节点c
为端点的之间路链的长度,其中第三节点c是路链s上距离目标节点欧式距离最近的节点;
4.33)根据确定的g值和h值,得到f值为:f=g+h;
4.4)将初始节点n所在路链插入到open表,并计算其f值;;
4.5)判断open表是否为空,若是,结束路径搜索,路径规划失败,未能规划出一条从初
始节点到目标节点的路径,否则,执行步骤4.6);
4.6)从open表中选取f值最小的路链m放入到closed表内,再判断f值最小的路链m是否
为目标节点所在的路链,若是,则结束搜索,输出路径,否则执行步骤4.7);
4.7)判断f值最小的路链m是否有相邻路链,若是,则将所有相邻路链存入集合r中,否
则返回步骤4.6);
4.8)判断集合r是否为空,若是,则返回步骤4.6),否则,从集合r中取出一条相邻路链
记为p;
4.9)判断相邻路链p是否存在于closed表中,若是,则返回步骤4.8),否则执行步骤
4.10);
4.10)判断相邻路链p是否存在于open表中,若是,则执行步骤4.11),否则,将f值最小
的路链m设置为该相邻路链p的前继路链,计算相邻路链p的f值,并将该相邻路链p添加到
open表中,返回步骤4.8);
4.11)假设f值最小的路链m为相邻路链p的前继路链,计算相邻路链p的f值,判断在假
设前提下的f值是否比4.10)步骤计算的f值大,若是,则返回步骤4.8),否则,更新路链p的f
值为假设前提下的f值,且设置f值最小的路链m为该路链p的前继路链,返回步骤4.8)。
2.根据权利要求1所述的方法,其中步骤2)中的路链,是指一条自然延伸的不被割断的
道路,是道路自然形态的基本单元。
3.根据权利要求1所述的方法,其中步骤2)中的相邻路链,是指与路链有且仅有一个交
点的路链。
4.根据权利要求1所述的方法,其中步骤4.4)计算初始节点n所在路链的f值,是先得出
初始节点n所在路链上初始节点与第三节点c之间路链的长度d,再将该长度d与第三节点c
到目标节点的欧式距离e相加,即:f=d+e。
5.根据权利要求1所述的方法,其中步骤4.10)计算路链p的f值,按如下步骤进行:
首先,获得路链p的前继路链m,判断该前继路链m是否存在自己的前继路链mf,若存在,
则将m的前继路链mf与p的前继路链v的交点记为第一节点a,否则,将路径规划的初始节点
记为第一节点a;
接着,将路链p的前继路链m与路链p的交点,记为第二节点b,并计算路链m上第一节点a
与第二节点b之间路链的长度i;
接着,将路链p上距离目标节点欧式距离最近的节点,记为第三节点c,并计算路链p上
以第二节点b和第三节点c为端点的之间路链的长度j,以及第三节点c到目标节点的欧式长
度x;
最后,将路链m的g值记为mg,得出路链路链p的f值,即:f=i+x+j+mg。
6.根据权利要求1所述的方法,其中步骤4.11)计算路链p的f值,按如下步骤进行:
判断步骤4.11)中的f值最小的路链m是否存在自己的前继路链mf,若存在,则将路链m
的前继路链mf与路链m的交点记为第一节点a,否则,将路径规划的初始节点记为第一节点
a;
接着,将路链m与路链p的交点,记为第二节点b,并计算路链m上第一节点a与第二节点b
之间路链的长度z;
接着,将路链p上距离目标节点欧式距离最近的节点,记为第三节点c,并计算路链p上
以第二节点b和第三节点c为端点的之间路链的长度q,以及第三节点c到目标节点的欧式长
度y;
最后,将路链m的g值记为mg,得出路链路链p的f值,即:f=z+q+y+mg。

说明书

基于路链的快速最短路径规划方法

技术领域

本发明属于道路网络技术领域,特别是涉及一种最短路径规划方法,可用于车辆、
步行导航。

背景技术

对城市道路网进行最短路径分析,首先必须将现实中的城市道路网络实体抽象化
为网络图论理论中的网络,现有技术通常基于“节点-路段”拓扑数据模型实现两者之间的
相互映射,每一条自然道路被人为分割为若干条路段。这样做的不足之处是,首先,路径规
划算法所需处理的数据单元较多,其次,规划出的出行路径由路段拼接而成,导致出行路径
存在较多次转弯,不符合人们的出行规划经验。

刘康等人在其发表的论文“基于路网拓扑层次性表达的驾车路径规划方法”(《地
球信息科学学报》2015年9月第17卷)中提出一种将路链应用于路径规划中的方法。该方法
通过构建基于路链的对偶图来获取路链的拓扑结构指标,并将其赋予组成该路链的路段。
综合考虑路段长度、路网拓扑结构特征及道路交通状态3个因素通过Dijkstra算法进行路
径规划。该方法存在的不足之处是:首先,该方案只是将路链转换成路段的一个指标,用来
反映路段的重要程度,但仍旧基于“节点-路段”的拓扑网络关系进行路径规划,没有考虑到
基于“节点-路段”的拓扑网络关系会将每一条自然道路人为分割为若干条路段,进而导致
算法处理数据单元较多,其次,该方法采用Dijkstra算法进行路径规划,并没有采用时间复
杂度更低的A*算法。

重庆邮电大学在其申请的专利“基于二叉堆节点排序的A星寻路方法及系统”(公
开号CN 104268420A,申请号CN 201410531309.3)中公开了一种基于二叉堆节点排序的A*
寻路方法及系统。该方法在普通A*算法中引入堆排序,以此大幅提高A*算法执行效率。该方
法虽然克服了传统A*算法需要频繁维护open和close表。但是,open表中元素过多,单次维
护open表的时间较长,使得路径规划整体所用时间较长。

发明内容

本发明目的在于针对上述现有技术的不足,提出一种基于路链的快速最短路径规
划方法,以减少路径规划的所需时间以及减少规划出的路径的转弯次数。

本发明的技术方案是在现有A*算法的基础上进行改进,其实现步骤如下:

1)根据道路网生成节点拓扑表K,该节点拓扑表K包含节点的相邻节点、节点与相
邻节点之间弧段的长度;

2)创建一张路链拓扑表U,用以保存路链的拓扑关系,该路链拓扑表U包含路链的
相邻路链、路链与相邻路链的交点、路链所包含的节点以及相邻节点之间的距离;

3)通过节点拓扑表K中每一对相邻的节点生成路链,保存到路链拓扑表U,并将路
链拓扑表U中以相同节点为端点且夹角大于120度的两条路链合并成一条新的路链,若多条
路链与同一条路链夹角都大于120度,则选取夹角最大的两条路链组合成一条路链;

4)根据路链拓扑表U进行路径规划:

4.1)创建两张表:open表和closed表,其中closed表中用于保存已扩展过的路链,
open表用于保存已生成尚未扩展的路链;

4.2)设路链s的数据结构包含前继路链pre、从初始节点到该路链的实际代价g、从
该路链到目标节点最佳路径的估计代价h、从初始节点经由该路链到达目的节点的估计代
价f;

4.3)确定步骤4.2)中g、h、f的值:

4.31)g值的确定:

若路链s是初始节点所在的路链,则路链s的g值为零,否则路链s的g值等于路链s
的前继路链t的g值加上Δg,其中Δg是路链t上第一节点a和第二节点b之间路链的长度,其
中第一节点a在路链t的前继路链不存在时,为路径规划的初始节点,否则为路链t的前继路
链与路链t的交点,第二节点b为路链t与路链s的交点;

4.32)h的确定:

路链s的h值等于节点c到目标节点的欧式距离加上路链s上以第二节点b和第三节
点c为端点的之间路链的长度,其中第三节点c是路链s上距离目标节点欧式距离最近的节
点;

4.33)根据确定的g值和h值,得到f值为:f=g+h;

4.4)将初始节点n所在路链插入到open表,并计算其f值;

4.5)判断open表是否为空,若是,结束路径搜索,路径规划失败,未能规划出一条
从初始节点到目标节点的路径,否则,执行步骤4.6);

4.6)从open表中选取f值最小的路链m放入到closed表内,再判断f值最小的路链m
是否为目标节点所在的路链,若是,则结束搜索,输出路径,否则执行步骤4.7);

4.7)判断f值最小的路链m是否有相邻路链,若是,则将所有相邻路链存入集合r
中,否则返回步骤4.6);

4.8)判断集合r是否为空,若是,则返回步骤4.6),否则,从集合r中取出一条相邻
路链记为p;

4.9)判断相邻路链p是否存在于closed表中,若是,则返回步骤4.8),否则执行步
骤4.10);

4.10)判断相邻路链p是否存在于open表中,若是,则执行步骤4.11),否则,将f值
最小的路链m设置为该相邻路链p的前继路链,计算相邻路链p的f值,并将该相邻路链p添加
到open表中,返回步骤4.8);

4.11)假设f值最小的路链m为相邻路链p的前继路链,计算相邻路链p的f值,判断
在假设前提下的f值是否比4.10)步骤计算的f值大,若是,则返回步骤4.8),否则,更新路链
p的f值为假设前提下的f值,且设置f值最小的路链m为该路链p的前继路链,返回步骤4.8)。

本发明具有如下优点:

1.本发明由于将节点拓扑表转换成路链拓扑表,依据路链拓扑表进行路径规划,
减少了路径规划所需处理的数据单元,从而降低了路径规划所需的时间。

2.本发明的输出路径由于通过路链拼接而成,保持了道路的整体性和视觉上的连
贯性,从而降低了输出路径中转弯的次数。

附图说明

图1为本发明使用的场景示意图;

图2为本发明的实现流程图。

具体实施方式

下面结合附图对本发明作进一步的描述。

参照图1,本发明具体实施方式的场景示意图中,其道路网由18个节点组成,即节
点n1至n18,其中任意一对相邻节点之间的距离为1,路径规划的初始节点为节点n1,路径规
划的目标节点为节点n18。

参照图2,对本发明的实现流程如下:

步骤1,生成节点拓扑表。

根据道路网生成节点拓扑表K,该节点拓扑表K包含节点的相邻节点、节点与相邻
节点之间弧段的长度。

步骤2,创建路链拓扑表。

创建一张路链拓扑表U,用以保存路链的拓扑关系,该路链拓扑表U包含路链的相
邻路链、路链与相邻路链的交点、路链所包含的节点以及相邻节点之间的距离。

所述路链,是指一条自然延伸的不被割断的道路,是道路自然形态的基本单元。

所述相邻路链,是指与路链有且仅有一个交点的路链。

步骤3,构建路链,并存入路链拓扑表

通过节点拓扑表K中每一对相邻的节点生成路链,保存到路链拓扑表U,并将路链
拓扑表U中以相同节点为端点且夹角大于120度的两条路链合并成一条新的路链,若多条路
链与同一条路链夹角都大于120度,则选取夹角最大的两条路链组合成一条路链。

本实例参照图1,通过节点拓扑表K中的18对相邻节点生成18条初始路链为:第一
条路链(n1,n2)、第二条路链(n2,n3)、第三条路链(n3,n4)、第四条路链(n4,n5)、第五条路
链(n5,n6)、第六条路链(n6,n7)、第七条路链(n7,n8)、第八条路链(n8,n9)、第九条路链
(n9,n18)、第十条路链(n9,n16)、第十一条路链(n9,n17)、第十二条路链(n10,n3)、第十三
条路链(n3,n11)、第十四条路链(n12,n11)、第十五条路链(n13,n12)、第十六条路链(n12,
n14)、第十七条路链(n14,n7)和第十八条路链(n7,n15),并将这18条初始路链存放到路链
拓扑表U中;

路链拓扑表U中的第一条初始路链(n1,n2)与第二条初始路链(n2,n3)均以节点n2
为端点且夹角为180度,因此将第一条初始路链(n1,n2)与第二条初始路链(n2,n3)进行合
成,得到一次合成后的第一条路链(n1,n2,n3),该一次合成后的第一条路链(n1,n2,n3)与
第三条初始路链(n3,n4)均以节点n3为端点且夹角为180度,因此将一次合成后的第一条路
链(n1,n2,n3)与第三条初始路链(n3,n4)再进行合成,得到一次合成后的第二条路链(n1,
n2,n3,n4),同理,将该一次合成后的第二条路链(n1,n2,n3,n4)与第四条初始路链(n4,n5)
再进行合成,得到一次合成后的第三条路链(n1,n2,n3,n4,n5),因为该一次合成后的第三
条路链(n1,n2,n3,n4,n5)与其他路链均不满足合成的条件,所以将该一次合成后的第三条
路链(n1,n2,n3,n4,n5)作为第一条最终路链。以此类推,经过二次、三次和四次合成,分别
得到第二条最终路链(n5,n6,n7,n8,n9)、第三条最终路链(n10,n3,n11,n12)和第四条最终
路链(n13,n12,n14,n7,n15);

第九条初始路链(n9,n18),第十条初始路链(n16,n9)和第十一条初始路链(n17,
n9)均以节点n9为端点,第九条初始路链(n9,n18)与第十条初始路链(n16,n9)的夹角为180
度,第九条初始路链(n9,n18)与第十一条初始路链(n17,n9)的夹角为170度,依据选取夹角
最大的两条路链合成一条路链的原则,将第九条初始路链(n9,n18)与第十条初始路链
(n16,n9)进行合成,得到五次合成后的第一条路链(n16,n9,n18),因为该五次合成后的第
一条路链(n16,n9,n18)与其他路链均不满足合成的条件,所以将该五次合成后的第一条路
链(n16,n9,n18)作为第五条最终路链,同理,因为第十一条初始路链(n17,n9)与其他路链
均不满足合成的条件,所以将第十一条初始路链(n17,n9)作为第六条最终路链。

步骤4,创建open表和closed表。

创建两张表:一张是open表,另一个是closed表,其中closed表中用于保存已扩展
过的路链,open表用于保存已生成尚未扩展的路链。

步骤5,构建路链的数据结构。

5.1)设路链s的数据结构包含前继路链pre,并设从初始节点到该路链的实际代价
值为g、从该路链到目标节点最佳路径的估计代价值为h、从初始节点经由该路链到达目的
节点的估计代价值为f;

5.2)确定5.2)中的g、h、f值:

5.21)g值的确定:

若路链s是初始节点所在的路链,则路链s的g值为零;否则,路链s的g值等于路链s
的前继路链t的g值加上Δg,其中Δg是路链t上第一节点a和第二节点b之间路链的长度,第
一节点a在路链t的前继路链不存在时,为路径规划的初始节点,否则为路链t的前继路链与
路链t的交点,第二节点b为路链t与路链s的交点;

5.22)h值的确定:

路链s的h值等于节点c到目标节点的欧式距离加上路链s上以第二节点b和第三节
点c为端点的之间路链的长度,其中第三节点c是路链s上距离目标节点欧式距离最近的节
点;

5.23)根据确定的g值和h值,得到f值为:f=g+h。

步骤6,初始化open表。

首先将初始节点n所在路链插入到open表,再依据公式f=d+e计算出初始节点n所
在路链的f值,其中d为初始节点n所在路链上初始节点与第三节点c之间路链的长度,e为第
三节点c到目标节点的欧式距离。

本实施例参照图1,首先将第一条最终路链(n1,n2,n3,n4,n5)插入open表,再依据
公式f=d+e计算出该第一条最终路链的f值,其中d为该第一条最终路链上节点n1与节点n5
之间路链的长度,等于4,e为节点n5到目标节点n18的欧式距离,等于因此第
一条最终路链(n1,n2,n3,n4,n5)的f值等于

步骤7,维护open表和closed表,划分路径。

7.1)判断open表是否为空,若是,结束路径搜索,路径规划失败,否则,执行步骤
7.2);

7.2)从open表中选取f值最小的路链m放入到closed表内,再判断f值最小的路链m
是否为目标节点所在的路链,若是,则结束搜索,输出路径,否则,执行步骤7.3);

7.3)判断f值最小的路链m是否有相邻路链,若是,则将所有相邻路链存入集合r
中,否则,返回步骤7.1);

7.3)判断集合r是否为空,若是,则返回步骤7.1),否则,从集合r中取出一条相邻
路链记为p;

7.4)判断相邻路链p是否存在于closed表中,若是,则返回步骤7.3),否则,执行步
骤7.5);

7.5)判断相邻路链p是否存在于open表中,若是,则执行步骤7.7),否则,将f值最
小的路链m设置为该相邻路链p的前继路链,并将该相邻路链p添加到open表中,执行步骤
7.6);

7.6)计算路链p的f值:

7.61)获得路链p的前继路链m,判断该前继路链m是否存在自己的前继路链mf,若
存在,则将m的前继路链mf与p的前继路链v的交点记为第一节点a,否则,将路径规划的初始
节点记为第一节点a;

7.62)将路链p的前继路链m与路链p的交点,记为第二节点b,并计算路链m上第一
节点a与第二节点b之间路链的长度i;

7.63)将路链p上距离目标节点欧式距离最近的节点,记为第三节点c,并计算路链
p上第二节点b和第三节点c之间路链的长度j,以及第三节点c到目标节点的欧式长度x;

7.64)将路链m的g值记为mg,得出路链路链p的f值,即:f=i+x+j+mg,最后返回步
骤7.3);

7.7)假设f值最小的路链m为相邻路链p的前继路链,计算相邻路链p的f值:

7.71)判断f值最小的路链m是否存在自己的前继路链mf,若存在,则将路链m的前
继路链mf与路链m的交点记为第一节点a,否则,将路径规划的初始节点记为第一节点a;

7.72)将路链m与路链p的交点记为第二节点b,并计算路链m上第一节点a与第二节
点b之间路链的长度z;

7.73)将路链p上距离目标节点欧式距离最近的节点记为第三节点c,并计算路链p
上以第二节点b和第三节点c为端点的之间路链的长度q,以及第三节点c到目标节点的欧式
长度y;

7.74)将路链m的g值记为mg,得出假设前提下路链路链p的f值,即:f=z+q+y+mg,
执行步骤7.8);

7.8)判断在假设前提下的路链p的f值是否比路链p实际的f值大,若是,则返回步
骤7.3),否则,令路链p的f值为假设前提下的f值,且设置f值最小的路链m为该路链p的前继
路链,返回步骤7.3)。

以上描述的仅是本发明的一个具体实例,不构成对本发明的任何限制,显然对于
本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离发明原理、结构的
情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍
在本发明的权利要求保护范围之内。

基于路链的快速最短路径规划方法.pdf_第1页
第1页 / 共10页
基于路链的快速最短路径规划方法.pdf_第2页
第2页 / 共10页
基于路链的快速最短路径规划方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《基于路链的快速最短路径规划方法.pdf》由会员分享,可在线阅读,更多相关《基于路链的快速最短路径规划方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明公开了一种基于路链的快速最短路径规划方法,针对现有A*算法中open表中所含节点多、耗时多和规划出来的路径转弯次数多的问题进行改进。其步骤包括:1)根据城市道路网生成节点拓扑表K;2)根据节点拓扑表K生成路链拓扑表U;3)创建open表和closed表;4)初始化open表,并根据路链拓扑表U维护open表和close表,划分出行驶的最短路径。本发明减少了路径规划所需处理的数据单元,降低了路。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 测量;测试


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1