包含边

时间:2016-07-05 10:56:40

标签: algorithm tree

我想描述一个算法;

设G是加权的,被描述的图。给定边缘'e',是否存在包含此e边缘的MST?

  

我做了什么:我建立了一个图表:

     

G'=(V,E') | E={e'|e' -in E\{e} ,w(e')=< w(e)}

     

现在我只是找到使用DFS或BFS从u到v(u和v是边e的两边)的路径

他们所做的是相同的但是有了这个改变:

G'=(V,E')| E = {e'| e'-in E,w(e')&lt;瓦特(E)}`

我仍然无法理解算法是如何真实的?为什么他们不从E中排除e?

1 个答案:

答案 0 :(得分:1)

这个想法与Kruskal的算法相同。

他们的正确性证明:
他们构建的图形包含边缘权重严格小于w_e的边。如果已经存在从uv的路径,则e不能位于G的任何MST中,因为e将是周期中最大的权重边缘。 /> 此外,如果还没有从uv的路径,那么我们可以添加e(如在Kruskal的算法中)并构建包含e的MST。

在您的情况下:
您会发现图表的MST不包含e,但边缘的权重为&lt; = w_e。如果已经存在从uv的路径,则该路径可能包含边缘e&#39}。权重等于e。因此,我们可以将e'替换为e并获得MST。因此,您的算法会检查G中的所有 MST中是否存在e