【发布时间】:2012-05-31 13:58:36
【问题描述】:
在 Dijkstra 的最短路径算法和其他算法中,检查边以查看它是否提供到节点的更好路径被称为松弛边。为什么叫放松?
【问题讨论】:
标签: dijkstra bellman-ford
在 Dijkstra 的最短路径算法和其他算法中,检查边以查看它是否提供到节点的更好路径被称为松弛边。为什么叫放松?
【问题讨论】:
标签: dijkstra bellman-ford
一般来说,放松是在进行一种减少约束的改变。当 Dijkstra 算法检查一条边时,它会从池中删除一条边,从而减少约束的数量。
这不是非常有用的术语,但想想你说出来会多么酷。
【讨论】:
coming into it而是leaving it?
我认为这个问题与当前接受的答案中谈到的数学概念无关。我的答案基于 Cormen (CLRS) 的书的第二版,特别是第 24 章关于放松的部分。
上下文: 您正在搜索节点 s 和所有其他节点之间的最短路径。假设您有两个节点 u 和 v。您已经为他们准备了一条中间路径。
relax(u,v) 是一个函数,应该读作“使用 u 放松 v ”。我更喜欢将函数理解为“使用 u 缩短 v 到 s 的距离”。您在问自己是否应该放弃当前的路径 s-v 转而将其转换为 s-u-v。你所要做的就是看看 s-u 的距离加上箭头 u-v 的额外成本是否优于 s-v 的距离。图片举例说明 功能
【讨论】: