【发布时间】:2012-11-26 23:39:16
【问题描述】:
对于一个作业,我被要求找到一种算法,该算法使用 O(n 4 ) 时间计算有向图的传递闭包。我们已经了解了 floyd warshall 算法,它要好得多,所以有人可以帮我创建一个在 O(n4) 时间内运行的算法吗?有这样的算法吗?
我知道这似乎是一个愚蠢的问题。我真的不明白为什么我们被要求找到更慢的方法来做到这一点。
【问题讨论】:
-
为图定义传递闭包。你是说
Q = { (u,v) | (u,v) is an edge OR there is w such that (u,w),(w,v) is in Q }吗? -
T^(k)=t^(k)_ij 是一个 n × n 位矩阵,其中 t^(k)_ij = 1 如果存在从 i 到 j 的路径,其中中间顶点来自 {1, 2, . . . , k};否则,t^(k)_ij = 0. 是我使用的。
-
等一下,你是否试图真正实现一组三元组
(i,j,k),其中(i,j,k)在T中当且仅当从 i 到 j 存在任何路径(可能不是最短的)长度为 k?这是一个与我最初想的不同的问题,你不关心路径的长度 - 只关心它的存在。如果是这样 - 问题可以从哈密顿路径问题中减少,并且没有已知的多项式解决方案。你能澄清一下吗? -
我正在寻找以下解决方案。不寻找一组三元组
-
我只是想我会注意到您缺少大写和标点符号是一种关闭。您是一个解决难题的聪明人,请帮自己一个忙,不要让自己暴露在语言选择所带来的刻板印象中。
标签: algorithm time-complexity floyd-warshall