news 2026/5/10 18:20:42

有向网是一种带权的有向图,其中每条边都有一个非负的权值表示从一个顶点到另一个顶点的代价或距离

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有向网是一种带权的有向图,其中每条边都有一个非负的权值表示从一个顶点到另一个顶点的代价或距离

有向网是一种带权的有向图,其中每条边都有一个非负的权值表示从一个顶点到另一个顶点的代价或距离。图 3-42 (a) 描述了这样的一个有向网,包含顶点 $ v_0 \sim v_5 $,并通过边上的数值标明了各边的权重。其对应的邻接矩阵(图 3-42 (b))用二维数组形式表示该图:若存在从顶点 $ v_i $ 到 $ v_j $ 的边,则矩阵元素 $ A[i][j] $ 存储该边的权值;若无直接连接,则记为 $ \infty $,表示不可达。

迪杰斯特拉算法(Dijkstra’s Algorithm)用于解决单源最短路径问题,即从指定源点(此处为 $ v_0 $)出发,计算到图中其余所有顶点的最短路径。该算法适用于边权非负的有向图或无向图。

算法核心思想如下:

  • 维护两个集合:
    • $ S $:已确定最短路径的顶点集合;
    • $ T $:尚未确定最短路径的顶点集合。
  • 初始化时,$ S $ 只包含源点 $ v_0 $,其他顶点均在 $ T $ 中。
  • 每次从 $ T $ 中选择距离源点最近的顶点 $ u $,将其加入 $ S $,并以 $ u $ 为中间点更新 $ T $ 中所有与之相邻顶点的当前最短距离(松弛操作)。
  • 重复此过程,直到所有顶点都被加入 $ S $ 或无法再更新。

根据表 3-1 所示的过程和结果:

终点最短路径路径长度
$ v_1 $无路径$ \infty $
$ v_2 $$ v_0 \to v_3 \to v_4 \to v_2 $60
$ v_3 $$ v_0 \to v_3 $30
$ v_4 $$ v_0 \to v_3 \to v_4 $50
$ v_5 $$ v_0 \to v_5 $10

可以得出以下结论:

  • $ v_0 \to v_5 $ 直接相连,权值为 10,是最短路径;
  • $ v_0 \to v_3 $ 权值为 30,是通往多个后续顶点的关键中转点;
  • $ v_0 \to v_4 $ 需经由 $ v_3 $,路径为 $ v_0 \to v_3 \to v_4 $,总长 50;
  • $ v_0 \to v_2 $ 的最短路径经过 $ v_3 $ 和 $ v_4 $,累计长度为 60;
  • $ v_1 $ 与源点之间没有可达路径,因此距离为 $ \infty $。

这说明迪杰斯特拉算法不仅找出最短路径本身,还能识别出哪些目标是不可达的。
迪杰斯特拉算法不能处理带有负权边的图,其根本原因在于该算法采用贪心策略,一旦某个顶点被选入集合 $ S $(即认为已找到从源点到该顶点的最短路径),就不再更新它的最短距离。然而,在存在负权边的情况下,这种“一旦确定不再更改”的假设可能不成立。

详细解释如下:

  1. 贪心选择的局限性
    迪杰斯特拉算法在每一步都选择当前距离源点最近的未确定顶点 $ u $ 加入集合 $ S $,并认为此时的距离就是最终的最短距离。但在有负权边时,可能存在一条经过更多边但总权值更小(甚至为负)的路径,这条路径会在后续才被发现,从而导致之前“已确定”的距离实际上是错误的。

  2. 反例说明
    考虑以下简单有向图:

    • 顶点:$ v_0, v_1, v_2 $
    • 边与权值:
      • $ v_0 \to v_1 $,权值 3
      • $ v_0 \to v_2 $,权值 4
      • $ v_2 \to v_1 $,权值 -2

    若使用迪杰斯特拉算法从 $ v_0 $ 出发:

    • 初始:$ dist[v_1] = 3, dist[v_2] = 4 $
    • 先将 $ v_1 $(距离最小)加入 $ S $,标记其最短距离为 3。
    • 然后处理 $ v_2 $,发现 $ v_2 \to v_1 $ 的边,但此时 $ v_1 $ 已经在 $ S $ 中,不再更新。

    实际上,路径 $ v_0 \to v_2 \to v_1 $ 的长度是 $ 4 + (-2) = 2 < 3 $,应更优,但由于贪心策略过早地固定了 $ v_1 $ 的距离,导致结果错误。

  3. 负权环问题加剧影响
    如果图中存在负权回路(负环),则最短路径可能不存在(可以无限绕环降低总权值)。虽然迪杰斯特拉无法检测负环,也无法正确处理一般负权边,而像 Bellman-Ford 或 SPFA 这类算法则能处理这类情况。


总结
迪杰斯特拉算法依赖“非负权值”来保证贪心选择的正确性——只有当所有边权 ≥ 0 时,先被访问的节点才确实具有当前最小距离。一旦出现负权边,后续路径可能通过它获得更短距离,破坏算法逻辑。

因此,迪杰斯特拉算法要求图中所有边的权值必须为非负数

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 23:33:45

Sonic数字人适合哪些行业?虚拟客服、网课讲师、短视频主角皆可

Sonic数字人适合哪些行业&#xff1f;虚拟客服、网课讲师、短视频主角皆可 在智能内容爆发的今天&#xff0c;一个教师要录10节网课&#xff0c;一家电商公司每天要产出几十条产品讲解视频&#xff0c;政府机构需要反复宣讲新政策——这些重复性高、人力成本重的任务&#xff0…

作者头像 李华
网站建设 2026/4/30 4:20:34

企业AI成本供应商管理:架构师的谈判与成本降低技巧

企业AI成本供应商管理&#xff1a;架构师的谈判与成本降低技巧 一、引言&#xff1a;AI时代&#xff0c;成本管理是企业的“隐形竞争力” 随着生成式AI、计算机视觉、自然语言处理等技术在企业中的普及&#xff0c;AI项目的成本已经成为企业数字化转型的关键瓶颈。根据Gartner …

作者头像 李华
网站建设 2026/5/9 20:45:24

EMI滤波电路中三脚电感选型指南

三脚电感选型实战&#xff1a;如何让EMI滤波一次过认证&#xff1f;你有没有遇到过这样的场景&#xff1f;产品功能调通了&#xff0c;效率也达标了&#xff0c;结果在EMC实验室里&#xff0c;传导干扰测试曲线“一飞冲天”&#xff0c;尤其30 MHz附近那个尖峰&#xff0c;像一…

作者头像 李华
网站建设 2026/5/10 17:21:37

网盘直链下载助手断点续传状态通过VoxCPM-1.5-TTS-WEB-UI语音通知

网盘直链下载助手断点续传状态通过VoxCPM-1.5-TTS-WEB-UI语音通知 在日常使用网盘进行大文件下载时&#xff0c;你是否曾遇到过这样的场景&#xff1a;开始一个几GB的下载任务后&#xff0c;转身去做别的事&#xff0c;结果忘了查看进度&#xff0c;等想起来时才发现早已中断却…

作者头像 李华