加载中...
不想等待可以点我关掉

一、图的基本概念

1.1 图的定义

定义:一个图 GG 记作 G=V,EG = \langle V, E \rangle,其中:

  • VV节点集(顶点集),包含图中所有顶点
  • EE边集,包含图中所有边

1.2 基本术语

端点与关联:若边 ee 连接顶点 viv_ivjv_j,则称 viv_ivjv_jee端点ee 关联于 viv_ivjv_j

平行边:关联于相同两个顶点的边称为平行边

邻接节点:两个顶点之间有边相连,则称它们为邻接节点(邻接点)。

:两个端点是同一个顶点的边称为(自环)。

孤立点:不与任何边关联的顶点称为孤立点

邻接边:有公共顶点的两条边称为邻接边

零图:仅由孤立点组成的图(E=E = \emptyset)。

平凡图:只有一个孤立点组成的图(只有一个顶点的零图)。

1.3 度数

定义:顶点 vv度数 d(v)d(v) 是与 vv 关联的边的数目(环提供2度)。

悬挂节点:度数为1的顶点称为悬挂节点

悬挂边:与悬挂节点关联的边称为悬挂边

1.4 有向图的术语

对于有向图,边是有方向的,记作 vi,vj\langle v_i, v_j \rangle

  • viv_i 称为该边的起点
  • vjv_j 称为该边的终点

出度:以 vv 为起点的边的数目,记作 d+(v)d^+(v)

入度:以 vv 为终点的边的数目,记作 d(v)d^-(v)

度数d(v)=d+(v)+d(v)d(v) = d^+(v) + d^-(v)

有向图的平行边:起点相同且终点相同的边。

1.5 图的阶

定义:图中顶点的个数 nn 称为图的,记作 n阶图


二、握手定理

2.1 握手定理

定理:在图 G=V,EG = \langle V, E \rangle 中,若 V=n|V| = nE=m|E| = m,则:

i=1nd(vi)=2m\sum_{i=1}^{n} d(v_i) = 2m

所有顶点的度数之和等于边数的两倍

原理:每条边为两个端点各提供1度,所以每条边对应2度。

2.2 推论

推论1:任何图中,度数为奇数的顶点个数必为偶数

理由:度数之和为偶数(2m),偶数个奇数之和才能为偶数。

推论2:在有向图中,所有顶点的出度之和等于所有顶点的入度之和,且都等于边数。

i=1nd+(vi)=i=1nd(vi)=m\sum_{i=1}^{n} d^+(v_i) = \sum_{i=1}^{n} d^-(v_i) = m

2.3 应用示例

例题1:无向图 GG 中顶点数 nn 与边数 mm 相等,有两度和三度节点各两个,其余节点均为悬挂节点。求边数。

  • 设边数为 mm,则顶点数也为 mm
  • 由握手定理:d(vi)=2m\sum d(v_i) = 2m
  • 两度节点提供:2×2=42 \times 2 = 4
  • 三度节点提供:3×2=63 \times 2 = 6
  • 悬挂节点数:m4m - 4,每个提供1度
  • 方程:4+6+(m4)=2m4 + 6 + (m - 4) = 2m
  • 解得:m=6m = 6

例题2:无向图 GG 有8条边,一个一度节点,两个两度节点,一个五度节点,其余节点度数均为三。求三度节点的个数。

  • 由握手定理:d(vi)=2×8=16\sum d(v_i) = 2 \times 8 = 16
  • 设三度节点有 xx
  • 方程:1×1+2×2+1×5+3x=161 \times 1 + 2 \times 2 + 1 \times 5 + 3x = 16
  • 解得:x=2x = 2

例题3:判断自然数序列 3,3,2,2,1 和 4,2,2,1,1 能否作为图的节点度数序列。

  • 序列 3,3,2,2,1:有3个奇数度节点,不满足推论1(奇数度节点必须偶数个),不能
  • 序列 4,2,2,1,1:有2个奇数度节点,满足条件,可以(可画出对应图)

例题4:n阶无向简单图,每个顶点度数都是k,则称为k-正则图。求k-正则图的边数。

  • 由握手定理:nk=2mnk = 2m
  • 边数:m=nk2m = \frac{nk}{2}

三、简单图与完全图

3.1 简单图

定义:不含平行边和环的图称为简单图

3.2 完全图

无向完全图:任意两个不同顶点之间都有边相连的简单无向图,记作 KnK_n

  • KnK_nn(n1)2\frac{n(n-1)}{2} 条边

有向完全图:任意两个不同顶点之间都有两条方向相反的边相连的简单有向图。

3.3 补图

定义:给定图 GG,由 GG 中所有结点和所有能使 GG 成为完全图的添加边所组成的图,称为 GG补图 G\overline{G}。即完全图去掉 GG 的边形成的图。

自补图:若图 GG 与其补图 G\overline{G} 同构,则称 GG自补图

3.4 子图与生成子图

子图:图 G=V,EG = \langle V, E \rangleG=V,EG' = \langle V', E' \rangle,若 VVV' \subseteq VEEE' \subseteq E,则称 GG'GG子图

生成子图:若 GG'GG 的子图,且 V=VV' = V(所有顶点都保留,只取部分边),则称 GG'GG生成子图

3.5 图的同构

定义:两个图 G1=V1,E1G_1 = \langle V_1, E_1 \rangleG2=V2,E2G_2 = \langle V_2, E_2 \rangle,若存在从 V1V_1V2V_2 的一一对应(双射),并且这种映射保持了边的对应关系,则称这两个图同构,记作 G1G2G_1 \cong G_2

同构的性质

  • 同构的图本质上是同一个图,只不过结点的编号不同
  • 对于同一个图,可以画出不同形状的图解,但这些图解一定是同构的
  • 图的同构关系是等价关系(自反、对称、传递)

图同构的必要条件

  1. 结点数、边数相同
  2. 度数相同的结点数目相等
  3. 有相同的特性(如都有长度为 kk 的回路等)
  4. 都是(或都不是)平面图

注意:以上条件是必要条件而非充分条件。满足这些条件不一定同构,不满足则一定不同构。

判断方法

  • 若结论是同构:必须指出点点之间的对应关系,并说明边保持了这种对应关系
  • 若结论是不同构:指出不符合上述必要条件的哪一条

四、通路与回路

4.1 通路

定义:图中顶点和边交替出现的序列 v0e1v1e2v2ekvkv_0 e_1 v_1 e_2 v_2 \cdots e_k v_k 称为从 v0v_0vkv_k通路

通路长度:通路中包含的边的数目

示例:从 v1v_1 经边 e1e_1v2v_2,再经 e3e_3v5v_5,再经 e7e_7v4v_4,这是长度为3的通路。

4.2 通路的分类

类型定义
点、边交替出现的序列(可有重复的点和边)
边没有重复的路(也称简单通路)
通路点没有重复的路(也称基本通路)
回路起点和终点相同的路
简单回路边没有重复的回路
起点和终点重合、其他点不重合的路(闭的通路)

要点

  • 迹(简单通路)一定是路,反之不一定
  • 通路(基本通路)一定是迹,反之不一定
  • 圈(基本回路)一定是简单回路,反之不一定
  • 对于n阶图,基本通路/回路的长度最多为 n1n-1 / nn

4.3 路的存在性定理

定理:图中有 nn 个结点,若两个结点间有路,则一定有一条边数小于 nn 的路。


五、连通性

5.1 无向图的连通性

定义:在无向图 GG 中,若任意两个顶点之间都存在通路,则称 GG连通图;否则称为非连通图

5.2 有向图的可达性

定义:设 GG 是有向图,uuvvGG 中的两个顶点:

  • 若从 uuvv 存在通路,称 uu 可达 vv,记作 uvu \to v
  • uu 可达 vvvv 可达 uu,称 uuvv 相互可达
  • 规定:一个顶点到自身总是可达的

5.3 有向图的连通性分类

连通类型定义
强连通任意两个顶点都相互可达
单向连通任意两个顶点之间,至少从一个方向可达
弱连通略去边的方向后得到的无向图是连通的

包含关系:强连通 \Rightarrow 单向连通 \Rightarrow 弱连通

示例分析

  • 图中任意两个顶点相互可达 → 强连通
  • v4v_4 可达 v1v_1,但 v1v_1 不可达 v4v_4单向连通(不是强连通)
  • 有向图去掉方向后是连通的 → 弱连通(不是单向连通)

5.4 连通分支

定义:无向图中的连通关系是等价关系,其对应的划分中的每个等价类的导出子图称为一个连通分支

W(G)W(G):无向图 GG连通分支数

连通图W(G)=1W(G) = 1,即只有一个连通分支。

5.5 割点与割边

点割集:连通图 GG 的点的子集 V1V_1GG 去掉 V1V_1 后变得不连通,但去掉 V1V_1 的任意一个真子集后仍然连通,则称 V1V_1GG点割集

割点:点割集只包含一个点,即连通图去掉该点后变得不连通。

边割集:连通图 GG 的边的子集 E1E_1GG 去掉 E1E_1 后变得不连通,但去掉 E1E_1 的任意一个真子集后仍然连通,则称 E1E_1GG边割集

割边:边割集只包含一条边,即连通图去掉该边后变得不连通。

5.6 连通度

点连通度 κ(G)\kappa(G):使 GG 成为不连通图要删去的的最少数目。

  • GG 不连通,κ(G)=0\kappa(G) = 0
  • GG 有割点,κ(G)=1\kappa(G) = 1

边连通度 λ(G)\lambda(G):使 GG 成为不连通图要删去的的最少数目。

  • GG 不连通,λ(G)=0\lambda(G) = 0
  • GG 有割边,λ(G)=1\lambda(G) = 1

连通度不等式:对于任意图 GG,有:

κ(G)λ(G)δ(G)\kappa(G) \leq \lambda(G) \leq \delta(G)

其中 δ(G)\delta(G) 是图的最小度。

5.7 割点的等价条件

定理:连通无向图 GG 的结点 vv 是割点 \Leftrightarrow 存在两个结点,使得这两个结点间的每一条路都经过 vv


六、邻接矩阵与可达矩阵

6.1 邻接矩阵

定义:设 GG 是n阶有向图,V={v1,v2,,vn}V = \{v_1, v_2, \cdots, v_n\}GG邻接矩阵 A=(aij)n×nA = (a_{ij})_{n \times n},其中 aija_{ij} 表示从 viv_ivjv_j 的边的数目。

示例:有向图 GG 有4个顶点,邻接矩阵为:

A=(1200001010010010)A = \begin{pmatrix} 1 & 2 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}

6.2 邻接矩阵的幂

定理AnA^n 中的元素 aij(n)a_{ij}^{(n)} 表示从 viv_ivjv_j 长度为n的通路的数目

计算方法

  • A1=AA^1 = A:元素表示长度为1的通路数
  • A2=A×AA^2 = A \times A:元素表示长度为2的通路数
  • An=An1×AA^n = A^{n-1} \times A:元素表示长度为n的通路数

应用

  • viv_ivjv_j 长度为k的通路数 = AkA^k 中第 ii 行第 jj 列的元素
  • viv_i 处长度为k的回路数 = AkA^k 中第 ii 行第 ii 列的元素(对角线元素)
  • 长度为k的通路总数 = AkA^k 中所有元素之和
  • 长度为k的回路总数 = AkA^k 中对角线元素之和

6.3 可达矩阵

定义:图 GG可达矩阵 P=(pij)n×nP = (p_{ij})_{n \times n},其中:

pij={1,vi可达vj0,vi不可达vjp_{ij} = \begin{cases} 1, & \text{若} v_i \text{可达} v_j \\ 0, & \text{若} v_i \text{不可达} v_j \end{cases}

求法:若 A,A2,,AnA, A^2, \cdots, A^n 中第 ii 行第 jj 列的元素至少有一个非零,则 pij=1p_{ij} = 1;否则 pij=0p_{ij} = 0

应用

  • 可达矩阵全为1 → 强连通图
  • 可达矩阵不对称 → 不是强连通(可能是单向连通)

6.4 例题

例题:已知有向图 GG 的邻接矩阵 AA,求:
(1)v1v_1v4v_4 长度为1,2,3,4的通路各几条
(2)v1v_1 处长度为1,2,3,4的回路各几条
(3)长度为4的通路和回路总数
(4)写出可达矩阵,判断连通类型

(1)v1v_1v4v_4 长度为k的通路数 = AkA^k 中第1行第4列的元素

  • A1A^1:0条
  • A2A^2:0条
  • A3A^3:2条
  • A4A^4:2条

(2)v1v_1 处长度为k的回路数 = AkA^k 中第1行第1列的元素

  • A1A^1:1条
  • A2A^2:1条
  • A3A^3:3条
  • A4A^4:5条

(3)长度为4的通路总数 = A4A^4 中所有元素之和
长度为4的回路总数 = A4A^4 中对角线元素之和

(4)由于 A4A^4 中所有元素都不为0,说明任意两个顶点之间都有通路,可达矩阵全为1,所以 GG强连通图

6.5 完全关联矩阵

无向图的关联矩阵:行表示结点,列表示边。若点边关联则用1表示,否则用0表示。

  • 若边不是环,对应的列只在关联的两个点所对应的行上是1,其余为0
  • 若边是环,在对应点上的值为2,其余为0
  • 每一行中1的个数等于该点的度
  • 孤立点对应的行所有元素全为0

有向图的关联矩阵:边对应的列中,起点对应的行用1表示,终点对应的行用-1表示,无关联的行用0表示。

  • 不能表示有向环
  • 每一列只有一个1和一个-1,其余为0
  • 每一行中1的个数等于该点的出度,-1的个数等于该点的入度
  • 孤立点对应的行所有元素都是0

本节小结

  • 图的定义G=V,EG = \langle V, E \rangle,V是顶点集,E是边集
  • 基本术语:端点、平行边、邻接点、邻接边、环、孤立点、零图、平凡图、度数、悬挂节点
  • 有向图术语:起点、终点、出度、入度
  • 握手定理:度数和 = 2×边数,奇数度节点个数为偶数
  • 简单图与完全图:不含平行边和环为简单图,任意两点间都有边为完全图 KnK_n
  • 补图:完全图去掉原图的边,自补图与其补图同构
  • 子图与生成子图:子图取部分点和边,生成子图取所有点和部分边
  • 图的同构:点点一一对应且保持边关系,同构是等价关系
  • 正则图:每个顶点度数都相同的简单图
  • 通路分类:路、迹(边不重复)、通路(点不重复)、圈(闭的通路)
  • 路的存在性定理:n阶图中两结点间有路则必有边数小于n的路
  • 连通性:无向图连通;有向图分强连通、单向连通、弱连通
  • 连通分支:连通关系的等价类,W(G)W(G) 为连通分支数
  • 割点与割边:去掉后使图不连通的点/边
  • 连通度κ(G)λ(G)δ(G)\kappa(G) \leq \lambda(G) \leq \delta(G)
  • 邻接矩阵AnA^n 表示长度为n的通路数
  • 可达矩阵:判断顶点间是否可达,判断连通类型
  • 完全关联矩阵:无向图用0/1表示点边关联,有向图用1/-1表示起点终点

练习题

练习1:握手定理应用

题目:无向图 GG 中顶点数 nn 与边数 mm 相等,有两度和三度节点各两个,其余节点均为悬挂节点。求边数。

设边数为 mm,则顶点数也为 mm。由握手定理 d(vi)=2m\sum d(v_i) = 2m

  • 两度节点贡献:2×2=42 \times 2 = 4
  • 三度节点贡献:3×2=63 \times 2 = 6
  • 悬挂节点数:m4m - 4,每个贡献1度

方程:4+6+(m4)=2m4 + 6 + (m - 4) = 2m,解得 m=6m = 6

练习2:度数序列判断

题目:判断自然数序列 3, 3, 2, 2, 1 和 4, 2, 2, 1, 1 能否作为图的节点度数序列。

  • 序列 3, 3, 2, 2, 1:有3个奇数度顶点(3, 3, 1),不满足握手定理推论(奇数度顶点必须偶数个),不能
  • 序列 4, 2, 2, 1, 1:有2个奇数度顶点(1, 1),满足条件,可以

练习3:邻接矩阵应用

题目:已知有向图 GG 的邻接矩阵 A=(1200001010010010)A = \begin{pmatrix} 1 & 2 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 1 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix},求:(1) v1v_1v4v_4 长度为3的通路数;(2) v1v_1 处长度为2的回路数;(3) 长度为2的通路总数。

计算 A2=A×AA^2 = A \times A

A2=(1220100112101001)A^2 = \begin{pmatrix} 1 & 2 & 2 & 0 \\ 1 & 0 & 0 & 1 \\ 1 & 2 & 1 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}

(1) v1v_1v4v_4 长度为3的通路数 = A3A^3 中第1行第4列的元素。计算 A3=A2×AA^3 = A^2 \times A(此处省略详细计算),结果为2条。

(2) v1v_1 处长度为2的回路数 = A2A^2 中第1行第1列的元素 = 1。

(3) 长度为2的通路总数 = A2A^2 中所有元素之和 = 1+2+2+0+1+0+0+1+1+2+1+0+1+0+0+1=131+2+2+0+1+0+0+1+1+2+1+0+1+0+0+1 = 13

练习4:连通类型判断

题目:判断以下有向图的连通类型:(1) 可达矩阵全为1的图;(2) 可达矩阵不对称的图。

(1) 可达矩阵全为1 → 任意两个顶点都相互可达 → 强连通图

(2) 可达矩阵不对称 → 存在 viv_i 可达 vjv_jvjv_j 不可达 viv_i不是强连通,可能是单向连通或弱连通。


关键术语速查

术语定义
G=V,EG = \langle V, E \rangle,顶点集和边集的二元组
端点边所关联的顶点
平行边关联于相同两个顶点的边
邻接节点有边相连的两个顶点
两个端点是同一顶点的边
孤立点不与任何边关联的顶点
零图仅由孤立点组成的图,E=E = \emptyset
平凡图只有一个孤立点的图
邻接边有公共顶点的两条边
度数d(v)d(v),与顶点 vv 关联的边数
悬挂节点度数为1的顶点
悬挂边与悬挂节点关联的边
出度d+(v)d^+(v),以 vv 为起点的边数
入度d(v)d^-(v),以 vv 为终点的边数
握手定理d(vi)=2m\sum d(v_i) = 2m
简单图不含平行边和环的图
完全图任意两个不同顶点间都有边的简单图
补图完全图去掉原图的边组成的图
自补图与其补图同构的图
子图点集和边集都是原图子集的图
生成子图保留所有顶点、取部分边的子图
图的同构点点一一对应且保持边关系,G1G2G_1 \cong G_2
通路顶点和边交替出现的序列
边没有重复的路(简单通路)
基本通路点没有重复的路(也称通路)
回路起点和终点相同的路
起点和终点重合、其他点不重合的闭通路
路的存在性n阶图中两结点间有路则必有边数小于n的路
连通图任意两个顶点间都有通路的无向图
连通分支连通关系的等价类,W(G)W(G) 为连通分支数
割点去掉后使连通图不连通的点
割边去掉后使连通图不连通的边
点连通度κ(G)\kappa(G),使图不连通需删去的最少点数
边连通度λ(G)\lambda(G),使图不连通需删去的最少边数
连通度不等式κ(G)λ(G)δ(G)\kappa(G) \leq \lambda(G) \leq \delta(G)
可达uuvv 存在通路
强连通任意两个顶点都相互可达
单向连通任意两个顶点间至少一个方向可达
弱连通略去方向后无向图连通
邻接矩阵A=(aij)A = (a_{ij})aija_{ij} 表示 viv_ivjv_j 的边数
可达矩阵P=(pij)P = (p_{ij})pij=1p_{ij} = 1 表示 viv_i 可达 vjv_j
完全关联矩阵行表示结点、列表示边的矩阵,无向图用0/1,有向图用1/-1
K-正则图每个顶点度数都是K的简单图
图中顶点的个数