CN103439726B - 一种应用于gps的快速k最短路径规划方法 - Google Patents

一种应用于gps的快速k最短路径规划方法 Download PDF

Info

Publication number
CN103439726B
CN103439726B CN201310400749.0A CN201310400749A CN103439726B CN 103439726 B CN103439726 B CN 103439726B CN 201310400749 A CN201310400749 A CN 201310400749A CN 103439726 B CN103439726 B CN 103439726B
Authority
CN
China
Prior art keywords
path
node
shortest path
shortest
sidetrack
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
CN201310400749.0A
Other languages
English (en)
Other versions
CN103439726A (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201310400749.0A priority Critical patent/CN103439726B/zh
Publication of CN103439726A publication Critical patent/CN103439726A/zh
Application granted granted Critical
Publication of CN103439726B publication Critical patent/CN103439726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

本发明提供了一种应用于GPS的快速K最短路径规划方法,所述方法运用动态装载数据搜索方法以及启发式搜索思想递归计算K条最短路径:利用A*算法求得最短路径,依次遍历前一条最短路径上各个结点的出边得到一个候选路径集合;递归搜索从第i条最短路得到第i+1条最短路径。本发明的优点是快速求出K条最短路径并将其应用于GPS导航***,在一定程度上解决GPS导航路径单一的问题,而且给出K条路径方案供用户选择,充分考虑了用户在行驶过程中的其它需求,明显提高设备的实用性。

Description

一种应用于GPS的快速K最短路径规划方法
技术领域
本发明属于计算机网络领域,具体涉及一种K最短路径搜索方法,并将其应用于GPS导航设备中。
背景技术
路径搜索问题一般可以通过图论中的最短路径方法解决。常用的最短路方法有Dijkstra、广度优先方法等经典方法。然而这些方法只能寻找图中给定点到任意点间的最短路径。这在实践中往往是不够的,比如,在GPS导航中,除了最短路径外,可能需要寻找第二短路径备用,甚至在某些条件下,可能需要寻找第三、第四短路径。这类问题称为K短路径问题。
与单源最短路径问题相比,K短路径问题在方法设计上更为复杂,目前尚没有一种K短路径方法如单源最短路径方法中的Dijkstra方法一样得到业界共识并且达到大规模实用化程度。
常用的K短路径搜索方法有删除边方法、偏离边方法等。但是这些方法仅仅是一种理论上的模型,在实践应用中还存在问题。
GPS定位***是指利用卫星,在全球范围内实时进行定位、导航的***,简称GPS(Global Positioning System)。GPS可以提供车辆定位、防盗、反劫、行驶路线监控及呼叫指挥等功能。由于GPS技术所具有的全天候、高精度和自动测量的特点,作为先进的测量手段和新的生产力,已经融入了国民经济建设、国防建设和社会发展的各个应用领域。
目前已经有很多具有GPS导航功能的终端设备,但是却只能提供最短路径或者满足某种条件的路径,而不能考虑用户在行驶中的其它需求合理给出可供选择的路径。
发明内容
本发明的目的在于提供一种能应用于GPS的快速路径规划方法,该方法应能解决以下几个方面的问题:
(1)可提供限定无环路径的K短路径问题的计算机算法,具有实用性,而非一种纯理论上的算法概念;
(2)给出从源点到目标结点间任意给定数目(即K数)并且以路径长度排序的所有路径;
(3)可将该算法应用于GPS导航中,使得K短路径方法得到实际应用。
为实现以上目标,本发明提出一种应用于GPS的快速K最短路径规划方法,其主要特点,包括以下步骤:
一种应用于GPS的快速K最短路径规划方法,其特征在于,包括以下步骤:
(1)导入地图,并由用户根据GPS确定起始点s和终点t以及相应的K值,其中K是用户期望查找的最短路径数目;
(2)对结点t调用A*算法得到最短路径,定义变量k,令k=1;
(3)递归计算k条最短s-t路径:依次遍历第k条最短路径上各结点的所有为sidetrack edge的入边得到候选路径,并加入集合C,sidetrack edge表示不在最短路径树上的边;
(4)从集合C中取出一条最短路径作为第k+1条最短路径;
(5)判断k,如果路径条数未达到K值,则进入步骤6,否则跳转到步骤7;
(6)判断集合C,如果该集合非空,则返回步骤3,否则进入步骤8;
(7)算法成功结束,返回搜索结果;
(8)算法结束,未找到足够的K条路径,返回搜索结果。
上述技术方案中,所述步骤2中利用A*得到第一条最短路径后A*暂停,且后续步骤中再次调用A*进行结点扩展,在A*的运行过程中,对当前节点的所有出边进行迭代,将位于最短路径树上的边标记为tree edge,不在最短路径树上的边标记为sidetrack edge,对于所有被扩展过的顶点标记其状态为close。
上述技术方案中,所述步骤3中遍历各结点是按照从第k条路径中的最后一个sidetrack edge边的尾结点前向搜索到起始结点,候选路径用sidetrack edge的集合来表示,最后用sidetrack edge表示的路径一一对应地表示为一条常规路径。
上述技术方案中,所述步骤3中依次遍历第k条最短路径上各结点,其方法包括以下步骤:
(4-1)依次遍历当前第k条路径上从最后一条sidetrack edge到起始结点中的所有结点,记为v;
(4-2)依次遍历结点v的所有的sidetrack edge出边,记为e;
(4-3)判断边e的头结点,如果其状态不是close,则重启A*直到e的头结点的状态被标记为close;
(4-4)将e加入到当前路径第k条的末尾,形成一条新的候选路径并计算其长度,加入到集合C中。
上述技术方案中,所述步骤4取出当前集合C中路径长度最短的候选路径作为下一条待处理的路径,候选路径长度为d(t)-d(head(e))+w(e)+d(tail(e))。
上述技术方案中,所述步骤5对K的判断,如果已经达到K值,返回K条最短路径。
上述技术方案中,所述步骤6对C进行判断,集合C如果为空,表示没有候选路径可供选择,算法结束返回不能成功找到K条路径。
上述技术方案中,k为循环变量,每次循环后k++,表示当前已经得到的路径条数。
上述技术方案中,其特征在于步骤1中A*算法包括如下步骤:
(9-1)初始化操作,令集合open为空,将起始结点s设置为close,计算结点s的所有出sidetrack边的f值并入到open集合,其中f值得计算方法为:f(e)=d(tail(e))+w(e)+h(head(e)),函数d(v)表示结点d到初始结点s的最短距离,w(e)表示边e的权值,h(v)表示结点v到目标结点t距离的估计值,tail(e)表示边e的尾结点,head(e)表示边e的头结点;
(9-2)若open集合不为空,进入(9-3),否则跳转到(9-4);
(9-3)从open集合中取出f值最小的一条边,记为e,若head(e)的状态是close,将e标记为sidetrack edge并跳转到步骤2,否则将head(e)设置为close,并计算head(e)的所有出边并将其加入到open集合,若head(e)=目标结点t,跳转到(9-5);
(9-4)返回,找不到结点t;
(9-5)返回,成功找到结点t。
上述技术方案中,递归计算k条最短s-t路径,其步骤如下:
(10-1)设置当前路径π为第一条最短路径,π为由sidetrack edge表示的路径,P(π)为与π相对于的s-t路径,令路径集合C为空;
(10-2)对于路径P(π)中的所有结点,除去t,对于该结点的所有的出sidetrack edge e,若head(e)的状态不是close,重启A*直到e的头结点的状态被标记为close,将e加入到π中形成新路径π*,计算路径π*长度l(π*)=d(t)-d(head(e))+w(e)+d(tail(e)),将路径π*加入集合C;
(10-3)若已经得到K条最短路径,进入(10-7);
(10-4)若C为空,进入(10-6);
(10-5)从集合C中取出一条最短路径作为当前最短路径π,进入(10-2);
(10-6)返回,没找到k条最短路径;
(10-7)返回,成功找到k条最短路径。
本发明具有如下特点:
(1)路径搜索过程中运用了地图数据动态装载特性,提升了搜索速度,降低了算法占用空间;
(2)运用了启发式搜索方法,提高了搜索效率;
(3)采用递归思想提供了一种快速K最短路径规划算法;
(4)将这种快速路径规划算法应用于GPS导航中,提高了该算法的实用性。
附图说明
图1是K短路径快速搜索方法流程图;
图2是A*算法流程图;
图3是应用于GPS的使用流程图。
具体实施方式
下面结合附图以及实施例对本发明作进一步详细描述。
参考图1,为本发明所述K短路径计算机算法流程,结合上面的具体问题分析得如下所述具体步骤:
步骤1:对结点t调用A*算法得到最短路径,定义变量k,令k=1;
步骤2:对于路径P(π)中的所有结点(除去t),对于该结点的所有的出sidetrack edge e,若head(e)的状态不是close,运行A*直到head(e)的状态为close,将e加入到π中形成新路径π*,计算路径π*长度l(π*)=d(t)-d(head(e))+w(e)+d(tail(e)),将路径π*加入集合C;
步骤3:若已经得到K条最短路径,进入步骤7;
步骤4:若C为空则进入步骤6;
步骤5:从集合C中取出一条最短路径作为当前最短路径π,进入步骤2;
步骤6:返回,没找到k条最短路径;
步骤7:返回,成功找到k条最短路径。
根据上面的流程,算法结束后,得到按照路径长度排序的K短路径集。
如上所述步骤1中,对结点调用A*算法也是一个重要的过程,下面对A*作详细描述。
参考图2,为本发明所述A*算法流程,其详细步骤如下:
步骤1:初始化操作。令集合open为空,将起始结点s设置为close,计算结点s的所有出sidetrack边的f值并入到open集合,其中f值得计算方法为:f(e)=d(tail(e))+w(e)+h(head(e)),函数d(v)表示结点d到初始结点s的最短距离,w(e)表示边e的权值,h(v)表示结点v到目标结点t距离的估计值;
步骤2:若open集合不为空,进入步骤3,否则跳到步骤4;
步骤3:从open集合中取出f值最小的一条边,记为e,若head(e)的状态是close,将e标记为sidetrack edge并跳转到步骤2,否则将head(e)设置为close,并计算head(e)的所有出边并将其加入到open集合,若head(e)=目标结点t,跳转到步骤5;
步骤4:返回,找不到结点t;
步骤5:返回,成功找到结点t。
如上所述,运行A*算法将得到从源点到目标点的最短路径,且在K短路径后续步骤中会调用A*对结点进行扩展。每次调用后,得到新的扩展结点集合以及sidetrack edge集合。
参考图3,为本发明所述将K短路径算法应用于GPS的流程,其详细步如下:
步骤1:导航设备导入电子地图,GPS定位当前位置,作为源点;
步骤2:用户输入目的地以及希望找到路径的条数K;
步骤3:运行K短路径算法,得到搜索结果并将结果返回给用户;
步骤4:用户根据搜索得到的结果选取一条便利的路径,GPS开始导航。
如上所述,将K短路径搜索方法应用于GPS中,既扩大了K短路径搜索算法的应用范围,也提高了GPS导航设备的实用性。

Claims (1)

1.一种应用于GPS的快速K最短路径规划方法,其特征在于,包括以下步骤:
(1)导入地图,并由用户根据GPS确定起始点s和终点t以及相应的K值,其中K是用户期望查找的最短路径数目;
(2)对结点t调用A*算法得到最短s-t路径,定义变量k,令k=1;
(3)递归计算k条最短s-t路径:依次遍历第k条最短路径上各结点的所有为sidetrack edge的入边得到候选路径,并加入集合C,sidetrack edge表示不在最短路径树上的边;
(4)从集合C中取出一条最短路径作为第k+1条最短路径;
(5)判断K,如果路径条数未达到K值,则进入步骤6,否则跳转到步骤7;
(6)判断集合C,如果该集合非空,则返回步骤3,否则进入步骤8;
(7)算法成功结束,返回搜索结果;
(8)算法结束,未找到足够的K条路径,返回搜索结果;
所述步骤2中利用A*得到第一条最短路径后A*暂停,且后续步骤中再次调用A*进行结点扩展,在A*的运行过程中,对当前节点的所有出边进行迭代,将位于最短路径树上的边标记为tree edge,不在最短路径树上的边标记为sidetrack edge,对于所有被扩展过的顶点标记其状态为close;
所述步骤3中遍历各结点是按照从第k条路径中的最后一个sidetrack edge边的尾结点前向搜索到起始结点,候选路径用sidetrack edge的集合来表示,最后用sidetrack edge表示的路径一一对应地表示为一条常规路径;
所述步骤3中依次遍历第k条最短路径上各结点,其方法包括以下步骤:
(4-1)依次遍历当前第k条路径上从最后一条sidetrack edge到起始结点中的所有结点,记为v;
(4-2)依次遍历结点v的所有的sidetrack edge出边,记为e;
(4-3)判断边e的头结点,如果其状态不是close,则重启A*直到e的头结点的状态被标记为close;
(4-4)将e加入到当前第k条路径的末尾,形成一条新的候选路径并计算其长度,其中候选路径长度为d(t)-d(v)+w(e)+d(tail(e),将该候选路径加入到集合C中;
所述步骤4取出当前集合C中路径长度最短的候选路径作为下一条待处理的路径;
所述步骤5对K的判断,如果已经达到K值,返回K条最短路径;
所述步骤6对C进行判断,集合C如果为空,表示没有候选路径可供选择,算法结束返回不能成功找到K条路径;
k为循环变量,每次循环后k++,表示当前已经得到的路径条数;
步骤1中A*算法包括如下步骤:
(9-1)初始化操作,令集合open为空,将起始结点s设置为close,计算结点s的所有出sidetrack边的f值并入到open集合,其中f值得计算方法为:f(e)=d(tail(e))+w(e)+h(head(e)),函数d(v)表示结点d到初始结点s的最短距离,w(e)表示边e的权值,h(v)表示结点v到目标结点t距离的估计值,tail(e)表示边e的尾结点,head(e)表示边e的头结点;
(9-2)若open集合不为空,进入(9-3),否则跳转到(9-4);
(9-3)从open集合中取出f值最小的一条边,记为e,若head(e)的状态是close,将e标记为sidetrack edge并跳转到步骤2,否则将head(e)设置为close,并计算head(e)的所有出边并将其加入到open集合,若head(e)=目标结点t,跳转到(9-5);
(9-4)返回,找不到结点t;
(9-5)返回,成功找到结点t;
递归计算k条最短s-t路径,其步骤如下:
(10-1)设置当前路径π为第一条最短路径,π为由sidetrack edge表示的路径,P(π)为与π相对于的s-t路径,令路径集合C为空;
(10-2)对于路径P(π)中的所有结点,除去t,对于该结点的所有的出sidetrack edge e,若head(e)的状态不是close,重启A*直到e的头结点的状态被标记为close,将e加入到π中形成新路径π*,计算路径π*长度l(π*)=d(t)-d(head(e))+w(e)+d(tail(e)),将路径π*加入集合C;
(10-3)若已经得到K条最短路径,进入(10-7);
(10-4)若C为空,进入(10-6);
(10-5)从集合C中取出一条最短路径作为当前最短路径π,进入(10-2);
(10-6)返回,没找到k条最短路径;
(10-7)返回,成功找到k条最短路径。
CN201310400749.0A 2013-09-06 2013-09-06 一种应用于gps的快速k最短路径规划方法 Active CN103439726B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310400749.0A CN103439726B (zh) 2013-09-06 2013-09-06 一种应用于gps的快速k最短路径规划方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310400749.0A CN103439726B (zh) 2013-09-06 2013-09-06 一种应用于gps的快速k最短路径规划方法

Publications (2)

Publication Number Publication Date
CN103439726A CN103439726A (zh) 2013-12-11
CN103439726B true CN103439726B (zh) 2015-01-21

Family

ID=49693431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310400749.0A Active CN103439726B (zh) 2013-09-06 2013-09-06 一种应用于gps的快速k最短路径规划方法

Country Status (1)

Country Link
CN (1) CN103439726B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142151A (zh) * 2014-07-31 2014-11-12 上海闻泰电子科技有限公司 一种导航方法
CN106788448B (zh) * 2016-12-20 2020-04-10 中国地质大学(武汉) 一种移动轨迹数据压缩方法及装置
CN107860393A (zh) * 2017-10-31 2018-03-30 刘靖宇 一种多条最短路径的快速寻找方法
CN110617834B (zh) * 2019-10-31 2021-02-26 电子科技大学 一种高斯过程路网下的最短路径规划方法
CN111813883B (zh) * 2020-06-23 2024-05-28 上海阿尔卡特网络支援***有限公司 最短路径查询方法及查询***
CN112464517B (zh) * 2021-01-14 2022-01-18 奥特酷智能科技(南京)有限公司 基于已有道路数据的仿真车寻找最短路径的方法
CN117278466A (zh) * 2023-09-14 2023-12-22 清华大学 针对容错流量工程场景下的候选路径选择方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102944887A (zh) * 2012-11-14 2013-02-27 东南大学 基于油耗与尾气排放的车辆三维导航方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701251B2 (en) * 2001-04-18 2004-03-02 General Motors Corporation Method and system for providing multiple beginning maneuvers for navigation of a vehicle

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102944887A (zh) * 2012-11-14 2013-02-27 东南大学 基于油耗与尾气排放的车辆三维导航方法

Also Published As

Publication number Publication date
CN103439726A (zh) 2013-12-11

Similar Documents

Publication Publication Date Title
CN103439726B (zh) 一种应用于gps的快速k最短路径规划方法
CN106371445B (zh) 一种基于拓扑地图的无人车规划控制方法
CN108444482B (zh) 一种无人机自主寻路避障方法及***
CN107228677B (zh) 偏航识别方法和装置
CN107436148A (zh) 一种基于多地图的机器人导航方法及装置
Li et al. Lane-level map-matching with integrity on high-definition maps
CN107727098A (zh) 一种依次巡查多个目标位置的无人水面艇路径规划方法
JP6090226B2 (ja) 経路生成装置および経路生成方法
CN103149576A (zh) 一种浮动车数据的地图匹配方法
CN110543190B (zh) 智能目标搜索中无人设备的路径规划方法
CN111338361A (zh) 低速无人车避障方法、装置、设备及介质
WO2009092327A1 (zh) 一种地图寻路方法及***
CN110515094A (zh) 基于改进rrt*的机器人点云地图路径规划方法及***
CN113449910B (zh) 一种基于顺序存储二叉树的航线自动生成方法
CN107917716B (zh) 固定线路导航方法、装置、终端及计算机可读存储介质
CN111337047B (zh) 基于多任务点约束的非结构化道路宏观路径规划方法
CN104034337B (zh) 一种浮动车地理位置点的地图匹配方法及装置
CN108489501A (zh) 一种基于智能绕过障碍的快速路径搜索算法
CN105869512A (zh) 多信息的混杂度量地图建图方法和装置
CN107449426B (zh) 导航逻辑方法及其室内ar导航***
CN106156245A (zh) 一种电子地图中的线要素合并方法及装置
CN110530382A (zh) 行程信息获取方法、装置和设备
Zhang et al. Uncertainty reduction via heuristic search planning on hybrid metric/topological map
CN109307513B (zh) 一种基于行车记录的实时道路匹配方法及***
CN111506078B (zh) 一种机器人导航方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant