news 2026/2/26 5:50:04

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

作者头像

张小明

前端开发工程师

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/2/25 1:37:09

信号与系统综述

一、信号与系统的核心 信号与系统的核心是三大变换&#xff1a; 傅里叶变换&#xff08;Fourier Transform, FT&#xff09;、拉普拉斯变换&#xff08;Laplace Transform, LT&#xff09;和Z变换&#xff08;Z Transform, ZT&#xff09;二、基础概念 1.信号分类 2.基本信号 3…

作者头像 李华
网站建设 2026/2/23 17:07:10

借助AI算力云平台部署TTS模型的完整步骤

借助AI算力云平台部署TTS模型的完整实践 在智能语音内容爆发式增长的今天&#xff0c;越来越多的产品开始集成文本转语音&#xff08;TTS&#xff09;能力——从短视频配音、有声书制作到虚拟主播和无障碍阅读。然而&#xff0c;高质量语音合成的背后往往依赖庞大的深度学习模型…

作者头像 李华
网站建设 2026/2/18 13:52:49

The Sandbox玩家用Sonic创建个性化Avatar发言

The Sandbox玩家用Sonic创建个性化Avatar发言 在The Sandbox这样的去中心化虚拟世界中&#xff0c;一个能“说话”的Avatar不再只是高端工作室的专属。如今&#xff0c;普通玩家只需一张照片和一段录音&#xff0c;就能让自己的数字形象开口表达——这背后的关键推手&#xff0…

作者头像 李华
网站建设 2026/2/22 10:49:24

ComfyUI变量绑定简化VoxCPM-1.5-TTS-WEB-UI参数配置

ComfyUI变量绑定简化VoxCPM-1.5-TTS-WEB-UI参数配置 在AI语音合成技术飞速发展的今天&#xff0c;一个明显的矛盾正在浮现&#xff1a;模型能力越来越强&#xff0c;但使用门槛却依然让许多开发者望而却步。尤其是像VoxCPM-1.5这类支持高质量声音克隆的大模型&#xff0c;虽然语…

作者头像 李华
网站建设 2026/2/21 7:16:50

Django SQL注入漏洞CVE-2025-13372:FilteredRelation安全风险检测工具

Django FilteredRelation SQL注入漏洞检测工具 项目概述 本项目提供了一个针对CVE-2025-13372漏洞的概念验证&#xff08;PoC&#xff09;检测工具。该漏洞影响Django框架在使用PostgreSQL数据库后端时&#xff0c;结合FilteredRelation功能处理动态字典参数时可能引发的SQL注…

作者头像 李华