收缩层次结构:道路网络中更快更简单的分层路由
1. 引言
在道路网络中规划最优路线在算法工程领域备受关注,因为它有很多有趣的算法方法。这里介绍一种简单的分层路由方法,基于节点收缩的概念。
假设加权有向图 $G = (V, E)$ 的节点按“重要性”升序编号为 1 到 $n$。通过按此顺序收缩节点来构建层次结构。收缩节点 $v$ 时,将网络中形如 $\langle u, v, w\rangle$ 的最短路径替换为捷径边 $\langle u, w\rangle$,前提是 $\langle u, v, w\rangle$ 是从 $u$ 到 $w$ 的唯一最短路径。收缩过程可看作是将所有发现的捷径添加到边集 $E$ 中,从而得到收缩层次结构(CH)。
对于路由,将 CH $(V, E)$ 拆分为向上图 $G↑:= (V, E↑)$ 和向下图 $G↓:= (V, E↓)$,其中 $E↑:= {(u, v) \in E : u < v}$,$E↓:= {(u, v) \in E : u > v}$。对于从 $s$ 到 $t$ 的最短路径查询,执行修改后的双向 Dijkstra 最短路径搜索,即从 $s$ 在 $G↑$ 中进行正向搜索,从 $t$ 在 $G↓$ 中进行反向搜索。
2. 收缩
收缩节点 $v$ 时,处理的是覆盖图 $G′ = (V ′, E′)$,其中 $V ′ = v..n$,$E′$ 保留了相对于输入图的最短路径距离。在 $G′$ 中,需要解决多对多最短路径问题:对于每个源节点 $u \in v + 1..n$ 且 $(u, v) \in E′$,以及每个目标节点 $w \in v + 1..n$ 且 $(v, w)
道路网络分层路由优化方法
超级会员免费看
订阅专栏 解锁全文
1006

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



