Bootstrap

最短路径——Floyd算法

1. 背景:

Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。

2. 算法介绍:

完全最短路径问题要求找出一个有n个节点的加权连通图中每个节点到其他所有节点之间的最短距离。
在这里插入图片描述
可以使用类似于Washall算法的方法来生成这个最短距离矩阵,这就是Floyd算法。 Floyd算法通过一系列n阶矩阵来计算一个n节点加权图的最短距离矩阵。
在这里插入图片描述
以下图为例,一起来看一下Floyd算法每步的拓展情况:
在这里插入图片描述
根据该有向图可以得到任意两点间的距离矩阵(邻接矩阵),即没有跳

;