安全边定理

概述

安全边定理(Cut Property / Safe Edge Theorem):设 是某棵最小生成树(MST)的边的子集, 是横跨割 的一条轻边,则 安全的。这是 Kruskal 和 Prim 算法正确性的统一理论基础。

定理陈述

形式化陈述

定理(CLRS Theorem 23.1):设 是一个连通无向加权图, 是包含在某棵 MST 中的边的子集。设 中尊重 的一个割(即 中没有边横跨该割), 是横跨割 的一条轻边(即 )。则边 是安全的,即 也包含在某棵 MST 中。

术语说明

  • :将顶点集 划分为两个不相交子集
  • 尊重 的割 中没有任何边横跨该割
  • 轻边:横跨割的所有边中权重最小的边

证明概要

证明思路

证明的核心是”交换论证”(exchange argument):假设轻边不在某棵 MST 中,通过替换操作构造包含该轻边的新 MST。

步骤 1:选择包含 的 MST

是一棵包含 的最小生成树(由假设,这样的 存在)。

步骤 2:分情况讨论

情况 1。则 显然安全。无需进一步论证。

情况 2。将 添加到 中,得到

步骤 3:分析环结构

是树( 条边),添加 含有唯一一个简单回路 。由于 ,回路 必须从 “穿越”到 再”穿越”回来。因此 中至少存在另一条横跨割 的边,设为 ,其中

步骤 4:证明

由于割 尊重 中没有边横跨该割),而 横跨该割,所以

步骤 5:交换边并验证

  • 是生成树:删除 打破了回路 条边且连通
  • 包含 ,所以
  • 是最小生成树:(因为 是轻边,)。但 已经是 MST,所以

因此 是安全的。

学术参考:该证明与知识库中 11.5 节 Prim 算法正确性证明的交换论证思路一致,详见 11.5 最小生成树

关键推论

  • Kruskal 算法的正确性:Kruskal 算法维护的边集 始终是某 MST 的子集。每次选择的最小权不成环边恰好是横跨某个尊重 的割的轻边,因此对 安全
  • Prim 算法的正确性:Prim 算法维护的割 为已选顶点集)天然尊重 ,每次选择的最小关联边就是轻边,因此安全
  • 唯一性判定:若每条横跨割的轻边都是唯一的(即所有边权互不相同),则 MST 唯一

应用场景

  • 算法导论 Ch21:安全边定理是 GENERIC-MST 框架的理论基础,Kruskal 和 Prim 算法都是该框架的实例化
  • 网络设计:在设计通信网络时,安全边定理保证贪心策略能找到最小成本的连通方案
  • 聚类分析:单链接聚类(single-linkage clustering)利用最小生成树的性质,其理论基础也来自安全边定理

参见