最小生成树

本文深入探讨了最小生成树(MST)的概念及其性质,包括MST的定义、引理和定理。同时,详细介绍了Prim算法的工作原理,如何通过贪心策略逐步构建最小生成树。Prim算法涉及三种点的状态,从一个初始点开始,逐步将权值最小的边纳入生成树,直至所有点都被包含。最后,文章讨论了算法的终止条件和验证最小生成树的方法。
摘要由CSDN通过智能技术生成

minimum spanning tree,MST

MST性质:

设一个带权无向图G(V,E,W) (V代表点集,E代表边集,W代表权值集),且T为G的一颗生成树,对于E中任意一条不属于T的边e,将其加入T中,会产生一条环(否则T不连通),如果e始终是环中权值最大的一条边,那么说明T满足MST性质。

引理1:

对于图G(V,E,W)的两颗生成树T1和T2,若它们都满足MST性质,则它们的权值和相同

定理1:

一颗生成树T是最小生成树,当且仅当它满足MST性质

Prim算法:
Prim算法基于一种贪心的思想,通过局部最优策略,每次将一条边加入所构建的生成树中,加完n-1条边后,保证最后所得的生成树是整体最优的,即最小生成树。

Prim算法将图中的每个点分成三种状态:
第一种tree点,表示该点已经在所构造的生成树中。
第二种fringe点,表示还没在树中,但是和Tree点相邻(有一条边直接相连),是即将要加入生成树中的候选点。
第三种unseen点,其他的点,表示还没有检测到的点。

那么Prim算法步骤为:

1:初始时将所有点初始化成unseen,并且随机将一个点S设为tree点(如1号点)。
2:将所有与S相邻的点设为fringe。
3:如果图中还存在fringe点,则到4,否则到6。
4:在所有连接一个fringe点和一个tree点的边中,取权值最小的边e(u,v),不妨设u为tree点,v为fringe点,将v点设为tree点。
5:将所有与v相邻的unseen点设为fringe,并将e加入到构建的生成树中。转到3。
6 :  如果图中所有点均为tree点,则图的一个最小生成树找到。否则原图不存在最小生成树。
7:算法结束。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值