使用DFS查找MST的算法

时间:2011-12-09 20:33:27

标签: algorithm graph graph-algorithm depth-first-search

我有以下算法:对于给定的(有限无向简单)图G =(V,E),边上具有正权函数:

  1. 运行DFS(深度优先搜索)直到您发现边缘向后或DFS停止。如果停止,请返回G.
  2. 在由向后边缘构造的圆圈上找到最重的边缘并将其从G中移除。
  3. 返回1.
  4. 现在我需要了解这个算法正在做什么。我已经证明算法给了我一个G的生成树,我相信它是最小的生成树,但我无法证明这一点。请帮我证明一下。

2 个答案:

答案 0 :(得分:1)

看起来您正在执行reverse-delete algorithm的变体,但您仍需要证明您的算法与删除所有不会断开图形的最高加权边缘等效。

答案 1 :(得分:1)

证明,当e是G周期中最重的边缘时,G-e的MST的成本不大于G的MST的成本。(设T为G的MST并使用T并且假设e用构造成本(T')≤成本(T)的G - e的生成树T'。)通过| E |的归纳得出结论。该算法产生一个MST。