Skip to content

最短路问题

Shortest-path problem

在有限有向实权图中寻找源点到各顶点的最小有向游走成本。

条目类型
模型

形式陈述

D=(V,A) 为有限有向图,弧权函数 w:AR 取值于实数系。固定源点 s。对从 sv 的有向游走

W=(v0=s,v1,,vk=v),

定义游走成本

w(W)=i=1kw(vi1,vi),δ(s,v)=inf{w(W):W 是 s 到 v 的有向游走}.

vs 不可达,约定 δ(s,v)=+。长度为零的空游走给出 δ(s,s)0;若没有从 s 出发又回到 s 的负权圈,则等号成立。若存在从 s 可达、且还能到达 v 的负权有向圈,则可在前往 v 前把该圈重复任意多次,故 δ(s,v)=。除此之外,δ(s,v) 若有限便由一条简单有向路达到:任意游走中重复顶点之间形成有向闭游走;其中若含负圈便落入前述 情形,否则可删去一个非负闭合段而不增加成本,反复删除后只剩至多 |V|1 条弧。

对每条弧 (u,v),扩展实数意义下的三角不等式为

δ(s,v)δ(s,u)+w(u,v).

松弛操作维护距离上界 d,尝试令

d[v]min{d[v],d[u]+w(u,v)}.

每个有限估计都应由一条已发现游走见证,因此不会凭空低于真实有限最短距离。若一条 sv 的最短路经过 u,其到 u 的前缀也必须最短;否则用更短前缀替换便会改进整条路。这一最优子结构和“信息以什么顺序传播”是两件事,后者取决于权重条件与具体算法。

直觉

最短路按整条路线的可加成本比较,不按边数或某条局部最轻边决胜。松弛把一个已有前缀再延伸一步;当所有相关三角约束都稳定时,每个可达且不受负圈影响的顶点才得到最终距离。

边权决定可采用的传播顺序。非负权让距离波前只能向外增长,Dijkstra 因而可以永久结算最小候选;允许负边时,后来发现的路线可能反超早先候选,Bellman–Ford 要容许反复修正;DAG 没有回流,按拓扑序扫描一次即可,即使边权为负。

用游走定义 δ 可以如实表示负圈造成的无界下降。若只在有限多条简单路中取最小值,即使存在可利用的负圈也会返回一个有限数,从而掩盖“成本可任意降低”这一算法上不可忽略的事实。

最短距离与最短路树
例子与边界

saatst 的权依次为 2,3,6 时,路线 sat 的成本 5 优于直达弧。把 at 改为 4 后,最短成本变为 2;一条负边没有使问题失去定义,只使依赖非负性的结算方法不再可靠。若再加入 ta、权 1,则圈 ata 总权为 3,从圈可达的 a,t 距离均为

若另有负圈 xyx,但 x,ys 不可达,它不会影响这次单源查询;两点距离仍为 +。同样,可达负圈若不能再到达某个顶点 v,也不会把 δ(s,v) 变成 。零权圈不会改变最短值,却会产生无限多条等成本最优游走;仍可删圈得到一条简单最短路。

平行弧应保留各自权重与身份,不过只求距离时,同方向端点相同的弧只保留最小权者也不改变答案。无权图可把每条弧权设为 1,用 BFS 求最少弧数;多源问题可加入到各源的零权超级源。若成本依赖到达时刻、前一条边或不可相加的多重指标,就必须扩展状态或改变代价代数,普通最短路模型不再充分。

推论与应用

Dijkstra处理非负权单源情形,Bellman–Ford允许负边并检测源可达负圈,Floyd–Warshall用矩阵动态规划求所有点对距离。Johnson 算法先以势函数消去负边,再在稀疏图上逐源运行 Dijkstra;A*面向单目标查询,用可证明的下界改变候选展开次序。这些算法求解同一模型的不同输入区域,权重假设不能互换。

最短路树与最小生成树的目标不同。前者固定源点并分别最小化根到各顶点的距离;后者最小化整棵连接树的边权总和。三角形边权 w(sa)=2,w(ab)=2,w(sb)=3 时,从 s 的最短路树取 sa,sb,总权 5;MST 取 sa,ab,总权 4,但树上 sb 的距离 4 又大于原图的 3

逐次最短路最小费用流把最短路作为残量网络中的反复增广子程序,并用势维持约化成本非负;其目标是满足流量约束下的总费用最小,而非只输出一条 st 路径。动态图、时间依赖权和多准则成本也需要另行规定更新接口与代价代数,不能从静态可加边权模型直接外推。

参考资料
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Chs. 22–23, single-source and all-pairs shortest paths。
  • Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005,Chs. 4 and 6, shortest paths with nonnegative and general edge costs。
关系图谱17 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系