高效关联算法:寻找有向图中的次简单最短路径
1. 预备知识
在有向图的研究中,我们用 $G = (V, E)$ 来表示一个具有 $n$ 个顶点和 $m$ 条有向边(弧)的有向图,其中 $V = {1, 2, \cdots, n}$。每条边 $e$ 都有一个权重,用 $wt(e)$ 表示,并且所有边的权重均为非负,同时不允许存在自环和多重边。
- 一条从顶点 $u$ 指向顶点 $v$ 的弧记为 $e = (u, v)$,其中 $u$ 是弧的尾($tail(e)$),$v$ 是弧的头($head(e)$)。
- 用 $deg^+(G)$ 表示图中顶点的最大出弧数。
- 从顶点 $v_1$ 到顶点 $v_k$ 的最短路径是一个有限的顶点序列 $v_1, v_2, \cdots, v_k$,其中 $(v_i, v_{i + 1}) \in E$($1 \leq i < k$),并且相应弧的权重之和最小。用 $dist(v_1, v_k)$ 表示从 $v_1$ 到 $v_k$ 的最短路径长度,如果两个顶点之间没有路径,则 $dist(v_1, v_k) = \infty$。
- 以 $v_1$ 为根的最短路径树 $T$ 是 $G$ 的一个连通无环子图,包含图中的所有顶点,并且对于每个顶点 $v_j$,都有一条从 $v_1$ 到它的唯一最短路径。不属于 $T$ 的弧称为非树边。对于任何路径 $p$,$sidetracks(p)$ 是属于 $p$ 的非树边序列。
另外,定义函数 $\delta(u, v) = wt(u, v) + dist(v_1, u) - dist(v_1, v)$。直观地说,$\d
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



