【算法】所有结点对的最短路径问题

2019-03-01  本文已影响0人  琦思妙想君

概要

最短路径和矩阵乘法

这一节是使用动态规划的方法解决所有结点对的最短路径问题,按动态规划的设计方法,有四个步骤

步骤一:分析最优解结构

步骤二:所有结点对最短路径的递归解

步骤三:自底向上计算最短路径权重

步骤三改进:重复平方

步骤四:构建最优解

Floyd-Warshall 算法

Floyd-Warshall 算法也是基于动态规划的思想,但是是从另一个角度思考问题,下面的结构还是按照动态规划的思路组织的

最短路径结构(步骤一)

所有结点对最短路径问题的一个递归解(步骤二)

自底向上计算最短路径权重(步骤三)

构建一条最短路径(步骤四)

有向图的传递闭包

用于稀疏图的 Johnson 算法

重新赋予权重来维持最短路径

通过重新赋值来生成非负权重

计算所有结点对之间的最短路径

这一小段给出了 Johnson 算法的具体过程:

上一篇下一篇

猜你喜欢

热点阅读