← 返回课程列表

图论基础 — 顶点、边与结构

图论是研究"顶点"和"边"之间关系的数学分支,从七桥问题到社交网络分析,无处不在。

一、图的定义

先看一个问题

问题:有 4 个城市 A、B、C、D,它们之间的直达航线如下:A↔B、A↔C、B↔D、C↔D。如何用数学方式来描述这个交通网络?

思考:我们把每个城市看作一个,把每条直达航线看作连接两个点的线。这样就形成了图论中最基础的结构——一个

图的定义

一个 G 定义为一个有序对 G = (V, E),其中:

  • V(Vertex Set):顶点集,图中的所有顶点(也叫节点)的集合。
  • E(Edge Set):边集,连接顶点的所有边的集合。

G = (V, E)   V 是顶点集,E 是边集

例:上面城市航线的例子中,V = {A, B, C, D},E = {AB, AC, BD, CD}。

A B C D
图 G:顶点集 V = {A, B, C, D}, 边集 E = {AB, AC, BD, CD}

无向图与有向图

例:社交网络中的"好友关系"是无向图(A 是 B 的好友 = B 是 A 的好友);而"关注关系"是有向图(A 关注 B 并不意味着 B 关注 A)。

无向图 A B 有向图 A B
左:无向图(AB = BA);右:有向图(A→B,但 B→A 不一定成立)

简单图与完全图

K₃(三角形) v₁ v₂ v₃ K₄ v₁ v₂ v₃ v₄
完全图 K₃(3 个顶点,3 条边)和 K₄(4 个顶点,6 条边)

边数公式:完全图 Kn 的边数为

|E| = C(n, 2) = n(n − 1) / 2

概念 以下哪个图不是简单图?
A. 包含一条自环(顶点连向自身)的图
B. 三角形 K₃(3 个顶点、3 条边)
C. 有 4 个顶点且任意两点之间都有一条边的图
D. 五边形回路 C₅(5 个顶点、5 条边)
解析:简单图不允许自环和重边。包含自环的图不是简单图。B 描述的是三角形 K₃,C 描述的是完全图 K₄,它们都是简单图。选 A

二、度数

先看一个问题

问题:在一个有 5 位同学的群聊中,如果每两个人之间恰好发过一次私信,那么总共发了多少条私信?所有同学收发私信的总次数是多少?

思考:把每位同学看作顶点,一次私信看作连接两个顶点的一条边。5 个顶点两两相连,就是完全图 K₅,共有 C(5,2) = 10 条边(10 条私信)。

每位同学与另外 4 位都发过私信,所以每位同学的"度数"是 4。所有同学的度数之和 = 5 × 4 = 20,恰好等于边数 10 的两倍。

顶点的度数

在无向图中,一个顶点的度数(degree)是指与该顶点关联的边的数目,记作 d(v)。

若图含有自环,按约定一条自环对该顶点的度数贡献 2。

握手引理(Handshaking Lemma):在任何无向图中,所有顶点的度数之和等于边数的两倍。

v∈V d(v) = 2 × |E|

直观理解:每条边有两个端点,所以贡献 2 到度数总和中。这就是"握手"的比喻——一次握手涉及两只手。

例:下图是一个有 5 个顶点的图,计算各顶点的度数和总边数。

v₁ v₂ v₃ v₄ v₅

d(v₁) = 2(连 v₂ 和 v₃)

d(v₂) = 3(连 v₁、v₄、v₅)

d(v₃) = 2(连 v₁、v₄)

d(v₄) = 3(连 v₂、v₃、v₅)

d(v₅) = 2(连 v₂、v₄)

度数之和 = 2 + 3 + 2 + 3 + 2 = 12,边数 = 6,验证:12 = 2 × 6 ✓

计算 一个图有 8 个顶点,每个顶点的度数都是 3。根据握手引理,这个图有多少条边?
A. 8 条
B. 12 条
C. 24 条
D. 16 条
解析:度数之和 = 8 × 3 = 24。由握手引理,边数 = 度数之和 / 2 = 24 / 2 = 12 条。选 B

三、路径与连通

基本概念

例:在下图中,从 v₁ 到 v₄ 有一条路径:v₁ → v₂ → v₃ → v₄(长度为 3)。图中还有一个回路:v₁ → v₂ → v₃ → v₁(长度为 3 的三角形回路)。

连通图 v₁ v₂ v₃ 非连通图 a b c d
左图是连通的(任意两点都有路径);右图不连通(d 与 a、b、c 之间没有路径)

连通分量:非连通图可以分成若干个连通的"部分",每个部分称为一个连通分量。右图有两个连通分量:{a, b, c} 和 {d}。

例:社交网络中,"朋友圈"就是连通分量——一个朋友圈内的人可以通过好友关系链相互联系,而不同朋友圈之间则没有联系。

概念 一个图有 6 个顶点:v₁–v₂、v₂–v₃、v₃–v₄、v₄–v₅、v₅–v₆ 之间有边,其他顶点之间没有边。这个图是连通的吗?
A. 是连通的
B. 不是连通的,因为它缺少三角形回路
C. 不是连通的,因为它有 6 个独立的部分
D. 无法判断
解析:顶点排列成一条链 v₁–v₂–v₃–v₄–v₅–v₆。虽然形状像一条线,但任意两个顶点之间都可以沿着这条链找到路径,所以它是连通的。选 A

四、树

先看一个问题

问题:一个公司有 6 个部门,需要铺设网络线缆将它们连接起来。要求任意两个部门之间都能通信(直接或间接),先忽略各条线缆长度的差异,最少需要多少条线缆?

思考:如果 6 个部门两两相连,需要 C(6,2) = 15 条线缆,但很多是多余的。实际上,我们只需要 5 条线缆,将它们连接成一种特殊的图——

树的定义

树(Tree):一个连通无回路的无向图称为树。树是最简单的连通图结构——用最少的边保持连通。

树的重要性质:一棵有 n 个顶点的树,恰好有 n − 1 条边。

树:|V| = n ⇒ |E| = n − 1

为什么是 n − 1?树是连通图,至少需要 n−1 条边才能把 n 个顶点串起来。如果少于 n−1 条边,图一定不连通;如果多于 n−1 条边,图中一定会出现回路。

例:一棵有 7 个顶点的树,必然有 6 条边。下面是一棵树的结构:

v₁ v₂ v₃ v₄ v₅ v₆ v₇
7 个顶点、6 条边的树。任意两顶点之间恰有一条路径,没有回路。

生成树

给定一个连通图 G,如果 G 的某个子图 T 是树,且包含 G 的所有顶点,则称 T 是 G 的一个生成树(Spanning Tree)

例:一个连通图通常有多个不同的生成树。找生成树就是在图中"剪掉"多余的边,保留下 n−1 条边使之不再有回路。

计算 一棵树有 15 个顶点,那么它有多少条边?
A. 14 条
B. 15 条
C. 30 条
D. 7 条
解析:树的性质:n 个顶点的树有 n − 1 条边。15 个顶点,边数 = 15 − 1 = 14 条。选 A

五、欧拉图

七桥问题——图论的起源

问题(哥尼斯堡七桥):18 世纪的哥尼斯堡城中有七座桥,连接着两座岛和两岸。问题是:能否从某处出发,恰好每座桥走一次且不重复,最后回到起点?

1736 年,欧拉(Euler)用图论的方法证明:这是不可能的。这个问题的解决标志着图论的诞生。

七桥模型允许同一对顶点之间有多条边,因此它是多重图;边的重复表示不同的桥。

七桥问题的图模型 A B C D d=3 d=5 d=3 d=3
七桥问题的图模型。四个顶点的度数分别为 3、5、3、3,全是奇数。

欧拉图的概念

欧拉定理:对于一个连通图(更一般地,忽略孤立顶点后连通的图),

图有欧拉回路 ⇔ 所有顶点的度数都是偶数

图有欧拉通路(但不是回路) ⇔ 恰好有两个顶点的度数为奇数

例:七桥问题中四个顶点的度数分别为 3、5、3、3,全是奇数,所以既没有欧拉回路也没有欧拉通路——不可能不重复地走完所有桥。

欧拉图示例 v₁ v₂ v₃ v₄
所有顶点度数均为偶数(d=2, 2, 2, 2),存在欧拉回路
实际应用:欧拉图的思想被用于邮递路线规划(中国邮路问题)、垃圾清运路线优化等——如何走遍所有街道且不重复,路线最短。
图论 以下哪个图是欧拉图(存在欧拉回路)?
A. 有 4 个顶点,度数分别为 3、3、1、1 的连通图
B. 有 4 个顶点,度数分别为 2、2、2、2 的连通图
C. 有 5 个顶点,度数分别为 1、1、2、2、2 的连通图
D. 有 3 个顶点,度数分别为 2、1、1 的连通图
解析:欧拉回路要求所有非孤立顶点属于同一连通分量且度数均为偶数。A 有 4 个奇度顶点;C 和 D 各有 2 个奇度顶点,只可能有欧拉通路而没有欧拉回路。只有 B 全为偶数且连通,是欧拉图。选 B

六、二分图

先看一个问题

问题:有 3 名工人和 4 项任务,每名工人只能做其中的某些任务。如何用图来表示这种"谁可以做哪项任务"的关系?

思考:我们把工人放在一边,任务放在另一边,如果工人能做某项任务,就连一条边。这样得到的图,顶点天然被分成了两组——二分图

二分图的定义

二分图(Bipartite Graph):一个图的顶点集 V 可以分成两个不相交的非空子集 U 和 W,使得每一条边都连接 U 中的一个顶点和 W 中的一个顶点(即边不连接同一子集内的顶点)。

二分图 U₁ U₂ U₃ W₁ W₂ W₃ W₄ 非二分图 a b c
左:二分图(所有边连接 U 和 W 两部分);右:三角形 K₃ 不是二分图(含奇环)

判定定理

二分图判定定理:一个图是二分图当且仅当它不含奇环(即回路的长度为奇数)。

例:正方形(4 个顶点回路)是二分图,但三角形(3 个顶点回路)不是。任何树都是二分图(因为树没有回路)。

染色法判定:给每个顶点染两种颜色之一,要求相邻顶点颜色不同。如果能完成染色,就是二分图。三角形无法用两种颜色给三个顶点正确染色(因为每两两相邻),所以不是二分图。

实际应用:二分图广泛用于匹配问题——如招聘平台上的求职者与职位匹配、在线约车中司机与乘客的匹配等。
图论 以下哪个图不是二分图?
A. 一条有 5 个顶点的链(路径图)
B. 一个有 6 个顶点的偶环(六边形回路)
C. 一个有 5 个顶点的奇环(五边形回路)
D. 一棵有 10 个顶点的树
解析:不含奇环的图是二分图。A(路径图)和 D(树)都没有回路;B(六边形回路)是偶环;只有 C(五边形回路)是奇环(长度为 5),不是二分图。选 C

七、染色原理

先看一个问题

问题:在一张地图上给各个区域涂色,要求相邻区域(有共同边界)的颜色不同。最少需要几种颜色?

思考:我们把每个区域看作一个顶点,相邻区域之间连一条边。问题就变成了:给图的每个顶点涂色,使得相邻顶点颜色不同。最少需要的颜色数就是图的色数

图的顶点染色问题

图的顶点染色(Vertex Coloring):给图的每个顶点分配一种颜色,使得任意两个相邻顶点颜色不同。

色数 χ(G)(Chromatic Number):给图 G 染色所需的最少颜色种数。

四色定理(Four Color Theorem):任何平面地图都可以用最多 4 种颜色给区域染色,使共享一段边界的区域颜色不同(只在一点接触不算相邻)。等价地,任何平面图的顶点都可以用至多 4 种颜色正常染色。

这是数学史上著名的定理——1852 年提出,直到 1976 年才首次由计算机辅助证明,也是第一个借助计算机证明的重要数学定理。

例:计算以下图的色数。

这个图需要几种颜色? A B C D E

图中 A、B、D 两两相连(形成一个三角形),因此至少需要 3 种颜色(A=红, B=蓝, D=绿)。

3 种颜色可以完成整张图的染色:例如 A=橙、B=蓝、D=绿;C=绿(与 D 不相邻),E=橙(与 A 不相邻)。

所以色数 χ(G) = 3

色数与完全图的关系:如果图 G 包含一个 Km(m 个顶点的完全图),那么 χ(G) ≥ m,因为 Km 需要 m 种颜色。同理,含有三角形的图色数至少为 3。
图的结构色数说明
空图(无边)1所有顶点可涂同色
二分图(含边)2两部分各涂一色;无边图的色数为 1
奇环(如 C₅)3奇数长度回路需要 3 色
完全图 Knn每个顶点必须颜色不同
平面图≤ 4四色定理保证
计算 一个完全图 K₅(5 个顶点两两相连)的色数是多少?
A. 5
B. 4
C. 3
D. 2
解析:完全图 Kn 中任意两个顶点都相邻,每个顶点必须颜色不同,所以色数 = n。K₅ 的色数为 5。选 A

章节测验得分

得分:0 / 7