当前位置:文档之家› 最短路径问题

最短路径问题

最短路径问题的研究学生姓名:苏振国指导老师:王向东摘要最短路径问题是研究线状分布的地理事物中最常用的方法。

其中迪克斯查1959年提出的标号法在最短路径问题的研究中应用最为广泛,尤其在交通选址方面。

根据迪克斯查标号法的基本思想及应用现状,本文以其在城市消防站选址问题上的应用为例,详细介绍了迪克斯查标号法的应用、原理及其步骤。

展现了最短路径法的突出优点:不仅求出了起点和终点的最短路径及其长度,而且求出了起点到图中其他各点的最短路径及其长度。

关键词最短路径步骤原理应用分类1引言在实际中常提出这样的问题,比如说,在交通网中,问A,B两地是否有道路可通?如果有通路且不止一条的话,那么最短的是哪条?所谓最短,可理解为里程数最少,也可理解为旅差费最省,还可理解为道路的建造成本最低等等。

总之,这类问题都可归结为在一个有向图中求最短路径的问题。

本论文研究的主要目的就是为了详细介绍关于最短路径问题的标号法,及其在实际生活中如何应用。

下面我将展开论述。

2最短路径的现状分析及其研究发展方向2.1现状分析最短路径问题一直是计算机科学、运筹学、地理信息科学等学科的一个研究热点。

国内外大量专家学者对此问题进行了深入研究。

经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。

它们在空间复杂度、时间复杂度、易实现性及应用范围等方面各具特色。

针对串行计算机的最短路径算法,已经几乎到达理论上的时间复杂度极限。

现在的研究热点,一是针对实际网络特征优化运行结构,在统一时间复杂度的基础上尽可能地提高算法的运行效率;二是对网络特征进行限制,如要求网络中的边具有整数权值等,以便采用基数堆等数据结构设计算法的运行结构;三是采用有损算法,如限制范围搜索、限定方向搜索及限制几何层次递归搜索;四是采用拓扑层次编码路径视图,对最短路径进行部分实例化编码存储;五是采用并行算法,为并行计算服务。

2.2研究发展方向2.2.1最短路径算法的实时性目前,静态的最短路径算法已经十分完善。

但是,在实践中,网络特征可能时刻会发生变化,要求最短路径算法必须能够实时地自动更新。

这类问题主要集中在交通网络的实时导航、通勤、调度和计算机互联网的数据传递路由等方面。

在动态最短路径问题中,弧段权值、节点耗费等均为时间t的函数,既可以是连续的,也可以是离散的。

在假定网络路径权值服从FIFO原则的一致性假设前提下,任何静态的LS和LC算法均可扩展为时间依赖的最短路径算法。

2.2.2最短路径算法的并行化随着计算机处理数据量的逐渐增多,传统的串行计算机的负荷也逐渐加重。

运行在服务器端的最短路径算法必须向基于图分解的并行算法的方向发展,以满足大量的实时最短路径查询的需要。

关于最短路径并行算法的讨论有两种类型,一种基于较抽象的并行计算模型,不限制处理器的数目,研究给定问题的计算复杂度在并行计算的情况下能降到什么程度。

如果已经达到下界,再设法减少处理器的数目,或放松对处理器间耦合程度的一些不尽合理或不尽现实的要求;另一类研究则针对实际的并行计算系统,其处理器数是有限的(至少不可能与问题规模相当),研究如何设计或实现某个或某类问题的并行求解。

此类并行算法的设计往往还伴有在实际系统上的计算实例和性能分析。

由于对处理器的数目进行了合理的限制,并行计算系统在实践中更有价值,是最短路径问题算法并行化研究的趋势所在。

3标号法的基本思想及最短路径问题的分类3.1基本思想迪克斯查算法是目前公认的最好的算法。

其基本思想是从起点v0出发,逐步向外发展。

探索过程中,每到一个点,都记录下路径与路程,称为这个点的标号。

故迪克斯查算法也称为标号法。

3.2最短路径问题的分类最短路径问题,通常归属为三类: (1)单源最短路径问题:包括确定起点的最短路径问题和确定终点的最短路径问题。

确定终点与确定起点的最短路径问题相反,该问题是已知终点,求最短路径问题。

在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。

(2)确定起点终点的最短路径问题:即已知起点和终点,求两结点之间的最短路径。

(3)全局最短路径问题:求图中所有的最短路径。

4标号法的使用步骤及实践演练4.1使用步骤求解最短路径问题的常用方法是经典的迪克斯查算法。

迪克斯查算法通常也称为标号法,假设每个网络节点都有一对标号(d j,p j),其中d j,是从起始点s到节点j的最短路径的长度,通常也称为点j的标号值;pj是从起始点s到节点j的最短路径中点的前一点,又称之为先前节点。

求解从起始点s到终点t的最短路径的迪克斯查算法的基本过程如下所述。

第1步:初始化。

起始点设置为d s=0,ps为空;所有其他点d j=∞,p j为空;标记起始点s,记k=s,其他所有点设为未标记的。

第2步:检验未标记点。

检验从所有已标记的点k到其他直接连接的dj未标记的点j的距离,并设置d j=min[d j,dk+l kj],其中,l kj是从点k到点j的直接连接的边的长度。

第3步:选择新标记点。

从所有未标记的结点中,选取d j中最小的一个记为d i,即d i=min [d j,所有未标记的点j]。

点i就被选为最短路径中的一点,并设为已标记的点。

第4步:确定先前点。

从已标记点中找到直接连接到点i的点j*,作为其先前点,设置p i=j*。

第5步:检查标记点i。

检查点i是否为终点t,若是则转第6步;否则,记k=i,转第2步。

第6步:确定最短路径长度和最短路径。

最短路径的长度为终点t的标号值d t;根据终点t的先前点p t逆向追踪可得到s到点t的最短路径。

由此可见,求解最短路径的迪克斯查算法有两大特点,一是其节点搜索是广度优先的;二是选择下一个标记点是以其到出发点s的路径最短为标准的。

4.2实践演练求图1中顶点v0到v5的最短路径。

解设k表示步骤,k=0时,表示运算开始。

(1)令d(v0)=0,其余顶点为v i,令d(v i)=∞,i=1,2,3,4,5。

此时v0标号为0,并t←v0。

(2)k=1,计算d(v1)=min{d(v1),d(v0)+l(v0,v1)}=min{∞,0+1}=1,记为v0v1;d(v2)=min{d(v2),d(v0)+l(v0,v2)}=min{∞,0+4}=4,记为v0v2;d(v3)=min{d(v3),d(v0)+l(v0,v3)}=min{∞,0+∞}=∞;d(v4)=min{d(v4),d(v0)+l(v0,v4)}=min{∞,0+∞}=∞;d(v5)=min{d(v5),d(v0)+l(v0,v5)}=min{∞,0+∞}=∞。

因为d(v1)=1=min{d(v1),d(v2),d(v3),d(v4),d(v5)},所以选顶点v1,对v1作标号1/v0。

v0与v1相邻。

(3)由于v5未标号,将t←v1,回到(2)继续计算。

(2)k=2,计算d(v2)=min{d(v2),d(v1),+l(v1,v2)}=min{4,1+2}=3,记为v1v2;d(v3)=min{d(v3),d(v1),+l(v1,v3)}=min{∞,1+7}=8,记为v1v3;d(v4)=min{d(v4),d(v1),+l(v1,v4)}=min{∞,1+5}=6,记为v1v4;d(v5)=min{d(v5),d(v1),+l(v1,v5)}=min{∞,1+∞}=∞。

因为d(v2)=3=min{d(v2),d(v3),d(v4),d(v5)},所以选项点v2,对v2作标号3/v1。

v1与v2相邻。

(3)由于v5未标号,将t←v2,回到(2)继续计算。

(2)k=3,计算d(v3)=min{d(v3),d(v2),+l(v2,v3)}=min{8,3+∞}=8;d(v4)=min{d(v4),d(v2),+l(v2,v4)}=min{6,3+1}=4,记为v2v4;d(v5)=min{d(v5),d(v2),+l(v2,v5)}=min{∞,3+∞}=∞。

因为d(v4)=4=min{d(v3),d(v4),d(v5)},所以选顶点v4,对v4作标号4/v2。

v2与v4相邻。

(3)由于v5未标号,将t←v4,回到(2)继续计算。

(2)k=4,计算d(v3)=min{d(v3),d(v4),+l(v4,v3)}=min{8,4+3}=7,记为v4v3;d(v5)=min{d(v5),d(v4),+l(v4,v5)}=min{∞,4+6}=10,记为v4v5。

因为d(v3)=7=min{d(v3),d(v5)},所以选顶点v3,对v3作标号7/v4。

v4与v3相邻。

(3)由于v5未标号,将t←v3,回到(2)继续计算。

5最短路径问题在实际生活中的应用5.1消防站选址问题某城市的开发区中要建一个消防站,该开发区的示意图如图1所示,其中v1,v2,...,v10表示开发区中10个消防重点单位,考虑到交通路况,部分单位之间往返的距离不完全相同,分析消防站选址问题。

图1消防重点单位示意图消防站选址应该遵循到达各个点的距离尽可能短的原则为最好,这样才能做到在火灾发生时尽快赶到火灾现场而不延误灭火时机。

在图1中任取一点v i∈V,考虑vi与V中其他顶点间的距离d(v i,v1),d(v i,v2),...,d(v i,v n),把这n个距离中最大数称为顶点vi的最大服务距离,记做e(v i)。

要使消防车到达各个点的距离尽可能的短,应选取最大服务距离最小的点,即e(v i) =min[e(v1), e(v2),...,e(v10)]。

图1的权矩阵为:根据迪克斯查算法计算得出:e(v1) =14, e(v2) =12, e(v3) = 11, e(v4) =8, e(v5) =9, e(v6) =10,e(v7) =10,e(v8) =9, e(v9) =12, e(v10) =13。

其中v4点具有最小的最大服务距离,所以把消防队建在v4处最合理。

结论:在实际工作中,我们可以应用图论中最短路径问题的分析方法,科学合理的解决城市中消防站的选址问题。

6结语最短路径问题北广泛应用于餐饮、供货、医疗、消防、旅游等实际生活当中。

迪克斯查算法是求解最短路径问题,世界上公认的最好方法。

通过对该方法分类、基本原理、步骤等的详细介绍,可以发现此方法不仅计算简便而且能够全面的求出起点到图中其他各点的长度。

为社会的生产实践活动及我们的日常生活带来极大的便利。

最短路径问题的研究不会中断,它必将科学技术的发展与人类生活的实际需要而,不断完善自身缺点。

成为一门日趋成熟的科学。

给人类社会的发展带来深远影响。

参考文献[1]陆峰最短路径算法:分类体系与研究进展中国科学院资源与环境信息系统国家重点实验室测绘学报2001年8月第30卷第3期P269-274[2]姬东马龙图论最短路径问题在消防选址中的应用武警学院学报2009年12月第25卷第12期[3]李水旺1,武舫2,张晶1,朱长青3多源多通道最短路径问题的研究测绘科学技术学报2010年10月第27卷第5期[4]孟祥云最短路径及其求法唐山高等专科学校学报2002年6月第15卷第2期[5]林小玲,何建农,周勇带限制条件的最短路径算法与实现福州大学学报(自然科学版) 2004年12月第32卷增刊。

相关主题