MST定义
图的生成树:含有全部顶点的无环连通子图
加权图的最小生成树MST
: 权值最小的生成树
一些约定
- 只考虑连通图。至于非联通的图,将所有联通分量的最小生成树构成最小生成森林,换句话说不连通的没有最小生成树。
- 边的权重不一定表示距离,短边也可能有高权重。
- 边的权重可能是0或者负数。如果要求全为正数,将最小生成树定义为连接所有顶点且总权重最小的子图就够了。
- 所有边的权重不同,权重不同树就一棵,反之不然。
切分定理
树的两个性质:
- 连接任意两个节点都会产生一个新的环,加边成环。
- 删去任意一条边都会得到两棵独立的树,去边分裂,一分为二。
图的切分:将所有顶点分成两组,每组非空且无重复,自身和补集。
横切边,即连接两个属于不同集合的顶点的边。
图示:
贪心算法
用切分定理找到最小生成树的一条边,不断重复直到找到最小生成树的所有边。至于具体的算法在保存切分和判定权重最小的横切边的方式上有所差异。
图示:
- 灰色和白色构成一个切分的两部分。
- 红色边为横切边,选取其中最短的加入MST。
- 新切分得到的横切边不包括已经标记的。