Kruskal算法的正确性证明

(1)算法说明:
输入图G=(V,E,W), V={1,2,…,n} ; 输出图G的最小生成树T
设计思想:按照长度从小到大对边排序;依次考察当前最短边e,如果e与T的边不构成回路,则把e加入树T,否则跳过e直到选择了n-1条边为止。
(2)证明思路:
命题:对于任意n,算法对n阶图找到一棵最小生成树
归纳基础:证明n=2时算法正确
归纳步骤:
证明:假设算法对于n阶图是正确的,其中n>1,则对于任何n+1阶图算法也得到一棵最小生成树
(3)证明
①、归纳基础证明:
n=2时,图G只有一条边,显然当前最短边即为此边,故而图G的最小生成树就是G本身
②、归纳步骤证明:
已知算法对于n阶图正确,对于n+1个顶点的图G,短接最短边e,则获得n阶图G’,由已知假设可得G’的最小生成树为T’,再去除短接操作,将被短接的边e恢复原来长度,获得树T;
如果T不是G的最小生成树,则应当存在G的含边e的最小生成树T*,那么对T短接获得G’对生成树T-{e},那么此时应当有
W(T*-{e})= W(T*)-w(e)< W(T)-w(e)=W(T’)
显然,这与T’是G’的最小生成树矛盾,所以T*不存在,即T就是G的最小生成树,所以算法对n+1阶图成立
③、综上所述,对于任意n,算法对n阶图找到一棵最小生成树
(4)短接操作说明
任意n+1个顶点的图G,G中最小权边e={i,j},从G中短接i和j,得到图G’
在这里插入图片描述
如图所示,进行短接操作后的变化

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值