【发布时间】:2019-03-12 10:18:26
【问题描述】:
假设给定一个有向图G = (V, E),它具有潜在的正边和负边长度,但没有负循环。让s ∈ V 成为给定的来源
顶点。如果从 s 到任何其他顶点的最短路径至多为k edges,如何设计一个及时运行的单源最短路径问题算法O(k(|V | + |E|))?
【问题讨论】:
标签: algorithm graph graph-algorithm directed-graph
假设给定一个有向图G = (V, E),它具有潜在的正边和负边长度,但没有负循环。让s ∈ V 成为给定的来源
顶点。如果从 s 到任何其他顶点的最短路径至多为k edges,如何设计一个及时运行的单源最短路径问题算法O(k(|V | + |E|))?
【问题讨论】:
标签: algorithm graph graph-algorithm directed-graph
这里的 O(k(|V | + |E|)) 方法:
因为任何 s-u 最短路径最多有 k 条边,所以我们可以在边上 k 次迭代后结束算法
伪代码:
对于顶点中的每个顶点 v:
D[v] := +ooD[s] = 0
重复k次:
对于边中权重为 w 的每个边 (u, v):
如果 D[u] + w D[v] = D[u] + w
【讨论】: