我花了很多时间阅读有关最小生成树的剪切属性的在线演示和教科书。我真的没有得到它想要说明的东西,甚至为什么它是实用的。据说它有助于确定要添加到MST的边缘,但我没有看到它是如何实现的。到目前为止,我对cut属性的理解是你将MST分成两个任意子集。这里有什么帮助?谢谢!
连接图的切割是一组最小边,其去除将图分成两个部分(部分)。最小切割属性表示如果切口的一个边缘的重量小于切口中的任何其他边缘,则它在MST中。要看到这一点,假设有一个不包含边缘的MST。如果我们将边缘添加到MST,我们得到一个与切割相交至少两次的循环,因此我们可以通过从MST移除另一个边缘来打破循环,从而使新的树具有较小的权重,从而与最小化MST。
我想与大家分享我对Cut Property的理解。如果我的帖子有任何改进,请在下面评论,以便我可以修改我的答案。
Background:
为简化起见,假设在图G(V,E)中形成2个单独的MST(T1和T2)。 T1和T2之间还没有连接边缘。
Goal:
我们想要表明,当T1和T2连接时,新生成的树也是MST - 一种最佳解决方案。
>> My Understanding of Cut Property:
在T1和T2之间尚未连接的边缘中,选择最轻的边缘。将其添加到连接T1和T2会产生新的MST - 一种最佳解决方案。
注意:在同一树中连接边会引入一个循环。但树不应该包含一个循环
这个解释所基于的另一个属性。
“对于任何切割,如果有多个边缘穿过切口,那么必须有一个横过切口的周期”
因为MST不包含任何循环,所以不会有任何偶数个边缘穿过切口。
矛盾证明:假设MST不包含最小权重“e”的边缘。如果我们将边缘“e”添加到MST,我们将获得一个至少两次切割的循环。我们可以移除更多重量的其他边缘并打破循环,这导致ST包含较小的称重边缘“e”。这与假设相矛盾。