有没有一个带有距离标记的最短路径算法的开源实现

Is there an open source implementation of shortest path algorithm with distance labeling a la Gavoille et al.?

本文关键字:最短路径 开源 实现 算法 有一个 距离      更新时间:2023-10-16

如果允许预先计算图上|V|中的线性数据量,那么有一系列算法可以为图中的最短路径提供次线性查询时间。

  1. Gavoille等。图中的距离标注
  2. Cohen等人通过2个操作标签的可达性和距离查询
  3. 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实现,但你应该知道他们已经为它申请了专利