[英]Why can't we use BFS with modifications to find shortest paths in weighted graphs
在非加权图中,下图中从 A 到 C 的最短路径不可能经过 B。
A ----- B
\ /
\ /
\ /
C
这就是为什么在非加权图中,只用一条边扩展当前搜索路径就足够了:在第一个循环中,我们查看 AB 和 AC 并确定我们已经命中 C,因此 AC 是最短路径。
对于加权图,这种工作方式可能会导致错误的结果。 以下是一些权重:
A --1-- B
\ /
3 1
\ /
C
这里路径 AB 和 AC 也是候选路径(就像在未加权图中),但是一旦访问了 AB,优先级队列将收到 BC(作为 AB 的扩展),并且该路径将优先于 AC! 这是在未加权图中永远不会发生的情况,因此优先级队列仅在处理加权图时才有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.