基于数字路网地图与深度优先遍历的导航方法与装置的制造方法_2

文档序号:9784541阅读:来源:国知局
[0062] 5、得到深度优先遍历顺序为:A,C,B,G,F,D,E。
[0063] 结合图3所示,整个图的深度优先遍历的路径遍历可以使用下述过程来描述:使用 邻接矩阵表示无向图,如果两个顶点之间有边,对应的邻接矩阵相应位置的值为1,否则为 〇。设置有一个变量partialPath存储当前这一层的已经遍历的点构成的路径。当 partialPath的最后一个点就是终点时得到一条可行路径;返回。否则,找到partialPath中 最后一个点的可达节点,找打这些节点中不属于partialPath路径的点。从这些点的第一个 点开始加入partialPath后得到新的partialPath,递归调用遍历算法。
[0064] 结合图3所示,进一步说明深度优先遍历的路径遍历的一个示例性实现。
[0065] 如图3所示,图的邻接矩阵:Graph,如下:

L〇〇67」假设我们要找出结点3到结点6的所有路径,那么,我们就设结点4为起点,结点7为 终点。我们需要的存储结构有:一个保存路径的栈、一个保存已标记结点的数组,那么找到 结点3到结点6的所有路径步骤如下:
[0068] function possiablePaths = f indPath(Graph, [4] ,7,0)
[0069] 1.找到当前路径的最后一个点4。
[0070] 2 ·找到从4出发的所有可达点[2,8]
[0071 ] 3.判断若4是终点,则得到一条路径,返回。否则
[0072] 4.从[2,8]中的第一个点开始,2不是终点,且2不在当前路径中。把2加入到当前路 径,得[4,2]。4到2的权重=1。
[0073] 5.递归调用打11(^&让(6瓜口11,[4,2], 7,1)〇
[0074] 6.当前路径的最后一个点是2,找到从2出发的所有可达点[4,5,1]
[0075] 7.2不是终点,从[4,5,1]中找到第一个开始点4,4不是终点,但是在当前路径中, 剔除4.
[0076] 8.第二个点5,5不是终点,也不在当前路径,将5加入当前路径,得到[4,2,5],2到5 的权重=1
[0077] 9.递归调用打11(^&让(6瓜口11,[4,2,5],7,2)·
[0078] 10.当前路径的最后一个点是5,找到从5出发的所有可达点[2,8]
[0079] 11.5不是终点,从[2,8]中找到第一个点2,2不是终点,但2在当前路径中,剔除2.
[0080] 12.第二个点8,8不是终点,也不在当前路径中,将8加入当前路径,得到[4,2,5, 8],5到8的权重=1
[0081 ] 13.递归调用 findPath(Graph,[4,2,5,8],7,3)
[0082] 14.当前路径最后一个点是8,找到从8出发的所有可达点[5,4]
[0083] 15.8不是终点,从[5,4]中找到第一个点5,5不是终点,但是5在当前路径中,剔除5
[0084] 16.第二点4,4不是终点,但是4在当前路径中,剔除4.没有其余点了。该次 findPath(Graph, [4,2,5,8],7,3)结束,返回上一层调用。
[0085] 17.上一层中除了8没有别的点了,上一层的findPath(Graph,[4,2,5],7,2)结束, 返回上一层调用。
[0086] 18.上一层中还有第三个点1,1不在当前路径[4,2]中,且1不是终点。2到1的权重 =1
[0087] I9 ·递归调用 findPath(Graph,[4,2,1],7,2)
[0088] 20.当前路径的最后一个点是1,找到1出发的所有可达点[2,3]
[0089] 21.1不是终点,从[2,3]中选第一个点2,2不是终点,但2在当前路径中,剔除2
[0090] 22.第二个点3,3不是终点,也不在当前路径中。1到3的权重=1
[0091] 23 ·递归调用 findPath(Graph,[4,2,1,3],7,3)
[0092] 24.当前路径的最后一个点是3,找到3出发的所有可达点[1,6,7 ]
[0093] 25.3不是终点,从[1,6,7]中取第一个点1,1不是终点,但1在当前路径。剔除
[0094] 26.取第二个点6,6不是终点,6不在当前路径,3到6的权重=1
[0095] 27 ·递归调用 findPath(Graph,[4,2,1,3,6],7,4)
[0096] 28.当前路径最后一个点是6,找到6的所有可达点[3,7]
[0097] 29.6不是终点,从[3,7]中选第一个点3,3不是终点,但3在当前路径中,剔除
[0098] 30.第二点7,7是终点,得到新的路径。从6到7的权重=1.新路径为4,2,1,3,6,7; 权重=5.
[0099] 31.没有其余可达点,该层递归结束,返回上一层
[0100] 32.上一层还有一个点7,7是终点,找到新路径,从3到7的权重=1.新路径为4,2, 1,3,7;权重=4.
[0101] 33.没有其余的可达点,该层递归结束,返回上一层
[0102] 34.上一层没有其余可达点,该层递归结束,返回上一层
[0103] 35.上一层没有其余可达点,该层递归结束,返回上一层
[0104] 36.该层的当前路径是[4],还有一个可达点8,把8加入到当前路径,4到8的权重= 1
[0105] 37 ·递归调用findPath(Graph,[4,8],7,1)
[0106] 38.重复6到35的过程得到2条新的路径:
[0107] 4,8,5,2,1,3,7;权重=6
[0108] 4,8,5,2,1,3,6,7;权重=7
[0109]由此,我们可以得到遍历路径的结果,如下表所示:
[0110]
[0111] 根据本公开,还提出一种基于数字路网地图与深度优先遍历的导航装置,包括:
[0112] 用于构建数字路网地图的模块;
[0113] 用于基于前述数字路网地图,采用深度优先遍历来规划出发地到目的地的导航路 径的t吴块。
[0114] 应当理解,本实施例所提出的基于数字路网地图与深度优先遍历的导航装置中的 各个模块,其功能、作用以及效果已经在以上基于数字路网地图与深度优先遍历的导航方 法的描述中进行了说明,其实现方式并且在前述关于导航方法的实施例中做了示例性说 明,在此不再赘述。
[0115] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技 术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因 此,本发明的保护范围当视权利要求书所界定者为准。
【主权项】
1. 一种基于数字路网地图与深度优先遍历的导航方法,其特征在于,包括以下步骤: 步骤1、构建数字路网地图; 步骤2、基于前述数字路网地图,采用深度优先遍历来规划出发地到目的地的导航路 径。2. 根据权利要求1所述的基于数字路网地图与深度优先遍历的导航方法,其特征在于, 前述步骤1的具体实现包括: 以地图中的每个路口作为顶点,以每个路段作为边,构建一个有向图,在该有向图中, 对于每一对顶点^和^,都存在一条从^到^的路径和一条从的路径,并且,对于给定 的任意两个顶点,存在2点之间的一条简单路径,该简单路径是指路径上经过的各个顶点均 不互相重复; 以前述有向图中的所有路段ID、路段的上游路口、路段的下游路口信息来存储该图,其 中,上游路口和下游路口分别代表了图的顶点,路段则是图的边。3. 根据权利要求1所述的基于数字路网地图与深度优先遍历的导航方法,其特征在于, 前述步骤2的实现包括: 对于给定的出发地,确定与其最邻近的顶点v,则从图的顶点v出发,访问此顶点,然后 依次从v的未被访问的邻接点出发深度优先遍历图,直到所有与v有通路的顶点都被访问 到; 若此时图中还有未被访问的顶点,则选择该未被访问的顶点为起点,重复上述步骤,直 到图中所有的顶点均被访问到; 找到所有从顶点v出发,到达目的地d的所有路径。4. 根据权利要求3所述的基于数字路网地图与深度优先遍历的导航方法,其特征在于, 前述步骤2中深度优先遍历图的过程包括: 设X是当前被访问顶点,在对X做过访问标记后,选择一条从X出发的未检测过的边(X, y):若发现顶点y已访问过,则重新选择另一条从X出发的未检测过的边,否则沿边(x,y)到 达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发 的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点X,并且再选择一条从X 出发的未检测过的边; 上述过程直至从X出发的所有边都已检测过为止,此时,若X不是出发点,则回溯到在X 之前被访问过的顶点;否则图中所有和出发点有路径相通的顶点即从出发点可达的所有顶 点都已被访问过,若图是连通图,则遍历过程结束,否则继续选择一个尚未被访问的顶点作 为新源点,进行新的搜索过程。5. -种基于数字路网地图与深度优先遍历的导航装置,其特征在于,包括: 用于构建数字路网地图的第一模块; 用于基于前述数字路网地图,采用深度优先遍历来规划出发地到目的地的导航路径的 第二模块。6. 根据权利要求5所述的基于数字路网地图与深度优先遍历的导航装置,其特征在于, 所述用于构建数字路网地图的第一模块被设置成按照下述方式构建数字路网地图: 以地图中的每个路口作为顶点,以每个路段作为边,构建一个有向图,在该有向图中, 对于每一对顶点vdPw,都存在一条从^到^的路径和一条从的路径,并且,对于给定 的任意两个顶点,存在2点之间的一条简单路径,该简单路径是指路径上经过的各个顶点均 不互相重复; 以前述有向图中的所有路段ID、路段的上游路口、路段的下游路口信息来存储该图,其 中,上游路口和下游路口分别代表了图的顶点,路段则是图的边。7.根据权利要求5所述的基于数字路网地图与深度优先遍历的导航装置,其特征在于, 所述第二模块被设置成按照下述方式规划出发地到目的地的导航路径: 对于给定的出发地,确定与其最邻近的顶点v,则从图的顶点v出发,访问此顶点,然后 依次从v的未被访问的邻接点出发深度优先遍历图,直到所有与v有通路的顶点都被访问 到; 若此时图中还有未被访问的顶点,则选择该未被访问的顶点为起点,重复上述步骤,直 到图中所有的顶点均被访问到; 找到所有从顶点v出发,到达目的地d的所有路径。
【专利摘要】本发明提供一种基于数字路网地图与深度优先遍历的导航方法,包括以下步骤:步骤1、构建数字路网地图;步骤2、基于前述数字路网地图,采用深度优先遍历来规划出发地到目的地的导航路径。本发明还涉及一种基于数字路网地图与深度优先遍历的导航装置。利用本发明的方案,可以实时、精确地进行导航路径的规划。
【IPC分类】G01C21/34
【公开号】CN105547308
【申请号】CN201510738173
【发明人】张晓飞, 刘晓华, 刘四奎, 汤夕根
【申请人】中兴软创科技股份有限公司
【公开日】2016年5月4日
【申请日】2015年11月3日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1