图算法---每对顶点间最短路径

本文探讨了图算法中用于寻找每对顶点间最短路径的两种方法:Floyd-Warshall算法,适用于稠密图,通过动态规划策略进行分析;以及Johnson算法,它在稀疏图上表现更优。这两者为解决图的最短路径问题提供了有效的解决方案。
摘要由CSDN通过智能技术生成

前言:

在前面的单源算法中,假定采用图的邻接表表示法。于此不同,本章中的大多数算法均采用邻接矩阵表示法。为方便起见,假设顶点编号为1,2,3,4,....|V|。于是我们用一个n*n的矩阵W,表示有n个顶点的有向图G=(V,E)中边的权值。其中                   0   如果i = j
                 Wij = 有向边(i,j)的权值  如果i != j ,且(i,j)属于E
                             正 无穷如果i != j,且(i,j) 不属于E
前两个算法是用动态规划方法来分析的,利用到矩阵的性质。
在讨论之前,有必要对邻接矩阵表示法建立一些约定。首先,一般假设输入图G=(V,E)有n个顶点,所以n = |V|。其次,我们按常规用大写字母来表示矩阵,例如W,L,用带有下标的小写字母来表示矩阵的元素,如Wij。有些矩阵带有括号的上标 ,用来表示迭代,rows[A] = n 。
25.1、最短路径与矩阵乘法(该算法使用动态规划分析)
1、最短路径子结构:对于图G=(V,E),用一个n*n的矩阵W,表示有n个顶点的有向图G=(V,E)中边的权值。考察顶点i到j的一条最短路径p,假设p之多包含m条边。假设图中不存在负权回路,则m是有限值。如果i = j,则路径p权值为0,且没有边。若顶点i和顶点j是不同顶点,则把路径p分解为i---->k->j,其中i---->k是路径p‘,其中p’至多有m-1条边。由引理24.1可知  min(i,j) = min(i,k) + wij

2、每对顶点间最短路径问题的一个递归解
      现在设   为是从顶点i到j的至多m条边的任何路径的权值最小值。其中

     公式(25.2) 递归解:
      结论:不难得出,当m >= n-1时,即从顶点i到j的至多有n-1条边的最小权重路径,就是顶i到j的最短路径。
     
3、算法描述(到这一步我想大家应该都很清楚了)
      
#定义25.2公式计算函数,L为
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值