Skip to content

图论基础 学习笔记

Index

图论 (Graph theory) 是数学的一个分支,图是图论的主要研究对象。图 (Graph) 是由若干给定的顶点及连接两顶点的边所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系。顶点用于代表事物,连接两顶点的边则用于表示两个事物间具有这种关系。

WARNING

图论相关定义在不同教材中往往会有所不同,遇到的时候需根据上下文加以判断。

图 (graph) 是一个二元组 G=(V(G),E(G))。其中 V(G) 是非空集,称为 点集 (vertex set),对于 V 中的每个元素,我们称其为 顶点 (vertex)节点 (node),简称 E(G)V(G) 各结点之间边的集合,称为 边集 (edge set)

常用 G=(V,E) 表示图。

V,E 都是有限集合时,称 G有限图

VE 是无限集合时,称 G无限图

图有多种,包括 无向图 (undirected graph)有向图 (directed graph)混合图 (mixed graph) 等。

G 为无向图,则 E 中的每个元素为一个无序二元组 (u,v),称作 无向边 (undirected edge),简称 边 (edge),其中 u,vV。设 e=(u,v),则 uv 称为 e端点 (endpoint)

G 为有向图,则 E 中的每一个元素为一个有序二元组 (u,v),有时也写作 uv,称作 有向边 (directed edge)弧 (arc),在不引起混淆的情况下也可以称作 边 (edge)。设 e=uv,则此时 u 称为 e起点 (tail)v 称为 e终点 (head),起点和终点也称为 e端点 (endpoint)。并称 uv 的直接前驱,vu 的直接后继。

G 为混合图,则 E 中既有 有向边,又有 无向边

G 的每条边 ek=(uk,vk) 都被赋予一个数作为该边的 ,则称 G赋权图。如果这些权都是正实数,就称 G正权图

G 的点数 |V(G)| 也被称作图 G阶 (order)

形象地说,图是由若干点以及连接点与点的边构成的。

相邻

在无向图 G=(V,E) 中,若点 v 是边 e 的一个端点,则称 ve关联的 (incident)相邻的 (adjacent)。对于两顶点 uv,若存在边 (u,v),则称 uv相邻的 (adjacent)

一个顶点 vV邻域 (neighborhood) 是所有与之相邻的顶点所构成的集合,记作 N(v)

一个点集 S 的邻域是所有与 S 中至少一个点相邻的点所构成的集合,记作 N(S),即:

N(S)=vSN(v)

简单图

自环 (loop):对 E 中的边 e=(u,v),若 u=v,则 e 被称作一个自环。

重边 (multiple edge):若 E 中存在两个完全相同的元素(边)e1,e2,则它们被称作(一组)重边。

简单图 (simple graph):若一个图中没有自环和重边,它被称为简单图。具有至少两个顶点的简单无向图中一定存在度相同的结点。(鸽巢原理)

如果一张图中有自环或重边,则称它为 多重图 (multigraph)

WARNING

在题目中,如果没有特殊说明,是可以存在自环和重边的,在做题时需特殊考虑。

度数

与一个顶点 v 关联的边的条数称作该顶点的 度 (degree),记作 d(v)。特别地,对于边 (v,v),则每条这样的边要对 d(v) 产生 2 的贡献。

对于无向简单图,有 d(v)=|N(v)|

握手定理(又称图论基本定理对于任何无向图 G=(V,E),有 vVd(v)=2|E|

推论:在任意图中,度数为奇数的点必然有偶数个。

d(v)=0,则称 v孤立点 (isolated vertex)

d(v)=1,则称 v叶节点 (leaf vertex)/ 悬挂点 (pendant vertex)

2d(v),则称 v偶点 (even vertex)

2d(v),则称 v奇点 (odd vertex)。图中奇点的个数是偶数。

d(v)=|V|1,则称 v支配点 (universal vertex)

对一张图,所有节点的度数的最小值称为 G最小度 (minimum degree),记作 δ(G);最大值称为 最大度 (maximum degree),记作 Δ(G)。即:δ(G)=minvGd(v)Δ(G)=maxvGd(v)

在有向图 G=(V,E) 中,以一个顶点 v 为起点的边的条数称为该顶点的 出度 (out-degree),记作 d+(v)。以一个顶点 v 为终点的边的条数称为该节点的 入度 (in-degree),记作 d(v)。显然 d+(v)+d(v)=d(v)

对于任何有向图 G=(V,E),有:

vVd+(v)=vVd(v)=|E|

若对一张无向图 G=(V,E),每个顶点的度数都是一个固定的常数 k,则称 Gk- 正则图 (k-regular graph)

如果给定一个序列 a,可以找到一个图 G,以其为度数列,则称 a 是 可图化 的。

如果给定一个序列 a,可以找到一个简单图 G,以其为度数列,则称 a 是 可简单图化 的。

路径

途径 (walk):途径是连接一连串顶点的边的序列,可以为有限或无限长度。形式化地说,一条有限途径 w 是一个边的序列 e1,e2,,ek,使得存在一个顶点序列 v0,v1,,vk 满足 ei=(vi1,vi),其中 i[1,k]。这样的途径可以简写为 v0v1v2vk。通常来说,边的数量 k 被称作这条途径的 长度(如果边是带权的,长度通常指途径上的边权之和,题目中也可能另有定义

迹 (trail):对于一条途径 w,若 e1,e2,,ek 两两互不相同,则称 w 是一条迹。

路径 (path)(又称 简单路径 (simple path)对于一条迹 w,若其连接的点的序列中点两两不同,则称 w 是一条路径。

回路 (circuit):对于一条迹 w,若 v0=vk,则称 w 是一条回路。

环 / 圈 (cycle)(又称 简单回路 / 简单环 (simple circuit)对于一条回路 w,若 v0=vk 是点序列中唯一重复出现的点对,则称 w 是一个环。

WARNING

这个名词的歧义尤其多,具体问题中应该视语境具体判断。

子图

对一张图 G=(V,E),若存在另一张图 H=(V,E) 满足 VVEE,则称 HG子图 (subgraph),记作 HG

若对 HG,满足 u,vV,只要 (u,v)E,均有 (u,v)E,则称 HG导出子图 / 诱导子图 (induced subgraph)

容易发现,一个图的导出子图仅由子图的点集决定,因此点集为 V(VV) 的导出子图称为 V 导出的子图,记作 G[V]

HG 满足 V=V,则称 HG生成子图 / 支撑子图 (spanning subgraph)

显然,G 是自身的子图,支撑子图,导出子图;无边图 是 G 的支撑子图。原图 G 和无边图都是 G 的平凡子图。

如果一张无向图 G 的某个生成子图 Fk- 正则图,则称 FG 的一个 k- 因子 (k-factor)

如果有向图 G=(V,E) 的导出子图 H=G[V] 满足 vV,(v,u)E,有 uV,则称 HG 的一个 闭合子图 (closed subgraph)

连通

无向图

对于一张无向图 G=(V,E),对于 u,vV,若存在一条途径使得 v0=u,vk=v,则称 uv连通的 (connected)。由定义,任意一个顶点和自身连通,任意一条边的两个端点连通。

若无向图 G=(V,E),满足其中任意两个顶点均连通,则称 G连通图 (connected graph)G 的这一性质称作 连通性 (connectivity)

HG 的一个连通子图,且不存在 F 满足 HFGF 为连通图,则 HG 的一个 连通块 / 连通分量 (connected component)(极大连通子图

有向图

对于一张有向图 G=(V,E),对于 u,vV,若存在一条途径使得 v0=u,vk=v,则称 u 可达 v。由定义,任意一个顶点可达自身,任意一条边的起点可达终点无向图中的连通也可以视作双向可达

若一张有向图的节点两两互相可达,则称这张图是 强连通的 (strongly connected)

若一张有向图的边替换为无向边后可以得到一张连通图,则称原来这张有向图是 弱连通的 (weakly connected)

与连通分量类似,也有 弱连通分量 (weakly connected component)(极大弱连通子图)和 强连通分量 (strongly connected component)(极大强连通子图

在本部分中,有向图的「连通」一般指「强连通

对于连通图 G=(V,E),若 VVG[VV](即从 G 中删去 V 中的点)不是连通图,则 V 是图 G 的一个 点割集 (vertex cut/separating set)。大小为一的点割集又被称作 割点 (cut vertex)

对于连通图 G=(V,E) 和整数 k,若 |V|k+1G 不存在大小为 k1 的点割集,则称图 Gk- 点连通的 (k-vertex-connected),而使得上式成立的最大的 k 被称作图 G点连通度 (vertex connectivity),记作 κ(G)对于非完全图,点连通度即为最小点割集的大小,而完全图 Kn 的点连通度为 n1

对于图 G=(V,E) 以及 u,vV 满足 uvuv 不相邻,u 可达 v,若 VVu,vV,且在 G[VV]uv 不连通,则 V 被称作 uv 的点割集。uv 的最小点割集的大小被称作 uv局部点连通度 (local connectivity),记作 κ(u,v)

还可以在边上作类似的定义:

对于连通图 G=(V,E),若 EEG=(V,EE)(即从 G 中删去 E 中的边)不是连通图,则 E 是图 G 的一个 边割集 (edge cut)。大小为一的边割集又被称作 桥 (bridge)

对于连通图 G=(V,E) 和整数 k,若 G 不存在大小为 k1 的边割集,则称图 Gk- 边连通的 (k-edge-connected),而使得上式成立的最大的 k 被称作图 G边连通度 (edge connectivity),记作 λ(G)对于任何图,边连通度即为最小边割集的大小

对于图 G=(V,E) 以及 u,vV 满足 uvu 可达 v,若 EE,且在 G=(V,EE)uv 不连通,则 E 被称作 uv 的边割集。uv 的最小边割集的大小被称作 uv局部边连通度 (local edge-connectivity),记作 λ(u,v)

点双连通 (biconnected) 几乎与 2- 点连通完全一致,除了一条边连接两个点构成的图,它是点双连通的,但不是 2- 点连通的。换句话说,没有割点的连通图是点双连通的。

边双连通 (2-edge-connected)2- 边双连通完全一致。换句话说,没有桥的连通图是边双连通的。

与连通分量类似,也有 点双连通分量 (biconnected component)(极大点双连通子图)和 边双连通分量 (2-edge-connected component)(极大边双连通子图

Whitney 定理:对任意的图 G,有 κ(G)λ(G)δ(G)不等式中的三项分别为点连通度、边连通度、最小度

稀疏图 / 稠密图

若一张图的边数远小于其点数的平方,那么它是一张 稀疏图 (sparse graph)

若一张图的边数接近其点数的平方,那么它是一张 稠密图 (dense graph)

这两个概念并没有严格的定义,一般用于讨论 时间复杂度 为 O(|V|2) 的算法与 O(|E|) 的算法的效率差异(在稠密图上这两种算法效率相当,而在稀疏图上 O(|E|) 的算法效率明显更高

补图

对于无向简单图 G=(V,E),它的 补图 (complement graph) 指的是这样的一张图:记作 G¯,满足 V(G¯)=V(G),且对任意节点对 (u,v)(u,v)E(G¯) 当且仅当 (u,v)E(G)

反图

对于有向图 G=(V,E),它的 反图 (transpose graph) 指的是点集不变,每条边反向得到的图,即:若 G 的反图为 G=(V,E),则 E={(v,u)|(u,v)E}

特殊的图

若无向简单图 G 满足任意不同两点间均有边,则称 G完全图 (complete graph)n 阶完全图记作 Kn。若有向图 G 满足任意不同两点间都有两条方向不同的边,则称 G有向完全图 (complete digraph)

边集为空的图称为 无边图 (edgeless graph)空图 (empty graph)零图 (null graph)n 阶无边图记作 KnNnNnKn 互为补图。

WARNING

零图 (null graph) 也可指 零阶图 (order-zero graph) K0,即点集与边集均为空的图。

若有向简单图 G 满足任意不同两点间都有恰好一条边(单向则称 G竞赛图 (tournament graph)

若无向简单图 G=(V,E) 的所有边恰好构成一个圈,则称 G环图 / 圈图 (cycle graph)n(n3) 阶圈图记作 Cn。易知,一张图为圈图的充分必要条件是,它是 2- 正则连通图。

若无向简单图 G=(V,E) 满足,存在一个点 v 为支配点,其余点之间没有边相连,则称 G星图 / 菊花图 (star graph)n+1(n1) 阶星图记作 Sn

若无向简单图 G=(V,E) 满足,存在一个点 v 为支配点,其它点之间构成一个圈,则称 G轮图 (wheel graph)n+1(n3) 阶轮图记作 Wn

若无向简单图 G=(V,E) 的所有边恰好构成一条简单路径,则称 G链 (chain/path graph)n 阶的链记作 Pn。易知,一条链由一个圈图删去一条边而得。

如果一张无向连通图不含环,则称它是一棵 树 (tree)

如果一张无向连通图包含恰好一个环,则称它是一棵 基环树 (pseudotree)

如果一张有向弱连通图每个点的入度都为 1,则称它是一棵 基环外向树

如果一张有向弱连通图每个点的出度都为 1,则称它是一棵 基环内向树

多棵树可以组成一个 森林 (forest),多棵基环树可以组成 基环森林 (pseudoforest),多棵基环外向树可以组成 基环外向树森林,多棵基环内向树可以组成 基环内向森林 (functional graph)

如果一张无向连通图的每条边最多在一个环内,则称它是一棵 仙人掌 (cactus)。多棵仙人掌可以组成 沙漠

如果一张图的点集可以被分为两部分,每一部分的内部都没有连边,那么这张图是一张 二分图 (bipartite graph)。如果二分图中任何两个不在同一部分的点之间都有连边,那么这张图是一张 完全二分图 (complete bipartite graph/biclique),一张两部分分别有 n 个点和 m 个点的完全二分图记作 Kn,m

如果一张图可以画在一个平面上,且没有两条边在非端点处相交,那么这张图是一张 平面图 (planar graph)。一张图的任何子图都不是 K5K3,3 是其为一张平面图的充要条件。对于简单连通平面图 G=(V,E)V3|E|3|V|6

参考资料

图论 - 维基百科,自由的百科全书

图论相关概念 - OI Wiki