有没有一个带有距离标记的最短路径算法的开源实现
Is there an open source implementation of shortest path algorithm with distance labeling a la Gavoille et al.?
如果允许预先计算图上|V|
中的线性数据量,那么有一系列算法可以为图中的最短路径提供次线性查询时间。
- Gavoille等。图中的距离标注
- Cohen等人通过2个操作标签的可达性和距离查询
- Abraham,Goldberg等人。最短路径的层次集线器标记
其中一些在必应地图中用于快速计算最短路线。
基本思想是为每个顶点预先计算正向标签L_f(v)
和反向标签L_b(v)
,这构成了覆盖属性。每个标签是一对顶点及其距离,例如L_f(v) = { (u, dist(v, u)) }
和L_r(v) = { (u, dist(u, v)) }
。并且cover属性断言,对于任何顶点s和t,L_f(s)
的"并集"L_r(t)
在从s到t的最短路径上至少包含一个顶点。
有没有这些算法(C++、C#、F#、D、Go、Java)的开源实现?
我没有找到任何实现这些算法的代码,但您可以查看卡尔斯鲁厄的主页,在那里您可以找到合同层次结构的代码,这些代码构成了(原始)集线器标签的基础。你可以用它来创建你自己的HL实现,但你应该知道他们已经为它申请了专利
相关文章:
- 内存效率表示最短路径的方法?
- 用于查找网格中最短路径的算法
- 查找最短路径算法
- BFS 打印最短路径
- 使用 Dijkstra 算法跟踪两个节点之间的最短路径
- 使用C++具有两个数字的最短路径算法.(C++)
- 使用迭代深度优先搜索算法的未加权图的最短路径
- 如何仅在 2 个节点之间获取最短路径,给定邻接列表有向图?
- 如何使用贝尔曼-福特算法返回所有具有捆绑重量的最短路径?
- 使用优先级队列查找所有与 Dijkstra 相同的最短路径
- 尝试在图形中查找最短路径时的无限循环
- C++计算有向图中的最短路径
- 使用BFS存储和打印最短路径
- 如何制作由原始图形的最短路径边组成的新图形
- 有没有一种方法可以使用弗洛伊德-沃歇尔算法给出最短路径,其中存在负权重循环而不允许重叠边缘?
- 加权图的开始和结束的最短路径
- 使 c++11 Dijkstra 实现返回最短路径
- 弗洛伊德最短路径算法C++
- Dijkstra 最短路径算法性能 std::p riority_queue VS std::set.
- 有没有一个带有距离标记的最短路径算法的开源实现