路径规划-CH算法
1. 概述
CH(Contraction Hierarchies)是道路网络最短路径算法之一,其应用收缩(contract)节点的方法将节点分层,显著提高了最短路径的搜索速度。
CH算法涵盖数据预处理和路径搜索两个方面,预处理通过收缩节点生成路网图的层次结构,搜索过程利用层次图搜索
理解CH算法需要弄懂两个问题:
- 怎么通过收缩(contract)节点
- 怎么在分层后的网络中进行路径查询
2. 整理思想
- 道路网形成的带权有向图G(V,E,c)是一个平面结构
- 对于路网图G中的节点,按照某些维度、对每个节点都定义一个优先级level,某种程度上可以认为这个优先级就是节点在图G中的重要性
- 然后沿垂直方向将图中的每个节点做沉降,使得每个节点在垂直方向上的高度与其在图G中的优先级一致,沿着节点的高度形成层次结构
- 寻找s→t的最短路径时,分别从s和t做正向和反向Dijkstra,Dijkstra的每一步都沿着高度大于当前节点高度的方向搜索,形成两个端点开始向上爬图的搜索过程,双方相遇的某个顶点即为最短路径。由此降低节点搜索规模、加速搜索性能
- 由于G中搜索是向上方向,因此当沉降某个节点v破坏了剩余节点的连通性和最短距离时,需要在剩余节点中添加shortcut边E’保持图的语义不变,形成图G*(V,E+E’,c+c’)