Python NetworkX与Scipy所有最短路径算法

Python NetworkX与Scipy所有最短路径算法,python,scipy,networkx,shortest-path,Python,Scipy,Networkx,Shortest Path,NetworkX全最短路径算法和scipy floyd warshall算法之间有什么区别?有什么理由选择一个而不是另一个吗?哪一种最快?(对于那些不知道的人,networkx中提供了numpy-floyd-warshall算法) floyd_War的networkx应说明: 当Dijkstra算法失败时,Floyd算法适合于在稠密图或负权重图中寻找最短路径。如果存在负循环,该算法仍可能失败。它的运行时间为O(n^3),运行空间为O(n^2) networkx单源最短路径在稀疏图上效果更好。您应

NetworkX全最短路径算法和scipy floyd warshall算法之间有什么区别?有什么理由选择一个而不是另一个吗?哪一种最快?

(对于那些不知道的人,networkx中提供了numpy-floyd-warshall算法)

floyd_War的networkx应说明:

当Dijkstra算法失败时,Floyd算法适合于在稠密图或负权重图中寻找最短路径。如果存在负循环,该算法仍可能失败。它的运行时间为O(n^3),运行空间为O(n^2)

networkx单源最短路径在稀疏图上效果更好。您应该知道,如果使用各种“最短路径”算法,这些算法会忽略边权重。各种Dijkstra算法都包含了边权重


还有更多的描述。

根据NetworkX的来源,他们正在使用R.Sedgewick的算法,“C语言中的算法,第5部分:图形算法”,Addison-Wesley Professional,第3版,2001年。我比较了scipy和networkx。在随机密集矩阵上测试
numpy.random.index(size=(10001000))
我发现
scipy.sparse.csgraph.floyd\u warshall()
networkx.algorithms.floyd\u warshall\u numpy大约快10倍。另一个函数
networkx.algorithms.floyd_warshall
未在合理时间内完成。