在图中找到最短的4边循环

时间:2015-04-11 18:13:19

标签: algorithm graph graph-theory

我想找到加权有向图中恰好有4条边的最短周期(最短=边的权重的最小和)。

我知道我可以使用Floyd-Warshall算法在图中找到最短周期here。但我不知道如何找到恰好四边形的最短周期。

1 个答案:

答案 0 :(得分:3)

既然你提到Floyd-Warshall,我认为有一个邻接矩阵不是问题。

让我们这样看:长度为4的循环的形式为a->b->c->d->a。 将其拆分为两对两条边:a->b->cc->d->a

给定邻接矩阵,我们可以使用恰好两条边来轻松计算最短路径矩阵:从xz的最短路径是每个顶点x->y->z的最小值{ {1}}。 如果我们需要呈现周期,而不仅仅是它的长度,也可以存储给出最小值的顶点y

现在,要找到长度为4的最短周期,只需迭代所有可能的对y。 对于每个此类对,我们的最低费用为(a, c)a两个边缘,以及从cc的最低成本。 具有这两个成本的最小总和的那对给了我们期望的周期。

该解决方案在O(n ^ 3)中运行,带有O(n ^ 2)额外的内存。