将单个边添加到给定图形是否会创建新的最短路径?

时间:2015-05-29 17:20:08

标签: algorithm graph path-finding

假设我有一个带有起始节点A和结束节点C的有向图,我已经知道该图中从A到C的最短路径长度为< n,并使用节点A,B < sub> 0 ,B 1 ,...,B n-2 ,C。

我想知道在此图表中添加给定的新边是否会创建从A到C的长度为{{1}}的新的最短路径。当然,我可以简单地使用Dijkstra的算法来检查这个新图中的最短路径,但我的问题是,我们对图中中没有这个新边缘的最短路径的信息是否可以以某种方式使用更有效地解决这个问题?

1 个答案:

答案 0 :(得分:2)

添加新边(u,v),您需要检查三角不等式是否成立:

d(v) < d(u) + w(u,v)

如果是,则没有新的最短路径。

否则,您有一条从源(A)到v的新最短路径,这会使权重大于新d(v)的所有最短路径无效。