简短回答:是的,您的陈述在有向图中是正确的
在无向图G 中,反转G' 将产生相同的图G,因此,当您找到从源顶点s 到所有其他顶点的最短距离时,您会自动找到从所有顶点到s 的最短路径,因为图形可以反向遍历(无向)。
在有向图中,当您找到从s(源)到所有其他顶点(目的地)的最短路径时,您将沿着单一方向行驶,从source--->destination_1,从@987654330 @--->destination_2,来自source--->destination_3...
因此,如果您反转图表中的所有方向,所有最短路径将是:到source<---destination_1,到source<---destination_2,到source<--- destination_3 ... 请注意这些路径将与以前不同 即当您在G' 上运行Dijkstras 时,算法认为它正在寻找从s 到的最短路径所有d,而实际上,由于您颠倒了方向,因此最短路径箭头实际上指向相反方向,从而为我们提供了从所有d 到s 的最短路径,而不是从s 到@ 987654352@的。
Graph G:
7 +++++
//===>===>====>/ D2 /
// +++++
// /--<<---<--/ /|\
s <--- 2 | 1
\\ \__<<___ |
\\ 9 \ |
\\ \ +++++
\\===>=====>/ D1 /
10 +++++
Graph G':
7 +++++
/----<----<---</ D2 /
/ +++++
/ //==>>====>==/ ||
s >=== 2 || 1
\ \__>>___ ||
\ 9 \ \||/
\ \ +++++
\---<------</ D1 /
1 +++++
如上所示,在 G 中,从 s 到 d1 的最短路径是 s -> d1,从 s 到 d2 是 s -> d2(以双线显示 (=, @ 987654361@, //))。
在反转方向时,但不是权重(显然),我们看到从 s 到 d1 的最短路径是 s -> d2 -> d1 和从 s 到 d2 的最短路径是 s -> d2 Djikstras 算法的输出。
如果您现在将方向设置为原来的方向,显然所有选择的路径实际上都是最短路径到 s 而不是来自s。
Graph G:
7 +++++
/---->---->--->/ D2 /
/ +++++
/ //==<<===<==/ /||\
s <=== 2 || 1
\ \__<<___ ||
\ 9 \ ||
\ \ +++++
\--->------>/ D1 /
1 +++++
P.S.:我知道演示文稿不是那么好。对不起。