设G =(V,E)是加权,连通和无向图,让T为最小生成树。设e是不在E中的任何边(并且具有权重W(e))。 证明或反驳: T U {e}是一个边集,其中包含G'=(V,E U {e})的最小生成树。
嗯,这对我来说听起来是对的,所以我决定证明这一点但我每次都被卡住了......
例如,如果e是具有最小权重的新边缘,那么谁可以向我们保证T中的边缘没有以不良的方式被选择,这将阻止我们在没有其他人的“帮助”的情况下获得新的最小权重E - T的边缘?
我将不胜感激, 提前谢谢。
答案 0 :(得分:5)
让 [a(1),a(2),...,a(n-1)] 成为从 E 中选择构造的边缘序列Kruskal算法的 G 的MST(按照它们被选择的顺序 - weight(a(i))&lt; = weight(a(i + 1)))。< / p>
现在让我们考虑一下Kruskal的算法如何表现为输入 E'= E U {e} 。 设 i = min {i:weight(e)&lt;重量(A(I))} 。首先算法决定选择边 [a(1),...,a(i - 1)] ( e 尚未处理,所以它表现为相同)。然后需要决定 e - 如果 e 被删除, E'的解决方案将与 E 。所以让我们假设算法选择的第一个 i 边缘是 [a(1),...,a(i - 1),e] - 我会称之为新的序列 a'。算法继续 - 只要其以下选择(对于j> i)满足 a'(j)= a(j - 1),我们就很酷。有两种情况可以打破这种伟大的连胜(让我们说在指数 k + 1 时条纹断裂):
1)算法选择一些不在 T 中的边e',并且 weight(e')&lt;重量(第(k + 1))。现在 a'序列是:
[a(1),...,a(i-1),e,a(i),a(i + 1),...,a(k-1),a( k),e']
但如果可以将 e'附加到此列表中,也可以将其附加到 [a(1),...,a(k-1) ,a(k)] 。但是,当为 G 寻找MST时,Kruskal的算法没有这样做。这导致了矛盾。
2)礼貌选择的算法:
[a(1),...,a(i-1),e,a(i),a(i + 1),...,a(k-1),a( K)]
但决定放弃边缘 a(k + 1)。但如果列表算法中没有 e ,则决定附加 a(k + 1)。这意味着在图形(V,{a(1),...,a(k)})边缘 a(k + 1)将连接相同的组件作为边缘 e 。这意味着,在 G 和 G'的情况下,通过算法边缘 a(k + 1)进行考虑后,划分为连通分量(由一组选定边确定)是相同的。因此,在处理 a(k + 1)算法后,在两种情况下都将以相同的方式进行。
答案 1 :(得分:2)
如果在没有添加节点的情况下将边添加到图中,则该边在图的最小生成树中创建循环,循环长度可以在2到n之间变化,其中n =图中的节点no。 T = G的最小生成树 现在要找到(T +添加边缘)的MST,我们必须从该循环中移除一条边..所以移除具有最大权重的边缘。
所以T'总是来自T U {e}。
如果你认为这并不能证明新的MST将是T U {e}的边缘集,那么分析Kruskal算法以获得新图。即,如果e是最小重量,则必须根据Kruskal算法选择MST,如果最小则不能从循环中移除。