如果仅有起始节点的边具有负权值,那么Dijkstra算法是否仍然有效?
我认为是有效的,因为我无法想到反例,但我很难证明。是否存在反例?
对于Dijkstra算法而言,负权边是一个问题,因为不能保证选择的边会产生最短路径,如果后面有一条较大的负权边可选。但如果仅有起始节点的边具有负权值,我不认为有问题。
我不是在寻找一个算法,而是在寻找有关Dijkstra算法的见解。
我谈论的是一个有向图,如果有区别的话。
如果仅有起始节点的边具有负权值,那么Dijkstra算法是否仍然有效?
我认为是有效的,因为我无法想到反例,但我很难证明。是否存在反例?
对于Dijkstra算法而言,负权边是一个问题,因为不能保证选择的边会产生最短路径,如果后面有一条较大的负权边可选。但如果仅有起始节点的边具有负权值,我不认为有问题。
我不是在寻找一个算法,而是在寻找有关Dijkstra算法的见解。
我谈论的是一个有向图,如果有区别的话。
反例:
图 G = (V, E),其中 V = {A, B},边 E = {(A, B), (B, A)},权重函数 w(A, B) = -2,w(B, A) = +1。
存在负权环,因此无法确定最小距离(即使以 A 作为起始节点)。
Dijkstra算法不能正确处理带有负边权的图(即使该图没有任何负权重环)。例如,对于以下以源顶点A为起点的图,它计算出了(A,C)之间不正确的最短路径值。
A -> B : 6
A -> C : 5
B -> D : 2
B -> E : 1
D -> E : -5
E -> C : -2