K负边缘 - 单源最短路径

时间:2013-07-03 16:32:00

标签: algorithm dijkstra

当使用dijkstra只有一个负边缘时,我设法解决了找到所有单源最短路径的问题。

现在我正试图面对一个新问题,如果只有使用dijkstra的K个负边缘,那么如何找到来自给定源的所有最短路径(Not bellman ford)。 (k是已知的)。

无法想到一个好方法。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果它是一个非方向图,则没有单一的最短路径,因为即使只有一个负边,你也可以在该负边上来回走动并拥有无穷多的负无穷大路径。

但是,假设没有负循环的方向图,您可以使用广度优先搜索并跟踪您已经命中的负边和到目前为止您发现的每个节点的最短路径。如果你看到一个你已经访问过的节点,那么你只会再去那里,如果它比你前往那里的路径更好。

由于没有负循环,算法必须终止。算法终止后,目标节点应具有用于到达目标节点的最佳路径。