35、收缩层次结构:道路网络中更快更简单的分层路由

道路网络分层路由优化方法

收缩层次结构:道路网络中更快更简单的分层路由

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)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值