离散数学 —— 图论
相关概念
- 无序积
设
- 笛卡尔积
设
图的定义
一个图 (Graph) 是一个序偶
< V, E > ,记为G =< V, E > ,其中:V = {v_1, v_2, · · · , v_n} 是有限非空集合,v_i 称为结点 (node),V 称为结点集。E 是有限集合,称为边集。E 中的每个元素都有V 中的结点对与之对应,称之为边 (edge)。
说人话呢就是,一个图由一系列结点和结点对应的边构成,其中“边”描述了结点间的相互关系。
若边
子图
设有图
- 若
V_1 \subseteq V, E_1 \subseteq E ,则称G_1 是G 的子图(subgraph),记为G_1 \subseteq G . - 若
G_1 \subseteq G ,且G_1 \neq G (即V_1 \subset V 或E_1 \subset E ),则称G_1 是G 的真子图(proper subgraph),记为G_1 \subset G . - 若
V_1 = V, E_1 \subseteq E ,则称G_1 是G 的生成子图(spanning subgraph).
可见生成图包含所有的结点
- 设
V_2 \subseteq V 且V_2 \neq \emptyset ,以V_2 为结点集,以两个端点均在V_2 中的边的全体为边集的G 的子图,称为V_2 导出的G 的子图,简称V_2 的导出子图(induced subgraph).
多重图、线图和简单图
- 平行边
- 在有向图中,两结点间 (包括结点自身间) 若有同始点和同终点的几条边,则这几条边称为平行边;
- 在无向图中,两结点间 (包括结点自身间) 若有几条边,则这几条边称为平行边。两结点 a、b 间相互平行的边的条数称为边 (a, b) 或 的重数。
含有平行边的图称为多重图(multi graph);非多重图称为线图(line graph);无环的线图称为简单图(simple graph)。
完全图和补图
设
-
完全图的性质
- 完全图的邻接矩阵除主对角线上的元素为 0 外,其余元素均为 1;
- 无向完全图
K_n 的边数为C^2_n =\frac{n(n − 1)}{2} ; - 有向完全图
K_n 的边数为P^2_n = n(n − 1) .
补图
设
- 补图的性质
- 补图
\bar{G} 就是从完全图中删除图G 中的边; - 图
G 和它的补图\bar{G} 有相同的结点,两个结点在\bar{G} 里相邻,当且仅当它们在G 里不相邻.
- 补图
若设简单图
补图描述了结点间互斥的关系
度数、边数与结点数
度的定义
图
在计算无向图的度时,入度和出度的符号是一样的。
度数为 1 的结点称为悬挂结点,以悬挂结点为端点的边称为悬挂边。
握手定理(选择题计算)
- 无向图所有结点的度数之和等于边的两倍
- 推论:度数为奇数的结点个数为偶数
- 有向图各结点的出度和等于入度和等于边数
图的表示法
- 邻接矩阵法
设图
不加约定的,邻接矩阵只能表示“线图”。
图的连通
通路和回路定义
给定图
- 若
\Gamma 中边e_i 的两端点是v_{i−1} 和v_i (有向图时v_{i−1} 与v_i 分别是e_i 的始点和终点),i = 1,2,··· ,k 则称\Gamma 为结点v_0 到结点v_k 的通路。v_0 和v_k 分别称为此通路的始点和终点,统称为通路的端点。通路中边的数目k 称为此通路的长度。当v_0 = v_k 时,此通路称为回路。 - 若通路中的所有边互不相同,则称此通路为简单通路, 否则称为复杂通路;若回路中的所有边互不相同,则称此回路为简单回路, 否则称为复杂回路。
- 若通路中的所有结点互不相同,所有边也互不相同,则称此通路为基本通路或者初级通路; 若回路中除
v_0 = v_k 外的所有结点互不相同, 所有边也互不相同,则称此回路为基本回路或者初级回路。
通路数量的计算 (下文的基础)
设
a^{(m)}_{ij} 为从结点v_i 到结点v_j 长度为m 的通路数目;a^{(m)}_{ii} 为结点v_i 到自身的长度为m 的回路数目;\sum_{i=1}^n\sum_{j=1}^na^{(m)}_{ij} 是G 中长度为m 的通路(含回路)总数.\sum_{i=1}^n a^{(m)}_{ii} 是G 中长度为m 的回路总数.
计算长度不大于 m 的通路数
设矩阵
连通性的计算与判断
可达关系判定-引理
-
在一个具有
n 个结点的图中,如果从结点v_i 到结点v_j(v_i \neq v_j) 存在一条通路,则从v_i 到v_j 存在一条长度不大于n−1 的通路/基本通路. - 在一个具有
n 个结点的图中,如果存在经过结点v_i 回路,则存在一条经过v_i 的长度不大于n 的回路/基本回路。
说人话就是,在一个图中,最多存在
可达性关系判定
设
则有当
可达性矩阵及其简化求法
设
由于计算可达性矩阵时需要进行多次乘加法运算,但是可达性矩阵最终是个布尔矩阵,因此可以考虑使用布尔运算进行简化:
设
节点间距离与计算
如果
-
性质
d(v_i,v_j) \geq 0 d(v_i,v_i) = 0 d(v_i,v_k) +d(v_k,vj) \geq d(v_i,v_j) - 无向图满足
d(v_i,v_j) = d(v_j,v_i) ,而有向图不行
- 计算
设
显然,这里也可以使用邻接矩阵的布尔积幂来判定
总结
以上内容说人话呢就是,利用“通路数量的计算”方法,如果要判断两节点间“可达性”,则只需要铁憨憨地将“路径长度”从
有向图的连通性
若无向图
- 性质
- 无向完全图
K_n(n \geq 1) 都是连通图; - 多于一个结点的零图都是非连通图;
- 非平凡无向线图
G 是连通图当且仅当它的可达性矩阵P 的所有元素均为1 。
- 无向完全图