floyd

作者: warManHy | 来源:发表于2021-01-08 13:22 被阅读0次

    佛洛依德算法:

        多源最短路径算法 三人for循环 领接矩阵 一个存最短路径权 一个存路径

        逐个顶点试探,加入节点,看v0到v1的最小距离

        H(c,w)  > H(c,v) + H(v, w) 那么 cvw距离< cw

        设置矩阵A(ij) if i==j a(ij)=0; if 存在弧<i,j> a(ij) = c(ij); 其他 a(ij) = 无穷

    图示:

    代码:

    1. 构建矩阵,初始化

    python二维数组建立方式:[ [0] for i in range(n) for j in range(m) ] 得出m*n阶的矩阵

    2. 遍历K个节点,替换矩阵和路径

    for k in range(k):

        for m in range(m):

            for n in range(n):

                if G(m,n) > G(m,k) + G(k,n):

                    G(m,n) = G(m,k) + G(k,n)

                    P(m,n) = k

    3. 输出

    相关文章

      网友评论

          本文标题:floyd

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