- 113
- 0
- 约2.66千字
- 约 5页
- 2020-12-24 发布于浙江
- 举报
PAGE
PAGE 5
实验3:最短路径算法
一、实验目的
通过本实验的学习,理解Floyd(弗洛伊得)最短路径算法的思想
二、实验内容
用C语言编程实现求赋权图中任意两点间最短路径的Floyd算法,并能对给定的两结点自动求出最短路径
三、实验原理、方法和手段
1、Floyd算法的原理
定义:Dk[i,j] 表示赋权图中从结点vi出发仅通过v0,v1,┉,vk-1中的某些结点到达vj的最短路径的长度,
若从vi到vj没有仅通过v0,v1,┉,vk-1 的路径,则D[i,j]=?
即
D-1[i,j] 表示赋权图中从结点vi到vj的边的长度,若没有从结点vi到vj的边,则D[i,j]=?
D0[i,j] 表示赋权图中从结点vi到vj的”最短”路径的长度, 这条路上除了可能有v0外没有其它结点
D1[i,j] 表示赋权图中从结点vi到vj的”最短”路径的长度, 这条路上除了可能有v0,v1外没有其它结点
┉┉┉
根据此定义,Dk[i,j]=min{ Dk-1[i,j] , Dk-1[i,k-1]+Dk-1[k-1,j] }
定义:path[i,j]表示从结点vi到vj的“最短”路径上vi的后继结点
四、实验要求
要求输出每对结点之间的最短路径长度以及其最短路径
五、实验步骤
(一)算法描述
Step 1 初始化有向图的成本邻矩阵D、路径矩阵path
原创力文档

文档评论(0)