图算法---单源最短路径

本文探讨了图算法中的单源最短路径问题,介绍了最短路径的最优子结构、松弛技术和相关性质。重点讲解了Bellman-Ford算法和Dijkstra算法,适合寻找图中两点间的最短路径或最快速度。
摘要由CSDN通过智能技术生成

开篇

写了几篇记录学习图算法,Want先生很不耐烦的提出了自己的问题:他妈的,你扯了那么多算法,我的要求很简单,告诉我从点s到点v有几条路可以到达?其中那条路妹子最多?他妈的要是我敢时间那条路最快?

或许这篇文章可以回答want先生的问题,当然也有许多aspire先生,你写的这些文章对我一点用都没有,我希望的文章是能直接解决我遇到的问题,对此,我很抱歉,希望你能找到灵感,看到一坨屎也能产生灵感,如果是的,我很高兴这是那坨屎。

最短路径最优子结构(开门见山)

算法导论引理24.1(最短路径的子路径是最短路径):对于一给定的带权有向图G=(V,E),所定义的权函数w:E --->  R。设P=(v1,v2,...,vk)的最短路径是从v1到vk的最短路径,对于任意i,j,其中1 <= i <= j  <= K,
设Pij = (Vi,Vi+1,....,Vk)为P从顶点vi到vj的子路径。那么,Pij是从Vi到Vj的最短路径。
证明:反证,假设Pij不是Vi到Vj的最短路径。

一个最短路径能包含回路吗(最短路径上的顶点会重复吗)?分三种情况考虑:负权回路、正权回路、0权回路。
1、负权回路(不存在)
      那么将不存在V1到Vk的最短路径,因为在这个回路上无限循环,最短路径是“负无穷”(我自己认为这种情况不存在回路,单如果限制要求路径上的点不能重复的话,那么是有最短路径的)
2、正权回路(不存在)
       显然把回路那部分去掉,有比这更短的路径
3、0权回路(不存在)
       显然,把0权回路去掉,就是无回路的最短路径。

松弛技术

 对加权有向图G=(V,E),对每个顶点v属于V,都设置一个属性d[v],用来描述从原点s到v的字段路径上权值的上届,称为最短路径估计(松弛技术的理论基础)

最短路径以及松弛的性质:

三角不等式性质:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值