如何解决在图中寻找最小生成树 (MST)?
给定一个无向图 G
,其边上有权重和 2 个 different
最小生成树:T,T'
那么我想证明以下几点:
对于 T 中不在 T' 中的每条边 e
,在 T' 中都有一条边 e'
这不在 T 中,如果我们在 T 中用 e
替换 e'
(让我们调用
它 T_new) 那么它仍然是 G
的最小生成树。
我想我离找到合适的算法太近了,但有点卡住了:
-
我已经证明
weight(e)
必须完全等于weight(e')
。 -
由于 T 是一棵树,删除 e 将导致 2 个分离的组件,那么对于 T_new 是一棵树,它必须使用连接来自这些不同组件的两个顶点的边之一。
但是,我不知道哪条边 e'
会起作用。另外,我无法证明总是有这样的优势(我刚刚发现了一些必须满足的 e'
要求)。
一些注意事项:我知道 Kruskal 算法,并且熟悉一种算法,在该算法中我们可以将一些边缘绘制为黄色并请求它生成具有最大黄色边缘的最小生成树(换句话说,从所有找到的最小生成树中返回一个最大数量的黄色边缘)
解决方法
设 T1
和 T2
是 T \ {e}
的两个连通分量。考虑在 P
中加入 e
端点的路径 T'
。由于e
连接T1
和T2
,所以P
也是如此,因此在e'
中存在连接{{1}的边P
} 和 T1
。边缘 T2
不能比 e'
亮,否则 e
不会是最小值 (T
)。边缘 T \ {e} U {e'}
不能比 e'
重,否则 e
不会是最小值 (T'
)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。