美文网首页
多源最短路径 Floyd算法

多源最短路径 Floyd算法

作者: 周恩国的学习笔记 | 来源:发表于2021-01-27 21:35 被阅读0次
  1. Floyd算法是解决多源最短路径的算法,优点是简单易于理解。
    主要流程如下:
  • 1 初始化矩阵初始值
  • 2 遍历每一个节点为中介点,对于所有节点组合,计算经中介点是否更近,更近则保存结果
  • 3 循环结束
  1. 如下例


    幻灯片1.jpg
幻灯片2.jpg 幻灯片3.jpg 幻灯片4.jpg 幻灯片5.jpg 幻灯片6.jpg 幻灯片7.jpg
  1. 代码如下
from copy import copy

Inf = float('inf')

def load_graph():
    N=6
    graph = [[0, 1, 12, Inf, Inf, Inf],
             [1, 0, 9, 3, Inf, Inf],
             [12, 9, 0, 4, 5, Inf],
             [Inf, 3, 4, 0, 13, 15],
             [Inf, Inf, 5, 13, 0, 4],
             [Inf, Inf, Inf, 15, 4, 0]]

    return graph,N

if __name__ == '__main__':

    graph,N = load_graph()

    #distance matrix
    distance = copy(graph)

    # floyd
    for k in range(N):
    #k为中介点
        for i in range(N):
            for j in range(N):
                if i==j or i==k or j==k: continue
                if graph[i][k]+graph[k][j]<distance[i][j]:
                    distance[i][j] = graph[i][k]+graph[k][j]
                    distance[j][i] = distance[i][j]

    print(distance)

4.优缺点

  • 1 优点
    • 算法简单,易于理解
    • 对于稠密图更高效
  • 2 缺点
    • 复杂度较高 O(n3)

相关文章

  • 遍历 最短路径 1.单源最短路 有权图-Dijkstra 多源头最短路-Floyd算法 —————————————...

  • 最短路径 之 Dijkstra 算法

    • 最短路径 之 Floyd 算法• 最短路径 之 Bellman 算法 Dijkstra算法是用于求解单源最短路...

  • 最短路径 之 Bellman 算法

    • 最短路径 之 Floyd 算法• 最短路径 之 Dijkstra 算法 Bellman算法差不多是Floyd算...

  • 数据结构与算法--最短路径之Floyd算法

    数据结构与算法--最短路径之Floyd算法 我们知道Dijkstra算法只能解决单源最短路径问题,且要求边上的权重...

  • 多源最短路径 Floyd算法

    Floyd算法是解决多源最短路径的算法,优点是简单易于理解。主要流程如下: 1 初始化矩阵初始值 2 遍历每一个节...

  • 算法学习(2)-最短路算法

    Floyd算法 【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法最短路径—Dijkstra算法和Floy...

  • 第三章 路径分析算法——基于Floyd算法的路径分析

    3.2 基于Floyd算法的路径分析 Floyd算法是一种用于在已知给定的加权图中求多源点之间最短路径的算法。它于...

  • 最短路径 之 Floyd 算法

    • 最短路径 之 Dijkstra 算法• 最短路径 之 Bellman 算法 Floyd算法是基于一种动态规划的...

  • Floyd 算法

    Floyd 算法 简介 Floyd 算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径...

  • 动态规划(三,Floyd算法)

    概述: Floyd算法是为了找出带权图中的多源最短路径,即从图中一个顶点到宁一个顶点权重最小的路径. 思想: 分别...

网友评论

      本文标题:多源最短路径 Floyd算法

      本文链接:https://www.haomeiwen.com/subject/jbtzzktx.html