3.图论(II)
由于看的课的中文是机翻,下面对
途径(walk) 是由由边链接的顶点的序列,允许顶点和边的重复。经过的边的数量
Lemma 1 path的存在性
如果存在从节点
[!证明] 存在
从 到 ,根据良序定理,存在一个长度最小的 。下面证明这就是一条 。 如果长度等于 ,显然成立。 如果长度 : 使用反证法,如果不是 ,那么就有重复的顶点,设 ,则路径 是一条更短的路(砍掉了 的部分)。这就出现了矛盾。所以 成立。
连通性 :如果有一条从
闭途径(closed walk) 是指一个起点和终点相同的
树 :连通无环图。
叶 :树中
Lemma 2 树的连通子图还是树
[!证明] 反证法。子图已经连通,假设子图有环,则原图有环,则不是树,矛盾,故子图无环(显然如此)。
Lemma 3 树的边数
节点为
为证明此,先说明叶子的存在性。
证明:在任何 的树中,至少存在两个叶子节点
证明步骤:
-
取最长路径:
在树
中,由于节点数有限且无环,一定存在一条最长路径(Path,点不重复),我们将其记为 。 -
考察端点
: 考虑与起点
相连的节点。除了路径上的邻居 之外, 还能有其他的邻居吗? -
情况 A: 如果
与路径之外的某个点 相连,那么我们可以把路径延长为 。这与 是“最长路径”的假设矛盾。 -
情况 B: 如果
与路径上已有的某个点(比如 ,其中 )相连,由于 和 之间已经有一条路径,这条新边会形成一个环。这与树“无环”的定义矛盾。
-
-
得出结论:
因此,
只能与 这一个点相连。也就是说, 的度数 。 -
同理推导:
同样的逻辑也适用于路径的另一个端点
,它的度数也必然为 1。
结果: 路径
[!证明Lemma 3] 归纳法。
时显然成立。 若 时成立, 时: 删掉一个叶子,那么创造了一个连通子图,根据 这就是 的树,那么满足有 条边,加上这个叶子,那么也只会加上一条边,那么此时就恰好有 条边。
生成树(Spanning tree,ST) :一个连通图的子图,该子图是一个包含所有节点的树。 生成树是包含所有顶点最小连通子图的解。
Theorem 每个连通图都有生成树
[!证明] 假设有一个连通图
没有生成树。让 作为满足是 的一个连通子图,拥有 的全部顶点的子图中有最小边数的子图。 那么根据假设, 有环,那么删去环上的一条边,边数变短了,但仍然是连通图,这与 边数最小矛盾,所以原命题成立。 仍然连通的说明:考虑任意两个顶点
,若连接他们的 不包含删去的边 ,那么当然不会破坏他们的连通性;反之,由环的定义,除了边 之外, 的顶点 和 之间一定存在另一条 ,那么 之间就存在路线 ,可见仍然是连通的。
最小生成树(MST) :对于有权重的连通图,权值和最小的生成树。
Kruskal 算法(加边法)
每次选择权重最小的边,只要不形成圈就行,直到变成生成树。就变成了最小生成树。
[!Lemma]
,让 为包含了按照算法选择的其前 条边的集合。则存在最小生成树 ,使得 。 证明: 使用归纳法。归纳假设
即命题。
时, 是空集,显然成立。 设
成立,设 是第 步添加的边,让 表示已选择的前 条边,根据归纳假设,存在最小生成树 使得 。 如果
,那么显然成立, 反之,由于 是生成树,顶点已连通,再加边则会生成环,由 和连接其顶点 的路径组成。 由于 按照算法选无环,这个环上必定有不属于 的边 。由于算法先选 再选 ,可知 。 构造新树 ,为 删去 加上 , 此时图依然连通无环,故 也是生成树,且 ,因为 已经是最小生成树,只能取等,所以 也是最小生成树。而显然这个新的 。成立。 综合以上,归纳得证原命题成立。
[!] 设连通图
的顶点集合为 ,有 个顶点,先证明能选出 条边。 根据 ,存在最小生成树的边集 包含 ,所以总可以选取 中有 中没有的边继续进行下去,而由于 是最小生成树的边集,显然会生成没有环的子图,直至有 条边。 . 选出之后,此时有 ,同时他们元素个数相等,从而 ,也就是说,算法生成了最小生成树。