Skip to content

12 Simple Graphs

简单图(simple graphs)是对对称(symmetric)关系的建模,也就是说关系是相互的。比如婚姻关系、说同样的语言、说不同的关系、发生在重叠的时间区间、通过导线相连等等。在调度、约束问题、计算机图形学、通信等等方面都有很多应用,不过为了抓住大家的眼球,我们从专业的性行为调查来展开。准确的说是调查异性伴侣的个数。
芝加哥大学(University of Chicago)的调查结果是男性的异性伴侣数比女性多74%。ABC News的结果比这个更夸张,男性平均有20个异性伴侣而女性平均有6个。纽约时报(New York Times)的结果是男性有7个女性有4个。你相信那个呢?
本章的图论知识会告诉你这些调查距离真相都很远。

Vertex Adjacency and Degrees

简单图的定义和有向图类似,除了边是无向的(undirected),只是连接两点但没有方向。从的有向边是,而无向边的表示是
Definition 12.1.1. 一个简单图(simple graph)包含一个非空集合,是的顶点集合,和,是的边的集合。每一个元素称为顶点(vertex),每一个元素称为边(edge)。一条边有两个顶点是其端点(endpoints)。这条边能用两个元素的集合来表示。记号表示这条边。
表示的同一条边,其端点是


举个例子,令上图中的图是,有9个点和8条边。
点的集合
边的集合

Definition 12.1.2. 简单图中两个顶点是邻接的(adjacent)当且仅当它们是同一条边的端点。这条边对每条边而言都是入射(incident)边。一个顶点的入射边的数量称为度(degree),记为。一个顶点的度等价于邻接点的个数。
对于图是邻接的,的邻接点,边对于端点都是入射边。的度是1,的度是2,。一个顶点的度可以是0,也就是说没有点和它相邻。一个简单图可以一条边都没有,,也就是每个点的度都是0。不过简单图至少要有一个点,至少是1。
简单图的两点之间的边数不能大于1,自循环(self-loops)(起点和终点是同一个点)也是不行的。
本章说的图就是简单图。

Sexual Demographics in America

包含所有的的美国人,每个人是一个顶点。我们将顶点分成两个子集,前者包含所有的男人,后者包含所有的女人。如果两人是性伴侣,那么用一条边连接这连个点。如下图所示:

每一条边的一个端点一定在集合,另一个端点在集合,所以 两边同时除以 等式左边第一项就是男性平均异性伴侣数,右边的第一项是女性平均异性伴侣数。所以 那么男性和女性的一性伴侣数之比只取决于男女人数比。根据现有数据,之比大约是1.035,也就是说,男性平均异性伴侣数比女性高3.5%,那么引言提到的调查结果都是不准确的。

Handshaking Lemma

Lemma 12.2.1. 顶点的度之和是边数的两倍。
Proof. 每一条边对顶点的度之和的贡献是2。

上面的引理称呼为握手定理(Handshaking Lemma):一个聚会上每个人握手的次数之和是握手发生次数的两倍。

Some Common Graphs

一些图出现的很频繁就给了命名了。完全图(complete graph)个顶点,每两个顶点间都有一条边,共有条边。如下图所示:

空图(empty graph)表示没有任何边的图。五个顶点的空图如下图所示:

包含个顶点依序有条边的图是线图(line graph)。更正式的说, 如下图所示

线图可以无穷长,令顶点集合是非负整数集,那么边分别是
如果我们添加一条边到图,那么长度为的环(cycle)。长度为5的环如下图所示:

Isomorphism

两个图看起来不一样,但是某种形式上它们是相同的。比如下面两个图,都是有4个顶点和5条边,并且旋转图90度就能得到图。

严格地讲,这些图是不同的数学上的对象,但是这种不同不能反映它们能被描述成同样的图片的事实——除了点的标签之外。
Definition 12.4.1.之间的同构是双射,对所有的都有 当两个图之间存在同构,那么这两个图是同构的(isomorphic)。
上图中的两个图存在同构 两个同构的图可以画的差异很大,比如下图中的两个图都是

如果的同构,那么的同构。同构具有传递性。事实上,同构表示的是等价关系。
同构保持的是图的连通性的属性。图的一个属性被称为同构保持(preserved under isomorphism)如果图有该属性同时所有和同构的图都有该属性。比如点的数量应该一样。点的度应该一样。如果一个图某个点的度是4,另一个图没有点的度是4,那么这两个图不可能是同构的。实际上,度4的点的个数不一样的话,也不可能是同构的。
通过保持的属性很容易判断两个图不是同构,或者当同构存在时来指导如何找到。通常来讲,判断两个图是同构的也比较容易,但是,没有一个确定性的算法的时间复杂度是多项式时间。如果有这样的程序的话,很容易就能找到通过给定的分子键找到特殊的分子。
同构的定义可以应用于无限图,同时本章剩余的大部分内容对无限图也是适用的。但是图论主要集中在对有限图的研究,本章也是。
图论是对同构保持的属性的研究。

Bipartite Graphs & Matchings

关于性行为调查的的例子中,所有的点分成了男女两类,且每条边都是从其中一类到另外一类。这样的图有个特殊的名字二分图(bipartite graphs)。

Definition 12.5.1. 一个二分图的顶点能够分成两个部分,每条边的一个端点在另外一个端点在

The Bipartite Matching Problem

假设有两个集合,一个男人的集合,一个大于等于男人集合人数的女人的集合。如果某个男的喜欢某个女的,那么两者之间就会有一条边。当前,这个喜欢是单向的,后面会考虑反向。下图是一个示例:

一个匹配(matching)是指每一个男人都和一个女人配对,且不同的男人配对的是不同的女人。下图是其中一个例子:

The Matching Condition

Hall's Matching Theorem给出了二分图存在匹配的充要条件。
为了证明这个定理,先定义一下被给定男人集合喜欢的女人集合中的每个女人至少被一个给定的男人集合的男人喜欢。比如男人集合是Tom和John,那么女人集合就是Martha,Sara和Mergatroid。
匹配条件(The Matching Condition):每一个男人的子集所喜欢的女人的集合至少和该子集一样大。
举个例子:四个男人组成的集合,喜欢的女人数量是三个,显然不存在匹配。定理告诉我们这个必要条件是充分的,也就是说,匹配条件成立的话,那么该二分图肯定存在一个匹配。

Theorem 12.5.2. 对于一个男人集合和女人合计,存在一个匹配,当且仅当匹配条件成立。
Proof. 上述的反例已经证明匹配条件不成立则匹配不存在,那么其逆否命题匹配存在则匹配条件成立也是成立的。下面用归纳法来证明匹配条件成立那么存在匹配。
基础:,匹配条件蕴含着这个男人至少喜欢一个女人,显然匹配存在。假设对于都是成立的,现在考虑的情况。
(1) 对于所有至多有个男人的非空子集,都严格地比对应女人的集合要大。显然,我们任意匹配一个男人和他喜欢的女人,那么移除他俩之后剩余的个男人集合和对应的女人集合满足匹配条件,对应的匹配加上新加的一条边,构成了新的匹配。
(2) 有一些至多有个男人的集合,和其对应的女人集合一样大。根据递归假设,之间存在匹配,那么问题变成了在上找到一个匹配。
如果存在某个,对应的女人集合人数更少,那么就有的人数小于的人数,这违背假设。那么不存在某个。所以之间的关系也是满足匹配条件的,那么根据递归假设,也存在匹配。

Theorem 12.5.2的证明过程给出了一个不高效的寻找匹配的算法。事实上,存在高效的寻找匹配的算法,所以如果一个问题能够转化为在二分图上找匹配这个已知问题的话,那么就能高效地处理了。

下面是匹配和Hall's Theorem的正式定义。
Definition 12.5.3.的匹配是一个边的集合没有两条边入射到同一个顶点。的边的顶点成为被覆盖(covered)。如果一个匹配覆盖了,那么成为完美匹配(perfect)。令是某个的邻接点(neighbors)集合,即 被称为瓶颈(bottleneck)如果

Theorem 12.5.4(Hall's Theorem). 是二分图。存在一个匹配覆盖等价于的任意子集都不是瓶颈。

二分图的匹配条件要求每一个子集都要满足这个条件。但是子集的个数增长是指数级的,很快就不适用了。有一个关于顶点的度的属性就能确保二分图存在一个匹配。如果左半边的度至少和右半边的度一样大,那么称为度受限(degree-constrained)的二分图。
Definition 12.5.5. 一个二分图是度受限的如果有一个整数对于所有都有 Theorem 12.5.6. 如果是度受限的二分图,那么存在一个匹配覆盖
Proof的一个子集,需要证明满足Hall's condition是端点在中的边的集合,由于中的点的度最小是,那么 的另一个端点在中,而中的点的度最大是,那么 所以

如果一个图所有点的度都一样,那么该图是规则的(regular)。根据定义,二分规则图满足上面描述的度受限图,所以存在一个完美匹配。

Coloring

之前我们用边来表示喜欢的关系,下面的例子是表示冲突。

An Exam Scheduling Problem

MIT教务处要安排考试,显然,不能让同一个学生选择的两门课程放在同一个时间考试,同时,不能一门课一门课的考试,时间太长了。要在尽可能短的时间内排除考试安排,同时保证没有冲突。
这个问题可以用图来描述,点表示课程,如果有学生同时选择某两门课,则这两门课(点)之间用一条边连起来。下图是一个示例:

接下来我们使用颜色来表示时间槽。比如红色表示星期一上午,蓝色表示星期一下午,绿色表示星期二上午等等。那么冲突就表示成同一条边的两个顶点不能是同一个颜色的,上述应用问题就转化为用尽可能少的颜色来填满整个图。下图是某种染色的例子。

能比三种颜色更少吗?不能。因为图中有个三角形,必须用三种颜色。
上述就是一个图染色(graph coloring)问题:给定一个图,每个点都图一种颜色,合理染色是要保证一条边的两个顶点是不同颜色。可染色(-colorable)图表示染色最多使用个颜色。
Definition 12.6.1.的合理染色的数目最小值被称为染色数(chromatic number),
染色图等价于

Some Coloring Bounds

有一些简单的属性能够给出染色数的限制。
最简单的属性是环:偶数长度的环染色数是2,奇数长度的环染色数是3。
完全图的染色数是,因为任意两个点都是连接的,不能是同一个颜色。

二分图和染色问题也是有联系的。二分图可以用两种颜色进行染色,左边的集合用一种颜色,右边的集合用另一种颜色;反之,可以根据两种颜色将点集分成两个子集。
空图没有边,染色书是1,将所有顶点都用一种颜色来进行染色。
Lemma 12.6.2. 非空图是二分图等价于

Theorem 12.6.3. 一个图的度的最大值是,那么是可染色的。
Proof 我们固定,对顶点数进行递归。
时,度是0,染色数是1,命题成立。
假设命题成立,现在考虑有个顶点的图,其度的最大值是。删除一个顶点和相连的边,得到个顶点的图,其度的最大值仍旧是,根据递归假设,图是可染色的。
现在把点加回来,由于,但是有个颜色,那么能够选择一个和相邻节点都不同的颜色染色即可。颜色的种类不变,那么是可染色的。

这个理论给出的是上限。比如一个图是或者是其子图,那么就必须需要种颜色。但是下图只需要两种颜色就好了,但是度却比较大(相较于颜色的种类)。

Walks in Simple Graphs

Walks, Paths, Cycles

简单图的走(Walk)和路径(Path)的定义和有向图类似。
Definition 12.7.1. 简单图中的walk是指从某点开始走到某个点,包含中间的边。walk的长度指的是边的个数。所以walk可以记作 其中。这个walk开始,终点是,其长度walk是一个路径等价于所有的顶点都是不同的,也就是对于
walk的起点和终点是同一个点的话那么是closed walk。单独一个点是长度为0的closed walk,也是长度为0的路径。
环(cycle)是长度大于等于3、且除了起点和终点外都是不同点的closed walk
和有向图不同的是,我们不把长度为2的closed walk作为作为环,因为在简单图中离开某个点再回来不重要,对此也不感兴趣。简单图也不包含长度为1的closed walk因为简单图没有自循环。
在有向图中,walk的长度是边的数量,比顶点数少一。简单图也是类似的。下图有长度为6的路径,也是最长路径。还包含三个环,分别是

Cycles as Subgraphs

对于环,我们不去别起点。例如上图中的环也可以表示成,同时不关心方向,那么起点的环也可以表示成。可将环定义为与环图同构的子图(subgraph)。
Definition 12.7.2. 如果,那么图是图的子图。
任意个顶点的空图是的的子图,同样地,的子图,的子图。
Definition 12.7.3. 对于有顶点和边 的环是的子图,且同构于

Connectivity

Definition 12.8.1. 如果两个点之间有一条路径,那么这两点是连通的。习惯上,每个点和自身都是连通的,因为有长度为0的路径。如果一个图的任意两点都是连通的,那么该图是连通的。

Connected Components

连通性是很好的性质,因为任意两点都是连通的。但是不是所有图都有这个性质。比如北美的城市都是连通的,但是它们和澳大利亚的城市就不连通。再比如有的网络(政府网络、研究病毒的机房)和互联网也不是连通的。
下图是一个图,但是看起来是三个图,每一部分本身是连通的,但是各个部分之间不连通。一个图的各个连通的部分称为连通分量(connected components)。

Definition 12.8.2. 一个图的连通分量是由一些点和连接这些点的一些边组成的子图。
一个图是连通的等价于只有一个连通分量。另一个极端情况是一个个点的图包含个连通分量,每一个连通分量包含一个孤立的点。

Odd Cycles and 2-Colorability

确定染色数是很有挑战性的事情,但是2染色问题相对比较简单。
Theorem 12.8.3. 以下三个属性是等价的: 1. 包含奇数长度的循环 2. 不是2染色图 3. 包含奇数长度的closed walk

也就是说一个图满足上述任意一个属性,也满足其他属性。我们通过证明1蕴含2,2蕴含3,3蕴含1来证明它们之间的等价性。
1蕴含2:之前有说明,略过。
2蕴含3:我们可以假设图是连通的,非连通图由多个连通分量组成,不影响命题的成立。
是图的任意一点,对其他任意一点存在一个walk开始,结束于。对图进行染色 由于图不能用两种颜色进行染色,那么一定存在两个相连的点是相同颜色的,那么 是一个closed walk,其长度 是奇数。
3蕴含2:存在奇数长度的closed walk,那么一定存在最短的一个,不妨设为。我们用反证法证明是一个环。那么除了起始点和终点有重合外,还可能会有重合的点。第一种情况,额外的重合点就是起点,那么有两个walk都是从起点出发回到起点 又因为 的长度是奇数,那么必有一个奇数,那么和假设是最短的矛盾。
第二种情况是重合点不是起点,那么 ,其中不是是奇数长度,否则出现了长度小于closed walk。那么$$f\hat{y}rw$短,也和假设矛盾。

Special Walks and Tours

Euler Tours

你能走遍艺术博物馆的每一个门厅一次吗?门厅用顶点表示,如果联通就增加一条边,那么下图是一个可能的示例:

这个问题最早起源于十七世纪的七桥问题。
欧拉回路(Euler tour)是每条边只包走一次的closed walk

Theorem 12.9.1. 一个连通图有欧拉回路等价于每个点的度都是偶数。
习题12.43引导大家给出一个证明。

如果存在一个walk不是欧拉回路(起点和终点不一样)也是每条边都只走一次等价于恰好有两个点的度是奇数,其他点的度均为偶数。上图是满足这个条件的图。

Hamiltonian Cycles

Definition 12.9.2. 哈密顿回路(Hamiltonian cycle)是一个访问了图中的每个点一次的环。类似的,哈密顿路径(Hamiltonian path)是访问每个点一次的路径。
虽然哈密顿回路和欧拉回路有点像,把边换成了点,但是找到哈密顿回路是一个难得多的问题。至今还没有找到一个简单的特征来判断一个图是否有哈密顿回路;同时,也没有高效的算法来判断这一点。

The Traveling Salesperson Problem

考虑这样一个例子,城市表示点,城市之间的距离表示边的权重,如何遍历所有的点并且距离最短呢?仿佛找到哈密顿回路还不足够苦难,还要额外增加边的权重这个参数。遍历每个点且使得边的权重的和最小化(minimum possible sum),这就是旅行商人问题。
你能找到下图中一个权重之和等于15的哈密顿回路吗?

试了半天没找到。。。

-connected Graphs

考虑一个电话网或者输油管道、电网抽象出来的图,我们不仅仅需要研究连通性,还需要关心某些分量失败时的连通性。一个表示连通强度的衡量标准是是在两点不相互连接之前,可以有多少连接失效。如果两个点之间需要个边失败才断连,那么这两点是边连通的($k$-edge connected)。
Definition 12.10.1. 当两个点在图任意去掉条边的子图中都是连通的,那么该两点成为边连通。一个图的任意两个点都是边连通的话,那么这个图是边连通的。
下面会简称为连通。
12.14中的是3连通,是2连通,是1连通,没有两个点是4连通。所以这个图是1连通的。完全图连通的,任意环是2连通的。
边缘边(或称为桥,更通用)(cut edge)的概念能够很好的解释2连通性。
Definition 12.10.2. 如果两个点是连通的,但是移除边之后就不连通了,那么边就是桥。

Lemma 12.10.3. 一条边是桥,当且仅当它不在任意环上。

如果两点有个边不相交的路径(没有边出现在两条路径)连接,那么这两点是连通的;根据Menger's定理,反之也是成立的。

The Minimum Number of Edges in a Connected Graph

Theorem 12.10.4. 任意图至少有个连通分量。
Proof. 这个定理包含了一个隐含条件,就是边的数量少于顶点的数量。
基于边数进行递归证明。命题如下
条边的图至少有个连通分量。
时,图一条边都没有,那么每个点都是一个单独的连通分量,那么连通分量数是,所以是成立的。
现在考虑。从图移除一条边得到图,根据递归假设,图个连通分量。现在将添加回来。如果边的两个端点在图的某个连通分量,那么图个连通分量,大于。如果边的两个顶点在图里面分别在不同连通分量,那么通过边将两个不连通的部分变得连通了,那么连通分量数少了一个,即。两种情况,都至少有个连通分量。

Corollary 12.10.5. 任意个顶点的连通图至少有条边。

上面定理的证明是基于图的边数进行递归,这种方法和基于图的顶点数进行递归一样,都是图论中常用的证明方法。
在证明的情况时,我们先减小,再增加,看似是不需要的。对于这个证明,可以直接从,但是对于有些命题,先减小再增加是非常必要的。习题40是一个很好的例子。

Forests & Trees

Definition 12.11.1. 无环图被称为森林(forest)。连通无环图被称为树(tree)。

下图是一个森林,每个连通分量是一个树。

Leaves, Parents & Children

Definition 12.11.2. 森林中度为1的结点被称为叶子(leaf)。

上图有4个叶子,下图有5个叶子。

Tree Properties

Theorem 12.11.3. 每棵树都有一下属性: 1. 每一个连通子图都是树; 2. 任意两点之前有唯一的一条路径; 3. 在不相邻的两个结点之间加一条边,会形成一个环; 4. 移除任意边会导致树不连通,也就是说,任意边都是桥; 5. 如果一个树至少有两个顶点,那么至少有两个叶子结点; 6. 树的顶点数比边数大一。

Proof 1. 子图的环在全图中也是环,逆否命题,那么全图无环则子图无环,又因为其是连通的,那么根据定义,其是树。 2. 树是连通的,那么任意两点之间必然有路径。假设不止一条路径,选择最短的两条不同路径,那么最小。再假定两条路径除了起点和终点外还有另外一点是公共顶点,那么取从起点到的两个路径的部分,或者从到终点的两个路径的部分,能够找到更短路径,那么这样的不存在,那么是环。 3. 增加的边之间唯一的路径组成了环。 4. 假设移除边之间的路径肯定包含边,移除之后路径就不存在了,破环了连通性。 5. 找到最长的路径,其两端分别是。下面证明是叶子结点。终点的意思就是只有一条入射边在最长的路径上,如果不只一条入射边,那么这条路径就能扩展到更长,所以只能有一条入射边,即其实叶子结点。同理。 6. 命题是说个顶点的树有条边。1个顶点,那么没有边,命题成立。假设时成立,考虑。找到某个叶子结点,删除该点和连接的边,那么还是一个树,根据递归假设,有条边,现在把删除的顶点和边加回来,显然有条边。

Lemma 12.11.4.是树等价于是森林且

Spanning Trees

树无处不在。任意一个连通图总包含着顶点一样的树。这样的树被称为生成树(spanning tree)。下图是一个连通图和生成树(加粗)。

Definition 12.11.5.的生成子图是包含图的所有顶点的子图。

Theorem 12.11.6. 每一个连通图都包含生成树。
Proof.自身也是一个连通的生成子图,根据良序原理,一定存在一个边最少的连通的生成子图
假设有一个环,根据Lemma 12.10.3,环上的边不是桥,那么删除边不会影响连通性,那么不是边最少的生成子图,所以不能有环,根据定义,无环连通,那么就是一个树,即图的生成树。

Minimum-Weight Spanning Trees

对于加权图(weighted graphs)而言,其生成树问题是很重要的。加权图的权重之和被称为图的权重(weight)。下图展示了一个权重为19的生成树。

一个通用的问题是找到权重最小的生成树 - 最小生成树(minimum-weight spanning tree)(MST)。
上图的左边不是最小生成树,下图是权重17的生成树,它是最小生成树,但是如何证明呢?一般地,如何找到最小生成树?枚举所有的生成树显然不可行,因为图大的话可能的生成树数量太大。

本节其余部分,图是连通加权图。我们会给出一种简单的通用的方式来找到图的最小生成树。

Definition 12.11.7. 简单图的黑白染色(black-white coloring)将的点分成黑色和白色两个部分。如果两点颜色不同,那么这两点之间的边是灰边(gray edge)。
Lemma 12.11.8. 如果是连通图,那么的每一种黑白染色都包含灰边。
Proof.是连通的,那么肯定有一条路径,起点是黑色的,终点是白色的,那么这条路径上肯定有一条边,其两个端点是一黑一白的。

加权图的某些边的权重相等这是很常见的,但是后续的证明会基于权重都不相同来进行。这不会损失一般性,对于权重相同的边,我们可以任意给它们分配不同的权重。

Lemma 12.11.9(Gray Edge Lemma). 对于连通图的任意黑白染色,灰边中权重最小的边一定是的最小生成树的边。
找到图的最小生成树就是要找到足够多的最小权重灰边来组成生成树。我们使用

最小权重灰边过程
来找到最小生成树。
我们从移除了的所有的边的不连通森林开始。假设是一个某一步生成的森林。如果是不连通的,那么选取一种的黑白染色,其恰好对于的连通分量的所有点都是同一种颜色,然后选择权重最小的灰边加入。直至变得是连通的。

Theorem 12.11.10. 最小权重灰边过程会终止并生成最小生成树。
Proof 假设个顶点,是整个过程中任意一个时刻的最小生成森林。如果不是连通的,那么黑白染色方法选取是内的边的端点都是同色的,那么内部是没有灰边的。
根据Lemma 12.11.8,一定有灰边,那么肯定有权重最小的灰边。将其加入到,经过步,是连通的,是一棵生成树
又根据Lemma 12.11.9,的每一条边都在的最小生成树中,这说明所有的最小生成树都和有着一样的边也就是说,都等于。所以独一无二的最小生成树。

Corollary 12.11.11. 各边权重不同的连通图有唯一的最小生成树。

下面说几种不同的最小权重灰边过程。
Algorithm 1. [Prim] 添加权重最小的有且只有一个端点属于的边到中。
这个过程等价到最小权重灰边过程就是所有属于的点是黑色,所有不属于的点是白色,这样灰边就有且只有一个端点属于
Algorithm 2. [Kruskal] 添加权重最小的且使得不形成环的边到中。
不形成环等价于连接两个不同的连通分量。这个算法是相当于把不同的连通分量染成不同的颜色。
下面是一个比算法1更灵活的算法。
Algorithm 3. 任意挑选一个连通分量,添加到离开这个连通分量的权重最小的边到中。
这个算法使得各个连通分量可以并行的独立的增长。在分布式计算中是很有用的。

Lemma 12.11.12. [Gray Edge Swap]是连通加权图,边的某种黑白染色的最小权重灰边。假设的生成子图,但不是的一条边,那么中存在一条边满足 * * 是连通的

Proof. 由于是连通生成子图,那么在中存在一条路径,连接了的两端,是灰边,两端颜色不同,那么中存在一条边是灰边。由于是最小权重灰边,那么显然
形成了一个环,移除的两个端点仍旧被环的其余部分连接着,所有是连通的。