2016-07-26 128 views
0

有一个有向图G = [V ; E],边的权值为w(u, v)(u, v) ∈ E找到有向图的最短路径

假设值{d[v], π[v]}; v ∈ V并声称

,这些都是最短路径的长度和

v ∈ V前身节点,我怎么能验证,如果这个说法是真的还是假的,做没有从头开始解决整个最短路径问题?这是一个问题,我遇到了我的脑袋没有太多的想法..

回答

0

的问题是有点不清楚,但澄清:

有一个在你的图形中的节点s,并且对于每个顶点v

  1. v != spi[v]旨在是相邻v节点这是从vs的最短路径上。
  2. d[v]旨在存储从vs的最短距离。

问题是验证pid,他们合法地包含后缘和最小距离。

用于验证这样的一个容易实施的条件如下:

For each vertex v 
    Either: 
     v = s and d[v] = 0 
    Or: 
    d[pi[v]] = d[v] - 1 
    d[u] >= d[v] - 1 for each u adjacent to v 
    pi[v] is adjacent to v 

此检查运行在O(V + E)的时间。

+1

你是在算法问题杀死狂欢:( – Yerken

+0

你能指导我更多描述为您的解决方案?:) –

+0

这里是一个证明提示:让d'是图上的真正的距离函数。通过在d'[v]上的归纳证明d [v] = d'[v]并且pi [v]是与v相比更接近s的v的顶点。 –