所有对最短路径 - 热重启?

Posted

技术标签:

【中文标题】所有对最短路径 - 热重启?【英文标题】:All pairs shortest path - warm restart? 【发布时间】:2014-03-04 08:49:05 【问题描述】:

是否可以为 APSP 问题热启动任何众所周知的算法(Dijkstra/Floyd-Warshall 等),以便能够降低时间复杂度,并可能降低计算时间?

假设图形由 NxN 矩阵表示。我只考虑一个或多个矩阵条目(

【问题讨论】:

我对这个问题的答案也很感兴趣,但我认为最好将其发布在 cs.stackexchange.com 上。您可能希望提供更多详细信息,例如,您是否在不同调用中查看相同的源和接收器(在这种情况下,我认为可以重用某些值) 感谢您的提示 - 我也会将其发布在 cs stackexchange 上。我对确定每次调用中所有节点/顶点对之间距离的一般情况更感兴趣(如果可能的话,也是成本最低的路径)。 仅供参考:我注意到以下关于动态图主题的 cs stackexchange 讨论:cs.stackexchange.com/q/7250/14479 【参考方案1】:

我不知道 APSP 的增量算法。但是,有一个用于解决 SSSP 的 A* 增量版本,称为 Lifelong Planning A* (又名“LPA*”,很少也称为“增量 A*”),这似乎就是你的意思在第二段中询问。

Here 是原始论文的链接。您可以在this post 中找到有关 A* 变体的更多信息。

【讨论】:

【参考方案2】:

一篇有趣的研究论文是:Experimental Analysis of Dynamic All Pairs Shortest Path Algorithms [Demetrescu, Emiliozzi, Italiano]

我们展示了针对所有对最短路径问题的动态算法的广泛计算研究的结果。我们描述我们的 King [18] 的最新动态算法的实现和 Demetrescu 和 Italiano [7],并将它们与动态算法进行比较 Ramalingam 和 Reps [25] 以及随机静态算法, 真实世界和硬实例。我们的实验数据表明,一些 动态算法及其算法技术可以 在许多情况下确实具有实用价值。

另一个有趣的分布式算法是Engineering a New Algorithm for Distributed Shortest Paths on Dynamic Networks [Cicerone, D’Angelo, Di Stefano, Frigioni, Maurizio]

我们研究了在分布式网络中动态更新所有对最短路径的问题,同时边缘更新操作发生在 网络。我们考虑一个动态网络的实际情况,其中 当一个或多个其他边缘更新发生时,可能会发生边缘更新 正在处理中。

您可以通过搜索动态网络上的所有对最短路径找到更多资源。

【讨论】:

以上是关于所有对最短路径 - 热重启?的主要内容,如果未能解决你的问题,请参考以下文章

所有节点对最短路径

为啥全对最短路径算法使用负权重?

neo4j寻找节点间的最短路径

Floyd-Warshall:所有最短路径

算法导论——单元最短路径

如何在 Floyd-Warshall 算法中输出最短路径?