1 / 82
文档名称:

《数据结构》最短路径关键路径及其应用.ppt

格式:ppt   页数:82
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《数据结构》最短路径关键路径及其应用.ppt

上传人:钻石文档库 2013/7/11 文件大小:0 KB

下载得到文件列表

《数据结构》最短路径关键路径及其应用.ppt

文档介绍

文档介绍:13 十一月 2017
第1页
最短路径、关键路径及其应用
所谓最短路径问题是指:如果从图中某一顶点(称为源点)出发到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边的权值总和达到最小。
最短路径问题
求从某个源点到其余各点的最短路径
13 十一月 2017
第3页
每一对顶点之间的最短路径
13 十一月 2017
第4页
求从源点到其余各点的最短路径的算法的基本思想:
依最短路径的长度递增的次序求得各条路径
源点
v1

其中,从源点到顶点v的最短路径是所有路径中长度最短者。
v2
给定带权有向图G和源点v, 求从v到G中其余各顶点的最短路径。
V5
V0
V2
V4
V1
V3
100
30
10
60
10
20
50
5
V0
V2
V4
V3
V5
V0
始点终点 D[i] 最短路径
V1
V2
V3
V4 V5

10

30
100

10

30
100

10
60
30
100

10
60
30
100

10
50
30
100
(V0, V2)
(V0, V4)
(V0, V5)
(V0, V2)
(V0, V4)
(V0, V5)
(V0, V2)
(V0, V2, V3)
(V0, V4)
(V0, V5)
(V0, V2)
(V0, V2, V3)
(V0, V4)
(V0, V5)
(V0, V2)
(V0, V4, V3)
(V0, V4)
(V0, V5)

10
50
30
90
(V0, V2)
(V0, V4, V3)
(V0, V4)
(V0, V4, V5)

10
50
30
90
(V0, V2)
(V0, V4, V3)
(V0, V4)
(V0, V4, V5)

10
50
30
60
(V0, V2)
(V0, V4, V3)
(V0, V4)
(V0, V4, V3, V5)

10
50
30
60
(V0, V2)
(V0, V4, V3)
(V0, V4)
(V0, V4, V3, V5)
13 十一月 2017
第6页
在这条路径上,必定只含一条弧,并且这条弧的权值最小。
下一条路径长度次短的最短路径的特点:
路径长度最短的最短路径的特点:
它只可能有两种情况:或者是直接从源点到该点(只含一条弧); 或者是从源点经过顶点v1,再到达该顶点(由两条弧组成)。
13 十一月 2017
第7页
其余最短路径的特点:
再下一条路径长度次短的最短路径的特点:
它可能有三种情况:或者是直接从源点到该点(只含一条弧); 或者是从源点经过顶点v1,再到达该顶点(由两条弧组成);或者是从源点经过顶点v2,再到达该顶点。
它或者是直接从源点到该点(只含一条弧); 或者是从源点经过已求得最短路径的顶点,再到达该顶点。
如何在计算机中求得最短路径?
13 十一月 2017
第9页
求最短路径的迪杰斯特拉算法:
一般情况下,
Dist[k] = <源点到顶点 k 的弧上的权值>
或者= <源点到其它顶点的路径长度>
+ <其它顶点到顶点 k 的弧上的权值>。
设置辅助数组Dist,其中每个分量Dist[k] 表示当前所求得的从源点到其余各顶点 k 的最短路径。
Dijkstra提出了一个按路径“长度”递增的次序,逐步得到由给定源点到图的其余各点间的最短路径的算法:
假设我们以邻接矩阵cost表示所研究的有向网。
迪杰斯特拉算法需要一个顶点集合,初始时集合内只有一个源点V0 ,以后陆续将已求得最短路径的顶点加入到集合中,到全部顶点都进入集合了,过程就结束了。集合可用一维数组来表示,设此数组为S,凡在集合S以外的顶点,其相应的数组元素S[i] 为 0 ,否则为 1 。