为什么我们称之为“放松”的优势?

时间:2012-05-24 23:38:15

标签: dijkstra bellman-ford

在Dijkstra的最短路径算法和其他算法中,检查边缘以查看它是否提供更好的节点路径被称为放松边缘。为什么叫做放松?

2 个答案:

答案 0 :(得分:36)

通常在数学上,放松正在进行减少约束的更改。当Dijkstra算法检查边缘时,它会从池中删除边缘,从而减少约束的数量。

这不是非常有用的术语,但想想你会说它有多酷。

答案 1 :(得分:1)

我不认为这个问题与当前接受的答案中谈到的数学概念有关。我的答案基于Cormen的第二版(CLRS),特别是关于放松的第24章。

上下文: 您正在搜索节点 s 与所有其他节点之间的最短路径。想象一下,您有两个节点 u v 。你已经有了一条中间路径。

放松(u,v)功能,应该被理解为&#34;使用 u <放松 v /强>&#34 ;.我更喜欢将功能理解为&#34;使用 u &#34;缩短 v s 的距离。你问自己是否应该放弃当前的路径 s-v ,转而将其转换为 s-u-v 。您只需要查看 s-u 的距离加上箭头 u-v 的额外费用是否优于 s-v 的距离。图片举例说明了 功能

A picture from CLRS's explanation on Relaxation