最小生成树介绍
最小生成树(Minimum Cost Spanning Tree)是代价最小的连通网的生成树,即该生成树上的边的权值和最小
最小生成树的性质:
必须使用且仅使用连通网中的n-1条边来联结网络中的n个顶点;
不能使用产生回路的边;
各边上的权值的总和达到最小
最小生成树在连通网场景中应用广泛,例如
在n个城市之间建立通信网络,如何建立成本最小的网络
在n个城市之间建立公路网络,如何建立成本最小的网络
应用场景:“村村通”,我国系统工程,全国行政村互通:公路、电力、生活和饮用水、电话网、有线电视网、互联网等等
村村通公路,村村通水气电,村村通5G,村村通宽带
2025年全国基本实现村村通
Prim算法
普里姆(Prim)算法设计
假设N=(V,E)是连通网
TE是N上最小生成树中边的集合
1.U={u0},(u0ÎV), TE={}
2.在所有uÎU,vÎV-U的边(u,v)ÎE中找一条代价最小的边(u,v0)并入集合TE,同时v0并入U
3.重复2,直到U=V
算法示例
普里姆(Prim)算法设计思想:每次找到的最小权值边,一头属于已选顶点U,一头属于未选顶点V-U设置一个辅助数组closedge,用于保存未选顶点的最小权值边closedge,而且这条边的另一个点必然输入已选顶点
推导流程