我想描述一个算法;
设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?
答案 0 :(得分:1)
这个想法与Kruskal的算法相同。
他们的正确性证明:
他们构建的图形包含边缘权重严格小于w_e
的边。如果已经存在从u
到v
的路径,则e
不能位于G的任何MST中,因为e
将是周期中最大的权重边缘。 />
此外,如果还没有从u
到v
的路径,那么我们可以添加e
(如在Kruskal的算法中)并构建包含e
的MST。
在您的情况下:
您会发现图表的MST不包含e
,但边缘的权重为&lt; = w_e
。如果已经存在从u
到v
的路径,则该路径可能包含边缘e&#39}。权重等于e。因此,我们可以将e'
替换为e
并获得MST。因此,您的算法会检查G中的所有 MST中是否存在e
。