最佳路径问题.doc

上传人:cl****1 文档编号:563206942 上传时间:2023-10-30 格式:DOC 页数:4 大小:125.01KB
返回 下载 相关 举报
最佳路径问题.doc_第1页
第1页 / 共4页
最佳路径问题.doc_第2页
第2页 / 共4页
最佳路径问题.doc_第3页
第3页 / 共4页
最佳路径问题.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《最佳路径问题.doc》由会员分享,可在线阅读,更多相关《最佳路径问题.doc(4页珍藏版)》请在金锄头文库上搜索。

1、路径分析是GIS中最基本的功能,其核心是对最佳路径的求解。从网络模型的角度看,最佳路径的求解是在指定网络的两个结点之间找一条阻碍强度最小的路径。另一种路径分析功能是求解最佳游历方案,又分为弧段最佳游历方案求解和结点最佳游历方案求解两种。o 最佳路径分析也称最优路径分析,以最短路径分析为主。这里“最佳”包含很多含义,不仅指一般地理意义上的距离最短,还可以是成本最少、耗费时间最短、资源流量(容量)最大、线路利用率最高等标准。很多网络相关问题,如最可靠路径问题、最大容量路径问题、易达性评价问题和各种路径分配问题均可纳入最佳路径问题的范畴之中。无论判断标准和实际问题中的约束条件如何变化,其核心实现方法

2、都是最短路径算法。 o 最短路径问题从算法研究的角度考虑最短路径问题通常可归纳为两大类:一类是所有点对之间的最短路径,另一类是单源点间的最短路径问题。网络分析:最佳路径问题 o “最佳路径”中的“佳”包含很多含义,它不仅可以指一般地理意义上的距离最短,还可以是时间最短、费用最少、线路利用率最高等标准。但是无论引申为何种判断标准,其核心实现方法都是最短路径算法。o 最短路径的数据基础是网络,组成网络的每一条弧段都有一个相应的权值,用来表示此弧段所连接的两结点间阻抗值。在数学模型中,这些权值可以为正值,也可以为负值。由于在GIS中一般的最短路径问题都不涉及负回路的情况,因此以下所有的讨论中假定弧段

3、的权值都为非负值。o 若一条弧段(vi,vj)的权值表示结点vi和vj间的长度,那么道路ue1,e2,ek的长度即为u上所有边的长度之和。所谓最短路径问题就是在vi和vj之间的所有路径中,寻求长度最小的路径,这样的路径称为从vi到vj的最短路径。o 最短路径问题的算法一般分为两大类:一类是所有点对间的最短路径,另一类则是单源点间的最短路径问题,其各自的求解方法是不同的。 5.3.2 最佳路径分析最佳路径分析也称最优路径分析,以最短路径分析为主,一直是计算机科学、运筹学、交通工程学、地理信息科学等学科的研究热点。这里“最佳”包含很多含义,不仅指一般地理意义上的距离最短,还可以是成本最少、耗费时间

4、最短、资源流量(容量)最大、线路利用率最高等标准。很多网络相关问题,如最可靠路径问题、最大容量路径问题、易达性评价问题和各种路径分配问题均可纳入最佳路径问题的范畴之中。无论判断标准和实际问题中的约束条件如何变化,其核心实现方法都是最短路径算法。地理网络因地理元素属性的不同而表现为同形不同性的网络形式,为了进行网络路径分析,需要将网络转换成加权有向图,即给网络中的弧段赋以权值,权值要根据约束条件而确定。若一条弧段的权表示起始结点和终止结点之间的长度,那么任意两结点间的一条路径的长度即为这条路上所有边的长度之和。最短路径问题就是在两结点之间的所有路径中,寻求长度最小的路径,这样的路径称为两结点间的

5、最短路径。最短路径问题的表达是比较简单的,从算法研究的角度考虑最短路径问题通常可归纳为两大类:一类是所有点对之间的最短路径,另一类是单源点间的最短路径问题。1. 最短路径算法(1)Dijkstra算法基本思想戴克斯徒拉(Dijkstra)算法是E.W.Dijkstra于1959年提出的一种按路径长度递增的次序产生最短路径的算法,此算法被认为是解决单源点间最短路径问题比较经典而且有效的算法。其基本思路是:假设每个点都有一对标号(dj, pj),其中dj是从起源点s到点j的最短路径的长度(从顶点到其本身的最短路径是零路(没有弧的路),其长度等于零);pj则是从s到j的最短路径中j点的前一点。求解从

6、起源点s到点j的最短路径算法也称标号法或染色法,其基本过程如下:V2V0V1100V3V5V46020301010505图5.37 带权的有向图 初始化。起源点设置为ds = 0,ps为空,并标记起源点s,记k = s,其他所有点设为未标记点。 检验从所有已标记的点k到其直接连接的未标记的点j的距离,并设置dj = mindj, dk+lkj其中,lkj为从点k到j的直接连接距离。 选取下一个点。从所有未标记的结点中,选取dj 中最小的一个idi = mindj, 所有未标记的点j点i就被选为最短路径中的一点,并设为已标记的点。 找到点i的前一点。从已标记的点中找到直接连接到点i的点j*,作为

7、前一点,记为i = j* 标记点i。如果所有点已标记,则算法完全推出,否则,记k = i,重复步骤。图5.37为某一带权有向图,若对其施行Dijkstra算法,则所得从V0到其余各顶点的最短路径以及运算过程中距离的变化情况如表5.5所示。表5.5 Dijkstra算法示例及计算过程终点从源点V0到各终点的距离值和最短路径的求解过程i = 1i = 2i = 3i = 4i = 5V1V210(V0, V2)V360(V0, V2, V 3)50(V0, V4, V3)V430(V 0, V 4)30(V0, V 4)V5100(V0, V5)100(V0, V5)90(V0, V4, V5)6

8、0(V0, V4, V3, V5)VjV2V4V3V5SV0, V2V0, V2, V3V0, V2, V3, V4V0, V2, V3, V4, V5通过上述例子可知,在求解从起源点到某一特定终点的最短路径过程中还可得到起源点到其他各点的最短路径,因此,这一计算过程的时间复杂度是O(n2),其中n为网络中的结点数。(2)弗洛伊德算法弗洛伊德(Floyd)算法能够求得每一对顶点之间的最短路径,其基本思想是:假设求从顶点Vi到Vj的最短路径。若从Vi到Vj有弧,则从Vi到Vj存在一条长度为dij的路径,该路径不一定是最短路径,需要进行n次试探。首先判别弧(Vi, V1)和弧(V1, Vj)是否存

9、在(即考虑路径(Vi, V1, Vj)是否存在)。如果存在,则比较(Vi, Vj)和(Vi, V1, Vj)的路径长度,较短者为从Vi到Vj的中间顶点的序号不大于1的最短路径。假如在路径上再增加一个顶点V2,若路径(Vi, , V2)和路径(V2 , , Vj)分别是当前找到的中间顶点的序号不大于1的最短路径,那么后来的路径(Vi, , V2 , , Vj)就有可能是从Vi到Vj的中间顶点的序号不大于2的最短路径。将它和已经得到的从Vi到Vj的中间顶点的序号不大于 1的最短路径相比较,从中选出中间顶点的序号不大于 2的最短路径之后,再增加一个顶点 V3,继续进行试探。依次类推,在经过n次比较之

10、后,最后求得的必是从Vi到Vj的最短路径。按此方法,可同时求得各对顶点间的最短路径。算法共需3层循环,总的时间复杂度是O(n3)。(3)矩阵算法该算法是利用矩阵来求出图的最短距离矩阵。假设A = (ai, j)nn是带权无向图的邻接矩阵,则A2 = (ai, j2)nn,其中ai, j = minai1+a1j, ai2+a2 j, , aik+akj,这里ai1+a1j表示从结点i经过中间点1到结点j的路径长度,ai2+a2j表示从结点i经过中间点2到结点j的路径长度,其余各项的意义与此相同,都表示从结点i经过一个中间点到结点j的路径长度,ai,j取它们中的最小值,其意义就是从结点i最多经过

11、一个中间点到结点j的所有路径中长度最短的那条路径。同理可知,Ak = (ai,jk)nn中ai,jk表示从结点i最多经过(k-1)个中间点到结点j的所有路径中长度最短的那条路径。图的阶数是n,从i到j的简单路径最多经过n-2个中间结点,故只需要求到An-2即可,然后比较A, A2, A3 , , An-2,取其中最小的一项就是从结点i到结点j的所有路径中长度最小的那条路径。算法步骤可表示为 已知图的邻接矩阵A; 求出A, A2, A3 , , An-2; D = AA2A3 An-2= (di,j)nn。最终得到的D为图的最短距离矩阵。求出矩阵中的每个值需要进行n次计算,求出矩阵中的所有元素值

12、需要进行n2次计算,最后又需要进行n次比较,所以该算法的时间复杂度是O(n4)。以上三种算法各有优缺点,下面仅就适用范围、功能、时间复杂度、求解次短路径能力等方面进行比较,以便在使用中选择更利于问题解决的方法。Dijkstra算法、弗洛伊德算法都可适用于无向图或有向图,而矩阵算法本身仅适用于无向图,但经改进后也可用于有向图;Dijkstra算法每次只能求出一个起源点到其余各点的路径,弗洛伊德算法和矩阵算法都能够求得所有顶点间的最短路径;这三种算法的时间复杂度依次为O(n2)、O(n3)、O(n4);另外,矩阵算法还能求出次短路径,其他两种算法则不能。2. 最短路径算法的优化最佳路径分析在汽车导

13、航系统和各种应急系统(如110报警、119火警以及医疗救护系统等)中应用非常广泛,系统应用需求决定了最佳路径分析应是高效率的,比如一般要求计算出到出事地点的最佳路径的时间必须是在13s内,且在行车过程中需要实时计算出车辆前方的行驶路线。但前面介绍的三种算法在时间复杂度上都不尽如人意,很难满足不断发展的各种系统的要求,从而促使人们考虑从各个角度解决其实现的效率问题。针对不同的网络特征、应用需求及具体的软硬件环境,各种最短路径算法不断涌现,在空间复杂度、时间复杂度、易实现性及应用范围等方面各具特色。例如,以提出最大相关边数概念为特点的相关边算法,用点边相关矩阵描述网络结构,既节约了存储空间,又提高

14、勒运算速度;类似地还有邻接结点算法以及引入估价函数或者采用二叉堆结构来实现的改进Dijkstra算法,等等。在此不一一列举,如有兴趣可查阅相关文献。3. 路径分析的实现实现路径分析最关键的问题有两个:一是选用何种数据结构才能够满足庞大网络数据占据较小存储空间的要求,一是采用哪一类搜索算法来求得最优化的解,而且在实现时间、应用普遍性、空间搜索复杂程度上满足用户的要求,下面就以路径分析应用最广泛的交通道路网络为例,提供一个解决实际问题的基本模式。假定某地区交通管理部门接到举报在该区域内某一地点发生交通事故,需要有关人员立刻赶到现场,选择一条路途最短的行进路线到达指定地点。在解决问题之前要了解交通网

15、络数据的基本特征,如数据量的大小、数据的存储格式、数据的来源以及时间等,交通道路网不仅包含网络本身的几何拓扑特征,还包含了大量的与应用有关的数据(如单行道、禁行道等)以及反映地理位置特征的经纬度数据,在应用最短路径算法进行交通网络分析时要考虑到交通网络本身的特点。首先,对于一定区域范围内庞大的交通网络要考虑它的存储结构,既要有利于网络分析算法的实现,又能够在节约存储空间的前提下根据需要扩充数据,对交通网络进行综合分析。网络的存储方法很多如邻接矩阵、关联矩阵、邻接表等,根据存储结构的设计可以将传统的方法进行适当改进。然后是网络搜索,主要依据求解单源点间最短路径的戴克斯徒拉算法思想,同样也可以对其进行优化改进以提高效率。根据实际应用的需要,首先将网络边的权值设为两结点间的距离,并定义沿着起点到终点的方向为空间有效方向,相反的方向为无效方向;然后赋给网络边、结点相应的字段值,并定义站点、拐点、桥梁等特殊地物的属性,最后通过具体的程序设计来实现搜索过程。就本例而言,如果在存储结构、算法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号