在图中寻找最小生成树 (MST)?

问题描述

给定一个无向图 G,其边上有权重和 2 个 different 最小生成树:T,T'

那么我想证明以下几点:

对于 T 中不在 T' 中的每条边 e,在 T' 中都有一条边 e' 这不在 T 中,如果我们在 T 中用 e 替换 e'(让我们调用 它 T_new) 那么它仍然是 G 的最小生成树。

我想我离找到合适的算法太近了,但有点卡住了:

  1. 我已经证明 weight(e) 必须完全等于 weight(e')

  2. 由于 T 是一棵树,删除 e 将导致 2 个分离的组件,那么对于 T_new 是一棵树,它必须使用连接来自这些不同组件的两个顶点的边之一。

但是,我不知道哪条边 e' 会起作用。另外,我无法证明总是有这样的优势(我刚刚发现了一些必须满足的 e' 要求)。

一些注意事项:我知道 Kruskal 算法,并且熟悉一种算法,在该算法中我们可以将一些边缘绘制为黄色并请求它生成具有最大黄色边缘的最小生成树(换句话说,从所有找到的最小生成树中返回一个最大数量的黄色边缘)

解决方法

T1T2T \ {e} 的两个连通分量。考虑在 P 中加入 e 端点的路径 T'。由于e连接T1T2,所以P也是如此,因此在e'中存在连接{{1}的边P } 和 T1。边缘 T2 不能比 e' 亮,否则 e 不会是最小值 (T)。边缘 T \ {e} U {e'} 不能比 e' 重,否则 e 不会是最小值 (T')。