几种常用的最短路径算法

几种常用的最短路径算法

ID:33650463

大小:176.50 KB

页数:6页

时间:2019-02-28

几种常用的最短路径算法_第1页
几种常用的最短路径算法_第2页
几种常用的最短路径算法_第3页
几种常用的最短路径算法_第4页
几种常用的最短路径算法_第5页
资源描述:

《几种常用的最短路径算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、简述几种常用的最短路径算法摘要:随着社会的发展,最短路径问题在现实生活中占据的地位越来越重要。求解这一类问题的方法有很多,包括Floyd算法、Dijkstra算法、Bellman-Ford算法、动态规划算法和智能优化算法。其中较为常用的是Floyd算法、Dijkstra算法和Bellman-Ford算法。本文将简单介绍这三种最短路径算法,通过比较各种方法的优劣使对其有更进一步的认识和学习。关键字:最短路径;最短路径算法;Floyd算法;Dijkstra算法;Bellman-Ford算法随着计算机科学

2、的发展,人们生产生活效率要求的提高,最短路径问题逐渐成为计算机科学、运筹学、地理信息科学等学科的一个研究热点。也正因为最短路径问题在实际生产生活中应用广泛,优化该算法和提高算法的求解效率具有重大的现实意义。1.最短路径概述最短路径问题是指在一个赋权图的两个节点之间找出一条具有最小权的路径,这是图论的描述,也是图论中研究的一个重要问题。现实生活中我们可以看到这些最短路径问题的例子,公交车辆的最优行驶路线和旅游线路的选择等;军事领域中也有应用,作战部队的行军路线等问题就与寻找一个图的最短路径密切相关,因

3、此对最短路径问题的深入研究和广泛应用具有重要意义和实用价值。在线路优化问题中,如果优化指标与路程的相关性较强,而和其他因素相关性较弱时,即以最短路程为准则,则考虑转化为最短路径问题。比如军事行军线路选取时,假如从出发地到目的地之间有多种线路可以选取,危险指数在预测概率相等时,就要考虑最短路径问题。2.最短路径算法概述最短路径算法问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:  确定起点的最短路径问题-即已知起始结点,求最短路径的问题。

4、  确定终点的最短路径问题-与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。  确定起点终点的最短路径问题-即已知起点和终点,求两结点之间的最短路径。  全局最短路径问题-求图中所有的最短路径。3.Floyd算法3.1算法定义Floyd算法是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。Floyd算法的时间复杂度为O(N3)

5、,空间复杂度为O(N2)。3.2算法描述3.2.1算法思想原理Floyd算法是一个经典的动态规划算法。用通俗的语言来描述的话,首先我们的目标是寻找从点i到点j的最短路径。从动态规划的角度看问题,我们需要为这个目标重新做一个诠释。从任意节点i到任意节点j的最短路径不外乎2种可能,1是直接从i到j,2是从i经过若干个节点k到j。所以,我们假设Dis(i,j)为节点u到节点v的最短路径的距离,对于每一个节点k,我们检查Dis(i,k)+Dis(k,j)

6、j的路径比i直接到j的路径短,我们便设置Dis(i,j)=Dis(i,k)+Dis(k,j),这样一来,当我们遍历完所有节点k,Dis(i,j)中记录的便是i到j的最短路径的距离。3.2.2算法过程描述a.从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。  b.对于每一对顶点u和v,看看是否存在一个顶点w使得从u到w再到v比己知的路径更短。如果是更新它。3.3算法适用范围⑴APSP(All Pairs Shortest Paths); ⑵稠密图效果最佳; ⑶

7、边权可正可负。3.4算法实例图1无向图根据图1,用Floyd算法找出任意两点的最短路径步骤如下表1:表1Floyd算法步骤流程distk[1]distk[2]distk[3]MINA->B1371A->C135*1A->D3353B->C2262B->D*44*4C->D24624.Dijkstra算法4.1算法定义Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有

8、代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。注意该算法要求图中不存在负权边。问题描述:在无向图G=(V,E)中,假设每条边E[i]的长度为w[i],找到由顶点V0到其余各点的最短路径。4.2算法描述4.2.1算法思想原理设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径,就将加入到集合S中,直到全部顶点都加入到S中,算

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。