Prim算法正确性

prim算法正确性证明:

证明:令无向图为 G = ( V , E ) G = (\mathbf{V},\mathbf{E}) G=(V,E),其中 V = { v 1 , v 2 , … , v n } \mathbf{V} = \{v_1,v_2,\dots,v_n\} V={v1,v2,,vn}, E = { e 1 , e 2 , … , e m } \mathbf{E} =\{e_1,e_2,\dots,e_m\} E={e1,e2,,em},其生成树为 G ′ = ( V , E ′ ) G'=(\mathbf{V},\mathbf{E}') G=(V,E),其中 E ′ = { e t 1 , e t 2 , … , e t n − 1 } \mathbf{E}'=\{e_{t_1},e_{t_2},\dots,e_{t_{n-1}}\} E={et1,et2,,etn1},且 G ′ G^′ G 为连通无环图。
(贪心选择性质)
不失一般性,令起始点为 v 1 v_1 v1 ,贪心选择策略是找到与 v 1 v_1 v1连接边最短的节点,以及相应的边的点记为 v a v_a va,相应的边为 e b = ( v 1 , v a ) e_b=(v_1,v_a) eb=(v1,va),现证明 e b e_b eb包括在某个最优解中。
G ′ G' G为一棵最小生成树,若 e b e_b eb已经在最小生成子树中,则证明了贪心选择性质。若其中不包括 e b e_b eb,则将 e b e_b eb加入 G ′ G' G中,将形成一个环,不考虑该环之外的节点,每个节点的度刚好为2,令该环中与 v 1 v_1 v1相关的另一条边为 e c e_c ec,则删除 e c e_c ec后,获得另一棵生成树 G ′ ′ G'' G′′,由于 w ( e b ) ≤ w ( e c ) w(e_b)\le w(e_c) w(eb)w(ec) G ′ ′ G'' G′′也一定为一棵最小生成树。
(最优子结构性质)
不失一般性, 令某棵最小生成树 T 1 T_1 T1中, 权值最小的边 e 1 e_1 e1连接的两个节点设为 v a v_a va v b v_b vb,在原图 G G G中去除边 e 1 e_1 e1,合并 v a v_a va v b v_b vb,令 V ′ = { v 1 , v 2 , … , v n − 1 } \mathbf{V'}=\{v_1,v_2,\dots,v_{n-1}\} V={v1,v2,,vn1},将节点 v a v_a va v b v_b vb合并后节点设为 v c v_c vc,对于 G G G中同时和 v a v_a va v b v_b vb相连的边,选择其中权值最小的边与合并的 v c v_c vc相连,得到新的子图 G ′ G' G,现需证明 G G G的最小生成树 T 1 T_1 T1包含图 G ′ G' G的生成树 T 1 ′ T_1' T1是图 G ′ G' G的最小生成树。
假设 G ′ G' G的最小生成子树不是 T 1 ′ T_1' T1,则存在另外一棵生成树 T 1 ′ ′ T_1'' T1′′。即 W ( T 1 ′ ′ ) < W ( T 1 ′ ) W(T_1'') < W(T_1') W(T1′′)<W(T1),将 T 2 T_2 T2的点 v c v_c vc分裂成点 v 1 v_1 v1 v 2 v_2 v2 ,以边 e 1 = ( v 1 , v 2 ) e_1=(v_1,v_2) e1=(v1,v2)相连,则得到图 G G G的一棵生成树 T ′ T' T,有
W ( T ′ ) = W ( T 1 ′ ′ ) + w ( e 1 ) < W ( T 1 ′ ) + w ( e 1 ) W(T')=W(T_1'')+w(e_1)<W(T_1')+w(e_1) W(T)=W(T1′′)+w(e1)<W(T1)+w(e1)
这与假设中的 T 1 T_1 T1为最优最小生成树矛盾。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值