【问题标题】:What is the relaxation condition in graph theory图论中的松弛条件是什么
【发布时间】:2011-02-05 06:32:10
【问题描述】:

我试图理解图论的主要概念和其中的算法。大多数算法似乎都包含一个“松弛条件”,我不确定这是什么。

请有人向我解释一下。

dijkstras 算法就是一个例子,这里是伪代码。

 1  function Dijkstra(Graph, source):
 2      for each vertex v in Graph:           // Initializations
 3          dist[v] := infinity               // Unknown distance function from source to v
 4          previous[v] := undefined          // Previous node in optimal path from source
 5      dist[source] := 0                     // Distance from source to source
 6      Q := the set of all nodes in Graph
    // All nodes in the graph are unoptimized - thus are in Q
 7      while Q is not empty:                 // The main loop
 8          u := vertex in Q with smallest dist[]
 9          if dist[u] = infinity:
 10              break                         // all remaining vertices are inaccessible from source
 11          remove u from Q
 12          for each neighbor v of u:         // where v has not yet been removed from Q.
 13              alt := dist[u] + dist_between(u, v)
 14              if alt < dist[v]:             // Relax (u,v,a)
 15                  dist[v] := alt
 16                  previous[v] := u
 17      return dist[]

谢谢

【问题讨论】:

    标签: graph graph-theory conditional-statements


    【解决方案1】:

    放松步:

    • 您有两个节点,uv
    • 对于每个节点,您与源节点之间都有一个暂定距离(对于除源之外的所有节点,它从正无穷开始,直到达到最小值为止)。李>

    放松步骤基本上是这样问的:

    • 我已经知道我可以通过一些距离dist[v] 的路径到达v。我可以通过vu 来改进这一点吗? (后者的距离为dist[u] + weight(u, v)

    图形化:

    s ~~~~~~~> v
     \         ^
      \        |
       \~~~~~> u
    

    你知道一些路径s~&gt;v,它的距离是dist[v],你知道一些路径s~&gt;u,它的距离是dist[u]。如果dist[u] + weight(u, v) &lt; dist[v],那么路径s~&gt;u-&gt;vs~&gt;v短,所以你最好用那个!

    (我写a~&gt;b 表示从ab任何 长度的路径,而a-&gt;b 我的意思是从ab 的直接单边)。

    您可能还想查看此讲座:http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/VideoLectures/detail/embed17.htm

    【讨论】:

    • 很高兴听到(希望我没有将您与错别字混淆,现在已修复)。如果您认为是,您也可以按左侧的勾号将其标记为正确答案(我当然认为是:))
    【解决方案2】:

    英文单词“relaxation”的一个意思是减少某事。因为在第 14,15 和 16 行,您实际上是在检查是否可以减少(优化)当前计算的距离,我想这就是为什么它被称为“松弛条件”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2020-11-14
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多