Floyd Warshall 有约束

Floyd Warshall with constraints

我想知道是否可以使用带约束的 floyd warshall 意味着假设您有一组大小为 logn 的“特殊顶点”并且您想要计算所有最短路径但每条路径必须至少经过一个“特殊顶点”这甚至是可能的还是很难 np

是的,您甚至可以将 Floyd–Warshall 算法用作黑盒,并结合 post 处理步骤来实现此目的。

首先,使用 Floyd–Warshall 算法计算每对顶点之间的最短路径。然后,对于每对顶点 uv 以及每个特殊顶点 w,计算两条最短路径的总和,即从 uw 和从 wv 的那个。从 uv 的约束最短路径由特殊顶点 w 实现,该顶点最小化 u-w 路径的长度和 w-v 路径的长度。

由于特殊顶点的个数显然最多n,所以post-处理步骤的计算复杂度为O(n^3)。因为Floyd-Warshall算法的计算复杂度也是O(n^3),所以这个算法的总计算复杂度是O(n^3).