一种基于Dijkstra算法的路径确定方法与流程

文档序号:13658064阅读:376来源:国知局

本发明涉及一种路径确定方法。



背景技术:

随着3g时代的到来,无线通讯迅猛发展,以及硬件技术的更新,越来越多的高性能智能手机和掌上电脑、平板电脑等移动终端被人们所接纳。与此同时,人类也步入了信息化时代,并且人员的流动性也越来越频繁,这些都使每个人对空间服务的需求越来越大。人们更加关心“当前我在什么位置?”、“附近有没有我想要的设施?”、“如何最快的到达目的地”等问题。在这种社会发展的需求下,产生了地理信息系统(geographicinformationsystem,即gis)。凭借着其对地理信息数据分析的强大能力,被迅速的应用到基于位置服务平台的建设中,为人们的出行提供了重要的支持。

与此同时,计算机软件技术的不断进步和硬件运算速度的提升,为基于gis的应用普及提供了可能。基于gis的信息化管理系统主要是以处理地理信息数据为主,它的后台需要强大的数据库做支撑,因为地理信息数据是海量的,必须要有强大的软件和硬件。常见的gis应用就是电子地图,它给用户提供了信息查询的功能,用户可以输入参数信息来查找相关的地图数据和参数数据,并以可视化的形式给用户以反馈。它还允许用户直接操作地图数据,除此之外还能对图数据进行分析和业务处理等。但是传统的gis应用不能满足户外用户的使用,因为传统的gis应用一般都是基于c/s架构的,只能在pc或者工作站中使用。因此,如何让gis应用为户外移动用户提供服务成为我们要解决的问题。鉴于此,基于移动终端的地理信息管理系统是当前gis领域的一个重要研究方向,其主要研究内容包括:如何利用移动终端的无线上网功能(包括gprs、3g以及wifi等),随时随地的连接到网络,与地理信息服务提供商进行数据通讯,并在移动终端上得到结果。因此,以gis为理论基础,使用gps定位,并通过无线网络进行通信的一体化研究,也就是移动gis产生了。它解决了如何利用移动终端获得实时的地理信息并处理空间信息的难题在移动gis中,集中使用了计算机技术、无线通信技术和卫星导航定位技术(gps),通过移动终端可以很方便的实时采集和处理数据,使gis的应用范围得到增加。移动gis系统是融入多种高端技术的综合性数字化系统,它可以随时随地的为移动用户提供地理信息服务,包括信息查询和决策参考等,满足了人们对高流动性的需求。

而移动gis应用研究的一个重要课题就是最优路径查找问题,它是提供位置服务的基础,该问题相对于数据结构中的最优路径问题更具复杂性。因为在移动gis中,各类道路、路口以及当时的时间等因素都可能成为影响最优路径计算的原因。最优路径算法有很多,经典的最优路径算法是dijkstra算法,它是由荷兰计算机科学家艾兹赫尔·戴克斯特拉(edsgerwybedijkstra)发明的。该算法计算图中一个顶点到其他所有顶点的最短路径,它的主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。目前,大多数移动gis应用都采用dijkstra算法作为其解决最优路径问题的理论基础。但是,如果直接使用传统的dijkstra算法,会导致网络拓扑图比较复杂,顶点和边数也会很多,而且还会额外计算不需要计算的路径。这样就造成计算量大、时间开销大等问题。又因为移动gis应用的终端计算能力目前还是偏低,这些因素都影响了算法的执行速度,也就降低了算法的效率。而且dijkstra算法存在权值非负无向图、无权无向图、无法形成实际最优路径问题,同时dijkstra算法也没有考虑道路畅通度、红绿灯密度、实时路况信息等其他影响因素,不能有效的规划出实际最优的路径。



技术实现要素:

本发明为了现有的dijkstra算法存在权值非负无向图、无权无向图、无法形成实际最优路径问题。进而提出了一种基于dijkstra算法的路径确定方法。

一种基于dijkstra算法的路径确定方法,包括:

设vi、vj分别表示不同路口,i=1,2,…,n;j=1,2,…,n;n表示路口总数;用<vi,vj>表示两个路口之间的路径;<vi,vj>的权值d<vi,vj>定义为:

其中:di表示选择路径的影响的因素;其中d1为vi,vj两个路口间的距离,d2为从vi行驶到vj的交通限制,d3为<vi,vj>的道路拥堵概率;pi为各因素影响车辆行驶时间的比重;

将路口作为dijkstra算法中的顶点,路口vi、vj即为顶点vi、vj;

定义如下一组符号:

s为起点;t为终点;s为已求出最短路径的顶点的集合;t=v-s为尚未确定最短路径的顶点集合;v为所有顶点的集合;

利用dijkstra算法确定最佳路径。

进一步地,所述利用dijkstra算法确定最佳路径的具体过程如下:

(1)若存在<vi,vj>,d<vi,vj>为<vi,vj>弧上的权值;若不存在<vi,vj>,d<vi,vj>为∞;

(2)初始化s={s}、t={所有顶点中除顶点s以外的顶点};

(3)从t中选取一个权值为最小的顶点w,并且w不在s中;然后将w加入s;

(4)对t中顶点的权值进行修改:

若s中加进w作中间顶点,从vi到vj的权值比s中不加入w的权值要短,则将w作中间顶点,并基于w修改除去w之后的t中顶点的权值;

(5)重复步骤(3)和步骤(4),直到s中包含终点t为止;此时s中的顶点顺序即为确定的路径。

本发明具有以下有益效果:

本发明针对解决了dijkstra算法中权值非负无向图、无权无向图、无法形成实际最优路径问题,采用附加卡尔曼滤波模型权值和距离的加权平均值算法,能够获得一条实际最优路径;而且本发明考虑了实际路径确定过程中其他因素的影响,能够确定一条有效的出行路径;同时本发明实现算法简单,一定程度上提高了运行效率。

附图说明

图1为确定最佳路径的流程图。

具体实施方式

具体实施方式一:

一种基于dijkstra算法的路径确定方法,包括:

传统的dijkstra算法中,<vi,vj>弧上的权值d<vi,vj>表示两个节点间的距离。本文提出的改进算法除了两节点间的距离,还要考虑交通流量因素对车辆行驶的影响,设vi、vj分别表示不同路口,i=1,2,…,n;j=1,2,…,n;n表示路口总数;用<vi,vj>表示两个路口之间的路径;<vi,vj>的权值d<vi,vj>定义为:

其中:di表示选择路径的影响的因素;其中d1为vi,vj两个路口间的距离,d2为从vi行驶到vj的交通限制,d3为<vi,vj>的道路拥堵概率,可以只选择这三个影响因素,也可以再此基础上增加选择路径的影响的因素;pi为各因素影响车辆行驶时间的比重;

将路口作为dijkstra算法中的顶点,路口vi、vj即为顶点vi、vj;

为了叙述方便,定义如下一组符号:

s为起点;t为终点;s为已求出最短路径的顶点的集合;t=v-s为尚未确定最短路径的顶点集合;v为所有顶点的集合;

如图1所示,利用dijkstra算法确定最佳路径,具体过程如下:

(1)若存在<vi,vj>,即从vi能够到达vj,d<vi,vj>为<vi,vj>弧上的权值;若不存在<vi,vj>,即从vi不能到达vj,d<vi,vj>为∞;

(2)初始化s={s}、t={所有顶点中除顶点s以外的顶点};

(3)从t中选取一个权值为最小的顶点w,并且w不在s中;然后将w加入s;

(4)对t中顶点的权值进行修改:

若s中加进w作中间顶点,从vi到vj的权值比s中不加入w的权值要短,则将w作中间顶点,并基于w修改除去w之后的t中顶点的权值;

(5)重复步骤(3)和步骤(4),直到s中包含终点t为止;此时s中的顶点顺序即为确定的路径。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1