zoukankan      html  css  js  c++  java
  • 算法导论图论单源最短路径

    单源最短路径

    1.边权可以为时间、费用、罚款、损失或者任何其他沿一条路径线性积累的和我们试图将其

    最小化的某个量

    2.单源最短路径的变体:

    (1)单终点最短路径问题:找出每个点到指定终点的最短路径

        解决方法:把图中每条边反向,可转换为单源最短路径

    (2)单对顶点最短路问题:对每个顶点u,v找出从u到v的最短路径

        解决方法:从渐进意义看,目前没有比单源算法更快的算法解决这个问题

    (3)每对顶点间的最短路径问题:下一节介绍

    3.最短路径最优子结构

    对任一带权有向图G=(V,E)所定义的权函数为w:E->R。设p=<v1,v2,…,vk>是从v1到vk的最短路径。对任意i,j其中1<=i<=j<=k,设pij=<vi,…,vj>为从顶点vi到vj的子路径。那么pij是从vi到vj的最短路

    4.负值权变

        若存在一条从s可达的负权回路,那么最短路径权的定义就不成立了

        如果从s到v的某路径中存在一条负权回路就定义σ(u,v)=负无穷

        Dijk输入边权必须为非负边

        Bellman-ford可输入负边,只要不存在从源点可达的负权回路就能给出正确答案。若存在,则检查报错

    5.一最短路径中不能包含负权回路也不能包含正权回路

        可以从任一路径中移去0权回路

    6.最短路径的表示

    对每一顶点v都设置其前驱π(v)为另一顶点或者NIL

        顶点集Vπ为G中所有具有非空前驱的顶点集合,再加上源点s

        Vπ={v属于V:π(v)!=NIL}并{s}

        有向边集Eπ是由Vπ中的顶点的π的值导出的边集

    7.设图G=(V,E),是带权有向图,其加权函数为w:E->R,假定R中不包含s属于V的负权回路,那么最短路径是良定义的

    8.松弛技术

        对每个顶点v属于V都设置一个属性d[v]用来描述从s到v的最短路径的上界,称为最短路径估计

    对最短路径估计和前趋进行初始化

        INITIALIZE-SINGLE-SOURCE

            For each vertex v属于 V[G]

                do d[v]=负无穷

                 π[v]=NIL

         d[s]=0

        对u,v进行松弛操作

        RELAX(u,v,w)

            If d[v]>d[u]+w[u,v]

                Then d[v]=d[u]+w[u,v]

                    π[v]=u

        叫松弛的原因:设σ(s,u)=d[u],σ(s,v)=d[v]

        所以满足约束d[v]<=d[u]+w(u,v)无压力,所以是松弛的

    9.最短路及松弛的性质

        三角不等式:对任意边(u,v)属于E,有σ(s,v)<=σ(s,u)+w(u,v)

        上界定理:对任意顶点v属于V有d[v]>=σ(s,v),而且一旦达到σ(s,v)值就不再改变

        无路径性质s到v无路径,则d[v]=σ(s,v)=正无穷

        收敛性质:s~u->v是图G某u,v的最短路径,而且在松弛边(u,v)之前的任何时间d[u]=σ(s,u),则在操作过后总有d[v]=σ(s,v)

    路径松弛性质:任意s=v0到vk的最短路径p=<v0,v1,…,vk>按顺序进行松弛,(v0,v1),(v1,v2),…,(vk-1,vk),那么这些松弛以后以及在以后的任意时刻都有d[vk]=σ(s,vk)

        无论其他边是否发生松弛,(包括与p的变交错的发生松弛),这一性质都保持

        前趋子图性质:一旦对所有的v属于V ,d[v]=σ(s,v),前趋子图就是一个以s为根的有根树

  • 相关阅读:
    2020阿里最新出品的泰山版Java开发手册,告别垃圾代码
    freecplus框架-目录操作
    freecplus框架简介
    freecplus框架-加载参数文件
    freecplus框架-xml解析
    freecplus框架-tcp网络通信
    freecplus框架-PostgreSQL数据库操作
    freecplus框架-Oracle数据库操作
    freecplus框架-MySQL数据库操作
    freecplus框架-ftp客户端
  • 原文地址:https://www.cnblogs.com/inpeace7/p/2446825.html
Copyright © 2011-2022 走看看