zoukankan      html  css  js  c++  java
  • 单源最短路径问题

    所讨论的算法都是在松弛技术的基础上进行的。

    1、初始化(对最短路径估计和前驱结点进行初始化)伪代码

    INITIAlIZE_SINGLE_SOURCE(G,s){
    for each vertex v ε G.V
         v.d=∞;

         v.∏=NIL;

    end

    s.d=0;

    }

    其中v.d记录从源结点s到结点v的最短路径权重的上界,v.∏为v的前驱结点。

    2、松弛操作(对边(u,v))伪代码

    RELAX(u,v){

    if v.d>u.d+ω(u,v)

       v.d=u.d+ω(u,v);

       v.∏=u;

    end

    }

    所有算法之间的不同之处是对每条边进行松弛的次数和松弛边的次序有所不同。

    下面分别介绍Bellman-Ford算法、有向无环图中的单源最短路径问题、

    一、Bellman-Ford算法

    1、解决的是一般情况下的单源最短路径问题。

    2、算法返回一个布尔值,表明是否存在一个从源结点可以到达的权重为负值的环路。

    3、算法代码

    Bellman-Ford(G,ω,s){

    INITIALIZE_SINGLE_SOURCE(G,s);

    for i=1 to |G.V|-1

        for each edge (u,v) ε G.E

             RELAX(u,v);

         end

    end

    for each edge (u,v) ε G.E

        if v.d>u.d+ω(u,v);

            return FALSE;

        end

    end

    return TURE;

    }

    4、算法分析:总运行时间为 Ο(VE)

    二、有向无环图中的单源最短路径问题

  • 相关阅读:
    时尚前沿的图片左右滚动效果-1
    瀑布流效果
    js遮罩层弹出显示效果组件化
    javascript学习笔记(三)
    前端开发技巧
    Pushlet后台推送
    比较抽象的面试题
    技术点
    HTML5特性
    struts2学习笔记(二)
  • 原文地址:https://www.cnblogs.com/luori719/p/4688728.html
Copyright © 2011-2022 走看看