单源最短路径.docVIP

  • 5
  • 0
  • 约3.88千字
  • 约 10页
  • 2023-07-31 发布于浙江
  • 举报
单源最短路径 2012-2013第2学期《算法设计与分析》实验报告 单源最短路径 专业班级 智能科学与技术 学号 姓名 1、实验环境 Visual C++ 6.0 2、实验目的和要求 给定一个带权有向图G=(V,E),其中每条变得权是非负实数。另外,还给定V中的一个顶点,称为源。现在要计算从源到所有其他各顶点的最短路长度。这里路的长度是指路上各边权之和。这个问题通常称为单源最短路径问题。 3、解题思路、伪代码 3.1解题思路 设给定源点为Vs,S为已求得最短路径的终点集,开始时令S={Vs} 。当求得第一条最短路径(Vs ,Vi)后,S为{Vs,Vi} 。根据以下结论可求下一条最短路径。 设下一条最短路径终点为Vj ,则Vj只有:源点到终点有直接的弧 Vs,Vj;从Vs 出发到Vj 的这条最短路径所经过的所有中间顶点必定在S中。即只有这条最短路径的最后一条弧才是从S内某个顶点连接到S外的顶点Vj 。 若定义一个数组dist[n],其每个dist[i]分量保存从Vs 出发中间只经过集合S中的顶点而到达Vi的所有路径中长度最小的路径长度值,则下一条最短路径的终点Vj必定是不在S中且值最小的顶点, 即:dist[i]=Min{ dist[k]| Vk?V-S } 利用公式就可以依次找出下一条最短路径。 在程序中c[][]表示带权邻接矩阵 , dist[]表

文档评论(0)

1亿VIP精品文档

相关文档