Skip to content

2017年 408 数据结构 第 42 题

数据结构2017年综合题8分

题目

使用 Prim(普里姆)算法求带权连通图的最小(代价)生成树(MST)。请回答下列问题:

(1) 对下列图 G,从顶点 A 开始求 G 的 MST,依次给出按算法选出的边。

6454654ABECD

(2) 图 G 的 MST 是唯一的吗?

(3) 对任意的带权连通图,满足什么条件时,其 MST 是唯一的?

解析

(1) 从 A 出发的 Prim 选边过程

答案:依次选出的边为 A-D(4)、D-E(4)、C-E(5)、B-C(4),MST 总权重 17。

Prim 算法:维护"已加入 MST 的顶点集 V_T",每轮从"V_T 一端在内、另一端在外"的所有边中选权值最小的一条加入。下表逐轮模拟:

V_T候选横切边(权)选出加入 V_T
A-B(6), A-D(4), A-E(5)A-D(4)D
2A-B(6), A-E(5), D-C(6), D-E(4)D-E(4)E
3A-B(6), C-D(6), C-E(5)C-E(5)C
4A-B(6), B-C(4)B-C(4)B

V_T = {A, B, C, D, E} 全员到齐,MST 边集 = {A-D, D-E, C-E, B-C},权重 4+4+5+4 = 17

(2) 该图 MST 是否唯一

答案:唯一。

证明思路:把所有边按权值排序为 A-D(4), B-C(4), D-E(4), A-E(5), C-E(5), A-B(6), C-D(6)。沿 Kruskal 思路考察:

  • 三条权 4 的边:A-D、B-C、D-E。它们彼此不形成环(覆盖顶点 {A,D,B,C,E} 但只有 4 条边连接,不可能成环),所以 MST必须全选这三条;
  • 选完后两个连通分量 {A, D, E} 与 {B, C},需再加一条边连通;
  • 候选边按权值升序:A-E(5)、C-E(5)。A-E 两端都在 {A,D,E} 内 → 必形成环、不可选;只剩 C-E 唯一可选

每一步候选都唯一,所以 MST 唯一。

(3) 任意带权连通图 MST 唯一的充分条件

答案:当图中所有边的权值互不相同时,MST 一定唯一。

证明思路(反证):若 MST 不唯一,存在两棵不同的 MST 。取它们的对称差中权值最小的边 ,不妨设 。把 加入 会形成一个环 C,C 中至少有一条不在 的边 。由于所有边权互不相同,要么 (用 变更轻 → 与 是 MST 矛盾),要么 (用 变更轻 → 矛盾)。两种情况都不可能,故 MST 唯一。

编者注(生僻术语):「边权互不相同」是 MST 唯一的充分非必要条件——本题就是反例:有 3 条权 4 的边,权值并不全异,但 MST 仍唯一(因为这 3 条边都"独立"地必须选)。更精确的等价条件涉及"切(cut)的最小边唯一",考研不要求掌握,写"权值互不相同时 MST 唯一"就拿满分。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数