网络的最小生成树的求解在现实中有广泛的应用
比较典型的方法主要有Prime算法和Kruskal算法
最小生成树相关概念:
带权图:边赋以权值的图称为网或带权图,带权图的生成树也是带权的,生成树T各边的权值总和称为该树的权。
最小生成树(MST):权值最小的生成树。
生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的权值解释为线路的造价。则最小生成树表示使其造价最小的生成树。
MST性质:
设G=(V,E)是一个连通的网络,T=(U,TE)是正在构造的最小生成树。若边(u,v)的顶点u属于U,v属于V-U,即(u,v)是一端在U中,另一端在V-U(即属于V但不属于U)中且边的权值最小的边,则必然存在一棵包含边(u,v)的最小生成树。
证明:
反证法:若G的任意最小生成树T都不包含(u,v ),即当把(u,v)加入T时,会构成回路,表明(u,v)可与T中另一条边互替,这时因为(u,v)权值最小,我们求的又是最小生成树,所以必然选择(u,v),这与假设矛盾。
算法实现
比起文字叙述,大家最好先通过比较