我正在阅读CLRS中的最小生成树,并且遇到了以下推论,这是计算最小生成树的算法的基础:
推论23.2
设G =(V,E)是一个连通的无向图,其中实数值权函数w在E上定义。设A是E的一个子集,包含在某个最小值中 G的生成树,并且C =(V_C,E_C)是森林中的连通分量(树)G_A =(V,A)。如果(u,v)是将C连接到G_A中的某个其他组件的轻型边缘,那么(u,v)对于A是安全的。
证明剪切(V_C,V-V_C)表示A,而(u,v)是此剪辑的亮边。因此,对A来说是安全的。
我发现有些不一致。为什么?让我告诉你:
这些是从相同推论中复制的语句及其在文本中的证明:
陈述1 - G_A =(V,A)
声明2 - (u,v)是将C连接到G_A中的其他组件的亮边。
陈述3 - 削减(V_C,V - V_C)尊重A
陈述4 - (u,v)是这种切割的轻微边缘。
陈述1和2暗示(u,v)在A
中证明
出于矛盾的目的,我们假设它不属于A.由于(u,v)连接图 G_A 的两个分量,它必须是图G_A中的边。由于边缘集在图G_A中由A给出,它必须属于A,这与我们的假设相矛盾。
现在引理1暗示(u,v)属于A.陈述3暗示了切割方面(u,v),这进一步暗示(u,v)不能越过切割。由于它不能越过切口,因此它不能与声明4相矛盾。
这是否意味着算法不正确。根据我的说法,G_A应该改为G.我错了吗?
那么Edge应该属于E,因为它不能是光的任何边缘。假设我们有E的边集F超集,它包含比(u,v)更轻的边。比完成时我们将有MST没有跨越G.已经附上一个例子来澄清声明。转到Example。对不起影子。 Stack Overflow没有上传图片 - 我尝试了很多次。
因此,为了澄清目的,最后一行推论是否应该更改为(u,v)属于E并且是G_A的轻微边缘?