algorithm - 优化搜索具有 N 个顶点和 N 条边的图中的所有最短路径

标签 algorithm tree graph-theory shortest-path

我需要找到图 G 中所有对之间的最短路径。我正在使用 Floyd–Warshall 算法来计算解决方案。

鉴于这些关于 G 的事实,我需要知道是否有更好的选择来找到所有最短路径:

  1. G 是一个无向图。
  2. 顶点数和边数相同。
  3. 所有的边权重都是正的。

鉴于这些事实,是否有比 Floyd-Warshall 更好的解决方案?

最佳答案

对稀疏图的 Dijkstra 最短路径算法进行了修改,该算法运行速度非常快,并揭示了对数线性(接近线性)渐近行为。您需要从 N 个顶点进行 N 次搜索,从而提供比 O(N^3) Floyd–Warshall 算法更好的 O(N^2*LogN) 渐近时间。

可能你的图有特殊的拓扑结构,允许更有效的方法......

C++ code with Russian description (可能由谷歌浏览器翻译)

我有网格图的 delphi 实现 here .

关于algorithm - 优化搜索具有 N 个顶点和 N 条边的图中的所有最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31397920/

相关文章:

algorithm - 在绘图应用程序中使用的最佳线条算法是什么?

security - 使该安全系统适应多重继承的最佳方法是什么?

algorithm - 从子树中查找所需的最少字符

javascript - 递归显示n叉树

algorithm - 选择一个低效的数据结构,它会给我们带来什么问题?

algorithm - 找到 a、b 和 c 的值,使得 X^a * Y^b * Z^c 最接近 N 并且 a+b+c 最小

python - networkx 边返回错误的索引

java - neo4j - 对于这种情况,独立服务器还是嵌入式服务器?

生成带/不带解决方案的迷宫的算法

xslt - 使用 XSLT/XPath 查找有向无环图 (DAG) 最小元素(顶点)?