图论part10 bellman_ford算法

  1. bellman_ford算法:对所有边进行松弛N-1次操作,求得目标最短路

卡码网94:寻找从节点1到节点n的最短路径并计算路径总权值,输出权值;不存在路径输出unconnected

  1. 松弛

状态一: minDist[A] + value 可以推出 minDist[B]

状态二: minDist[B]本身就有权值 (可能是其他边链接的节点B 例如节点C,以至于 minDist[B]记录了其他边到minDist[B]的权值)

对状态一二进行选择得过程就叫松弛

if (minDist[B] > minDist[A] + value) minDist[B] = minDist[A] + value

  1. 为什么松弛n-1次?

只要知道松弛一次得到的是到达和起点一条边相连得节点最短距离

到达节点n的最短距离就能通过松弛n-1次得到,同时还能得到到所有节点的最短距离

  1. 不能从未计算过路径的节点出发

  2. SFPA算法

适用队列优化bellman_ford,简单来记就是邻接表存图(维护边),BFS,并使用标记数组对目标节点进行标记,但是需要有取消标记的操作

  1. 判断负权回路,由该系列算法可知我们通过n-1次松弛可以得到从起点到任意一点的最少开销,如果存在负权回路,再继续松弛,就是沿着该回路绕圈,会使开销越来越小。判断方法就是松弛n-1次后在松弛一次看minDist数组有没有变化
相关推荐
野渡拾光36 分钟前
【考研408数据结构-05】 串与KMP算法:模式匹配的艺术
数据结构·考研·算法
tainshuai3 小时前
用 KNN 算法解锁分类的奥秘:从电影类型到鸢尾花开
算法·分类·数据挖掘
Coovally AI模型快速验证8 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun8 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
RaymondZhao349 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
zhangfeng11339 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
啊阿狸不会拉杆10 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法
小学生的信奥之路10 小时前
洛谷P3817题解:贪心算法解决糖果分配问题
c++·算法·贪心算法
你知道网上冲浪吗11 小时前
【原创理论】Stochastic Coupled Dyadic System (SCDS):一个用于两性关系动力学建模的随机耦合系统框架
python·算法·数学建模·数值分析
地平线开发者13 小时前
征程 6 | PTQ 精度调优辅助代码,总有你用得上的
算法·自动驾驶