当前位置: 首页 > ai >正文

图论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. 不能未计算过路径的节点出发

  1. SFPA算法

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

  1. 判断负权回路,由该系列算法可知我们通过n-1次松弛可以得到从起点到任意一点的最少开销,如果存在负权回路,再继续松弛,就是沿着该回路绕圈,会使开销越来越小。判断方法就是松弛n-1次后在松弛一次看minDist数组有没有变化

http://www.xdnf.cn/news/6031.html

相关文章:

  • HCIP-BGP综合实验
  • 鸿蒙OSUniApp 实现一个精致的日历组件#三方框架 #Uniapp
  • AGI大模型(16):向量检索之基于向量检索的RAG实现
  • git仓库初始化
  • 【华为HCIP | 华为数通工程师】821—多选解析—第二十四页
  • AWS技术助力企业满足GDPR合规要求
  • MongoDB入门
  • 歌词滚动效果
  • MFC 调用海康相机进行软触发
  • 在Electron中实现文件下载、保存和执行功能的完整教程
  • C++类和对象:运行符重载、取地址运算符重载、const 修饰的类如何作为参数
  • SpringBoot Vue MySQL酒店民宿预订系统源码(支付宝沙箱支付)+代码讲解视频
  • 2025年PMP 学习十三 第9章 项目资源管理(9.1,9.2)
  • Jenkins里构建一个简单流水线
  • Web 架构之会话保持深度解析
  • 关于 js:9. Node.js 后端相关
  • 移动网页调试工具实战:从 Chrome 到 WebDebugX 的效率演进
  • 数据结构 栈和队列
  • Pytorch的Dataloader使用详解
  • 技术中台-核心技术介绍(微服务、云原生、DevOps等)
  • 计算机视觉最不卷的方向:三维重建学习路线梳理
  • 安装npm:npm未随Node.js一起安装
  • NeurIPS Paper Checklist中文翻译
  • ubuntu20.04系统搭建k8s1.28集群-docker作为容器运行时
  • 视网膜屏幕:重新定义数字显示的革命性技术
  • Go 语言 net/http 包使用:HTTP 服务器、客户端与中间件
  • 游戏引擎学习第278天:将实体存储移入世界区块
  • RabbitMq消息阻塞,立即解决方案
  • 使用Thrust库实现异步操作与回调函数
  • spark数据清洗