线性时间内有向无环未加权图的最长路径

时间:2013-01-31 10:36:57

标签: graph directed-acyclic-graphs

如何在线性时间内找到图中最长的路径,如下所示:

3 - > 2

4 - > 3

2 - > 5

我知道这里最长的路径是4 - > 3 - > 2所以它有3个veticles但我不知道如何在O(N)时间找到它。请帮忙。 提前谢谢你。

1 个答案:

答案 0 :(得分:0)

对图表进行排序,并按拓扑排序顺序选择顶点。

For each vertex u
    For each edge (u,v)
       if(d[v] < d[u] + weight(u,v))
          d[v] = d[u] + weight(u,v) 

其中,对于任何顶点u,d [u]是距离源最远的距离。对于每个顶点u,d [u]初始化为最小值,d [source] = 0。

由于它是DAG,因此我们只需要遍历和放松每个边缘一次。它基本上简化了Bellman Ford算法的最长路径。