news 2026/4/22 21:41:11

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

作者头像

张小明

前端开发工程师

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/4/22 11:37:13

Sonic模型License协议解读:可商用但需署名

Sonic模型License协议解读&#xff1a;可商用但需署名 在AIGC内容创作门槛不断降低的今天&#xff0c;如何用最低成本生成高质量数字人视频&#xff0c;已成为短视频、在线教育、虚拟主播等领域的核心命题。传统方案依赖昂贵的3D建模与动作捕捉&#xff0c;而新兴AI模型则试图以…

作者头像 李华
网站建设 2026/4/22 5:11:51

Sonic数字人监控指标设计:GPU利用率、请求成功率等

Sonic数字人监控指标设计&#xff1a;GPU利用率、请求成功率等 在虚拟主播24小时不间断直播、电商带货视频批量生成的今天&#xff0c;一个“嘴型对不上发音”或频繁失败的数字人系统&#xff0c;足以让用户瞬间出戏。而腾讯与浙大联合研发的Sonic模型&#xff0c;正试图解决这…

作者头像 李华
网站建设 2026/4/22 13:08:50

超详细版4位ALU设计:从逻辑门到完整电路搭建

从零搭建一个4位ALU&#xff1a;深入理解CPU的“计算大脑”你有没有想过&#xff0c;当你在代码里写下a b的那一刻&#xff0c;计算机底层究竟发生了什么&#xff1f;这个看似简单的加法操作&#xff0c;其实是由一个名为算术逻辑单元&#xff08;ALU&#xff09;的硬件模块在…

作者头像 李华
网站建设 2026/4/22 11:41:15

联合国儿童基金会UNICEF试用Sonic进行童权教育

联合国儿童基金会UNICEF试用Sonic进行童权教育&#xff1a;基于轻量级数字人同步模型的技术解析 在非洲某偏远社区的教室里&#xff0c;一段由本地女性形象“出镜”的动画视频正在播放&#xff0c;她用斯瓦希里语娓娓讲述儿童受保护的权利。孩子们专注地看着屏幕&#xff0c;仿…

作者头像 李华
网站建设 2026/4/15 21:56:16

大数据领域数据预处理的创新实践

大数据领域数据预处理的创新实践&#xff1a;突破瓶颈&#xff0c;释放数据潜能 一、 引言&#xff1a;数据洪流下的"暗礁"—— 预处理的生死时速 “在数据仓库里躺着的PB级日志&#xff0c;为什么永远无法驱动精准的用户画像&#xff1f;” “当我们投入百万构建的…

作者头像 李华
网站建设 2026/4/22 21:15:52

抖音挑战赛策划:拍摄Sonic生成视频参与热门挑战

抖音挑战赛策划&#xff1a;用Sonic生成数字人视频玩转热门挑战 你有没有刷到过这样的视频——一个人站在镜头前&#xff0c;字正腔圆地讲着段子&#xff0c;表情自然、口型精准&#xff0c;可实际上这根本不是真人出镜&#xff1f;背后可能正是AI数字人在“说话”。如今在抖音…

作者头像 李华