“正确性不变量是 $F$ 包含于某棵最小生成树。设下一条边 $e$ 跨当前割,取一棵包含 $F$ 的 MST $T$。若 $e\notin T$,把 $e$ 加入 $T$ 会形成圈,圈上另有一…”
形式陈述 ​
设
最小者。有限连通图至少有一棵生成树,候选数量有限,所以即使含负权边也总能达到最小值。
MST 贪心证明围绕两条交换性质展开。若边集
对任意圈,若边
Prim 算法维护一棵树并反复取跨当前割的轻边;Kruskal 算法按全局边序合并森林;Borůvka 算法让每个分量同时选最轻出边。三者实现同一问题,但中间状态与复杂度模型不同。
直觉
生成树从原图删除所有环,却保留全部顶点之间的连通性;MST 再在这些骨架中比较边权总和。割性质从“任何连接方案都必须跨过这道边界”寻找可加入边,环性质从“圈上总有一条边可以删”寻找可排除边。两者是同一个交换动作的正反视角。
目标函数只把所选边各计一次,不关心某条边会出现在多少对顶点的树路径中。因此一棵总造价最小的网络骨架,未必给任何指定根提供最短路线,也不自动具有冗余或容错能力。
例子与边界
三角形的边权为
负权边不会导致无界下降,因为任何生成树固定只含
图不连通时不存在覆盖全部顶点的生成树。对每个连通分量分别最小化,得到最小生成森林;若有
MST 与最短路在非负权图上仍可不同。若
推论与应用
在网络布线中,边权可表示铺设一段链路的成本,MST 给出无冗余连通骨架;若系统还要求故障容错,就要增加边连通约束,MST 本身不够。单链接聚类按边权从小到大合并分量,截断 Kruskal 过程可得到指定簇数;这一解释依赖权重是可比较的不相似度。
任意 MST 也是最小瓶颈生成树:若有另一棵树的最大边更轻,可在 MST 最大边诱导的割上找到更轻替换边,矛盾;最小瓶颈树反过来未必最小化总权。边权更新后,删除一条树边需要在新割上寻找替代边,动态 MSF因此是另一个带更新接口的问题,静态交换性质只提供正确性工具,不给出更新时间界。
参考资料
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, Introduction to Algorithms, 4th ed., MIT Press, 2022,Ch. 21, minimum spanning trees and cut property。
- Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005,§§4.5–4.6。