Skip to content

图论基础 学习笔记

Index

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

WARNING

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

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

常用 表示图。

都是有限集合时,称 有限图

是无限集合时,称 无限图

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

为无向图,则 中的每个元素为一个无序二元组 ,称作 无向边 (undirected edge),简称 边 (edge),其中 。设 ,则 称为 端点 (endpoint)

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

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

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

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

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

相邻

在无向图 中,若点 是边 的一个端点,则称 关联的 (incident)相邻的 (adjacent)。对于两顶点 ,若存在边 ,则称 相邻的 (adjacent)

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

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

简单图

自环 (loop):对 中的边 ,若 ,则 被称作一个自环。

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

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

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

WARNING

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

度数

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

对于无向简单图,有

握手定理(又称图论基本定理对于任何无向图 ,有

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

,则称 孤立点 (isolated vertex)

,则称 叶节点 (leaf vertex)/悬挂点 (pendant vertex)

,则称 偶点 (even vertex)

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

,则称 支配点 (universal vertex)

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

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

对于任何有向图 ,有:

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

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

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

路径

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

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

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

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

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

WARNING

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

子图

对一张图 ,若存在另一张图 满足 ,则称 子图 (subgraph),记作

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

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

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

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

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

如果有向图 的导出子图 满足 ,有 ,则称 的一个 闭合子图 (closed subgraph)

连通

无向图

对于一张无向图 ,对于 ,若存在一条途径使得 ,则称 连通的 (connected)。由定义,任意一个顶点和自身连通,任意一条边的两个端点连通。

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

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

有向图

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

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

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

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

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

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

对于连通图 和整数 ,若 不存在大小为 的点割集,则称图 - 点连通的 (-vertex-connected),而使得上式成立的最大的 被称作图 点连通度 (vertex connectivity),记作 对于非完全图,点连通度即为最小点割集的大小,而完全图 的点连通度为

对于图 以及 满足 不相邻, 可达 ,若 ,且在 不连通,则 被称作 的点割集。 的最小点割集的大小被称作 局部点连通度 (local connectivity),记作

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

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

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

对于图 以及 满足 可达 ,若 ,且在 不连通,则 被称作 的边割集。 的最小边割集的大小被称作 局部边连通度 (local edge-connectivity),记作

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

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

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

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

稀疏图 / 稠密图

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

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

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

补图

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

反图

对于有向图 ,它的 反图 (transpose graph) 指的是点集不变,每条边反向得到的图,即:若 的反图为 ,则

特殊的图

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

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

WARNING

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

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

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

若无向简单图 满足,存在一个点 为支配点,其余点之间没有边相连,则称 星图 / 菊花图 (star graph)() 阶星图记作

若无向简单图 满足,存在一个点 为支配点,其它点之间构成一个圈,则称 轮图 (wheel graph)() 阶轮图记作

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

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

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

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

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

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

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

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

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

参考资料

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

图论相关概念 - OI Wiki