我们能比重复解决成对问题更快地找到所有对之间的k条最短路径吗?


9

我想在图中所有对之间产生最短路径(小于10)。该图是(实际上是地铁图):ķķķ

  • 正加权
  • 无方向的
  • 大约有100个节点

我目前的计划是对每对应用最短路径路由;我现在正在寻找一种更有效的替代方法(可能是动态编程)。ķ


3
老实说,对于100个顶点,似乎没有什么比解决45,000个成对问题中的每一个问题更有效的了。
大卫·里希比

Answers:


6

ķ

ķ

这似乎是一个相当年轻的研究领域。在ArXiv上可以找到Agarwal和Ramachandran的最新论文[1]。上一部分工作还将使您对问题的历史有所了解。

ķ

实际上,重复应用Eppsteins算法[2]是最佳选择。1977年,EL Lawler [3]已经得出普遍的看法,即对该问题的单源版本重复应用算法是最快的方法。对于这种子问题,Eppstein提供了迄今为止最快的算法。

参考文献

ķ

[2] Eppstein,D。找到k条最短路径。SIAM计算学报28,2(1999),652–673。

[3] Lawler,EL评论计算图中的k条最短路径。ACM通讯,20(8):603-605,1977年。


谢谢。由于我正在使用地铁地图,因此我需要将它们作为简单的路径(对我的软件来说,指导人们来回走是没有意义的),所以我想我只会采用Yan的算法
富兰克林·于

有趣且令人惊讶的是,显然一个问题的10,000个案例不能比仅解决10,000个单个案例更快地解决。
gnasher729

具有“最短路径”中包含的循环的路径的想法似乎违反直觉且与众不同,因为似乎有一个等效的“路径”已删除了循环,并且还想知道这些路径是否可以从简单路径等中有效地构造出来……
vzn16年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.