归纳法证明prim算法

1. 选择第一个边的时候,选择的是权值最小的边,显然,该边是最优解的一部分


否则,我们将该边加到最小生成树中,则形成回路,让该边取代回路中比这个最小边权值大的边,仍然得到最生成树,但该生成树比所得到的最小生成树还要小,这与假设矛盾


因此第一次选取的最小边,一定是最小生成树的一部分;


2.现在我们假设选取的前s边是最小生成树的一部分,这些边连接的节点记做n1,n2,...,ns-1

按照prim算法,我们将选择和这s-1个点相连的所有边中的最小边,作为下一个确定的最优边,我们仍然用反证法证明,这种选取方法确实是最优边。

设未确定最小边相连的已确定节点是nk,假设不是,那么,该未确定最小边一定和最小生成树构成回路,该回路某一边一定和n1,n2,...,ns-1中的两点相交,其中一点是nk,另一点设为ni,该回路中比存在与ni相邻的一条边比该未确定最小边大,用该未确定最小边代替这个比它大的这个边,结果仍然是生成树,该生成树比最小生成树还要小,这是矛盾的,因此,该未确定最小边一定是最优边。


3.综上,prim算法成立


注记:最小生成树不是唯一的,这在prim算法中,某个步骤会出现多个相同的未确定最小边,这时候,最小边选取不同,可能导致最小生成树不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值