【发布时间】:2016-05-12 15:40:48
【问题描述】:
从给定的邻接矩阵生成可达矩阵的最佳算法是什么。有warshall的算法,但它不是最好的方法。还有一些其他方法,但程序更具理论性。是否有任何模块或我可以轻松创建可达性矩阵。我正在开发 python 2.7。
【问题讨论】:
-
有向图还是无向图?为什么 Floyd-Warshall 的算法“不是最好的”?毫无疑问,那里有很多实现,但是您的图表的更多细节会有所帮助..
-
为什么不是简单的 BFS 或 DFS。
-
@j_random_hacker 邻接矩阵的 n 次方中的条目计算顶点之间长度为 n 的游走数。这通常可能不会收敛。
-
@gilleain 我有一个 KxK 矩阵,其中 K>=10000。对于这样的矩阵,顶点数最少为 10000。warshall 算法的时间复杂度为 O(V^3)。因此,对于这种邻接矩阵,它不是一个好的算法。该图是一个包含循环的有向图。它不一定总是一个连通图。