一、最小生成树(Minimum Spanning Tree)是什么?
1️⃣ 图论基础回顾
我们先明确研究对象:
- 无向图
- 连通
- 带权图
设图 (G = (V, E))
- (V):点集,(|V| = n)
- (E):边集,(|E| = m)
- 每条边有权值 (w)
2️⃣ 生成树(Spanning Tree)
定义
一棵 生成树 满足:
- 包含图中 所有顶点
- 是一棵 树
- 连通
- 无环
- 边数一定是: \[ |E| = n - 1 \]
👉 一个连通图可能有 很多棵生成树
3️⃣ 最小生成树(MST)
定义
在 所有生成树 中,边权之和最小 的那一棵,称为:
最小生成树(Minimum Spanning Tree)
形式化
令生成树 (T\subseteq E),使得:
\[ \sum_{e\in T} w(e) \]
取得最小值。
4️⃣ MST 的性质(非常重要)
性质 1:边数固定
- 任意 MST 的边数 = (n-1)
性质 2:权值可能不唯一
- MST 不一定唯一
- 但 最小权值和一定唯一
性质 3:局部最优 → 全局最优
这是 MST 算法正确性的核心依据(贪心基础)。
二、MST 的核心理论基础
1️⃣ 割(Cut)定理(Kruskal / Prim 的理论支撑)
割的定义
将点集 (V) 划分为两个非空集合:
\[ S \quad|\quad V-S \]
称为一个 割(Cut)
割边
- 连接 (S) 和 (V-S) 的边
割定理(Cut Property)
对于任意一个割,权值最小的割边,一定属于某棵 MST
⚠️ 重点:
- 不一定属于所有 MST
- 但一定属于 至少一棵 MST

