Skip to content

8

:material-circle-edit-outline: 约 2336 个字 :material-clock-time-two-outline: 预计阅读时间 8 分钟

image-20240606170357143

20240606补天ing PPT 离散数学2024-05-31第3-5节 (zju.edu.cn)

图论,其实fds里代码都全写过一遍的了,主要学学概念

图的分类

无向图

无序偶我们用的是花括号(就是集合),有序偶用的小括号,序偶默认都是有序偶

  • simple graph 简单图:不同结点才有边,且只能有一条边
  • multigraph 多图:不同结点之间可以有多条边,被称为平行边
  • pseudograph 伪图:结点自己可以有边(loop)

有向图

有向图都允许有loop

  • directed graph :不允许有平行边,注意有向边平行得方向一致
  • directed multigraph :允许有平行边

image-20240606182127729

图的术语

无向图

  • \(adjacent/neighbor\) 点与点相邻,两个结点相邻表示他们之间有条边
  • \(incident\) \(with\) 点与边关联,边与其两端结点有关联,端点又叫 \(endpoint\)
  • \(degree\) 度数,一个结点的度数即其有的边
    • \(deg_{isolated\;vertex}=0\),孤立点
    • \(deg_{pendant\;vertex}=1\),悬挂点

无向图有个握手定理,就是度数和等于边的两倍

image-20240606182940720

有向图

  • \(adjacent\) :要求是起点与终点相邻,终点被起点相邻,有方向

image-20240606183536612

度数也有出入两种

image-20240606183556198

注意一个环对两种度都贡献了 \(1\)

有向图也有个握手定理,就是度数和等于边的两倍

image-20240606183719821

特殊的图

image-20240606183749939

完全图:无向简单图,已经无法增加任何边了,用 \(K_n\) 表示

image-20240607111310600

image-20240607111336850

有且只有一个顶点与cycle的所有顶点相连

image-20240607114900075

\(n\) 维立方体,我们知道二维立方体就行了,超立方体没学过

两部图,结点分为两部分,所有边都是跨越这两个部分的,同一部分的顶点之间不存在边

image-20240607115421361

\(C_6\) 两个三角形顶点分别为一组即可

只要图里面含有奇数长度的回路,肯定不是两部图

完全的两部图叫完全两部图,记为 \(K_{m,n}\)\(m\)\(n\) 为两部分各自的度

image-20240607115740161

更多的图

  • subgraph 子图:结点和边都是另一个图的子集、即从另一个图中拆分出来的图
  • spanning subgraph 生成子图:结点一样多,边是子集
  • 简单图的 union :边和点各自并

图的表示与同构(isomorphism)

图的表示

adjacency matrix 邻接矩阵

复习一下,邻接是结点与结点之间的关系

简单图必是 0-1对称矩阵

image-20240607121858853

多图和伪图就不是0-1矩阵了,数字表示连接的边数

image-20240607122133280

不过,无向图矩阵都是对称的,有向图就不保证对称了

incidence matrix 关联矩阵

从 点x点 的方阵变成 点x边 的矩阵

image-20240607122716663

一个边只 incidence with 一个点,或者说列向量只有一个1,那就是一个 loop

平行边对应相同的列向量

同构

两个图,结点一样多,边一样多,如果能找出一个结点对到结点对的双射,任意一对节点对都有边,那这两个图就是同构的

image-20240607123154097

这个双射也叫同构映射

死去的线代开始攻击我

image-20240607123033186

image-20240607123635669

这两个是不同构的,\(G\) 中两度的结点连的都是三度的,\(H\) 中则不是

image-20240607124252951

判断不同构简单,判断同构见fds笔记

离散数学2024-06-07第3-5节 (zju.edu.cn)

连通性概念

无向图

  • path 道路,已经讲过了
    • circuit 回路是首尾相连的道路
    • simple path 是边不重复的道路

image-20240607161429695

多提一嘴,无向图用 \(f(e_1)=\{x_0,x_1\}\) 来描述边

无向图里面,任意两个结点都有道路,这个图就是连通的 (connected)

定理:连通无向图的任意两个顶点必定存在简单道路

有向图

有向图用 \(f(e_1)=(x_0,x_1)\) 来描述边

有向图的 circuit 就是起点与终点一致

其它从无向图类推即可

有向图的连通性强度

在连通的有向图里,任意两顶点都有来回的两条道路就是强连通,否则就是弱连通

image-20240607162937086

注意这两个概念的前提是连通图,第三个根本没连通

cut

不连通的图可以拆分为多个连通的子图,这些子图叫做 connected components

一个连通图里,那些被拿走会产生 connected components 的顶点叫 cut vertices,边则叫做 cut edge / bridge,连通性会下降

image-20240607162314471

连通性计算

怎么求两个顶点之间长度为 \(r\) 的道路的数量:

image-20240607163322413

类似闭包的计算,可用归纳法证明

image-20240607163616851

无向图的连通性,只需要算 \(\Sigma A^i\) ,看对角线之外是否全部非0,有一个为0就说明不连通

有向图。。。

道路与同构

回路常用于证明两个图不同构

image-20240607164154668

欧拉图

欧拉回路是一个包含图中所有边的简单回路,欧拉道路是一个包含所有边的简单道路,欧拉图是存在欧拉回路的图

能一笔画回到起点的就是欧拉图

image-20240607164448524

上面第一个是欧拉图,其它不是,第三个只有欧拉道路没有回路

欧拉图的充分必要条件:是连通图,且每个顶点都是偶数度

很显然,每个点都是一进一出,一个点只有奇数条边说明还有没被访问的边

只有欧拉道路、没有欧拉回路的图的充要条件:奇数度的结点有且只有两个

哈密尔顿

哈密尔顿没有充要条件

哈密尔顿道路是一个访问了所有结点结点且均只访问一遍的道路,同理有哈密尔顿回路

一个存在 Hamilton 回路的连通图叫 Hamilton 图

image-20240607170620818

Hamilton 图的充分条件:一个顶点数 \(n\ge3\) 简单连通图,每一个顶点的度 \(\ge n/2\),则这个图是哈密尔顿图

以及,一个有 \(n\) 个结点的简单图,如果任意一对节点的度数之和 \(\ge n\),则这个图是哈密尔顿图

从度数和入手,反证法证明是连通图

先证有哈密尔顿道路再证是一定是回路,都是利用度数

image-20240607171647150

死去的数逻开始攻击我

就是设计状态机

image-20240607171719282

最短路径问题

死去的fds开始攻击我,dijkstra

加权图 (weighted graph) 每条边都有个权重,道路长度为权重和

松弛迭代

image-20240616145825753

首先将起点距离设置为0,其它为无穷,表示这些边在考虑范围之外,等价于没有与起点相连,然后将起点纳入考虑范围

image-20240616150009166

每轮先更新权值,然后加一个最近的点,需要判断原最短路和原最短路加新结点哪个更小,且需要更新其它点的权值

迭代到包含终点为止

image-20240616150404164

image-20240616150443925

注意权值是起点到这些点的距离,没连上就是无穷大

image-20240616150637489

注意是先更新所有可以更新的权值,再加入一个最近的点,上面是第一轮

下面是第二轮和第三轮

image-20240616150854028

第四轮和第六轮

image-20240616150901984

dijkstra算法可以找到加权连通简单图的最短路径,易证

平面图

如果一个图画在平面上,有办法不出现交叉的边,那就是是 planar graph,这么画的图叫原来的图的 planar representation,平面表示

image-20240616152022987

前两个是,\(Q\) 都是平面图,只需要放大其中一面,其它塞进去就行

33两部图不是

一个平面表示可以分为多个区域 region ,其中有无界的

如果一个区域D可以被包含在一个以原点为中心的圆里面,那么称区域D有界,即存在正数M,使区域D内的每个点都满足\left | z \right |< M

无界区域 unbounded 即非有界区域

感觉无界区域很奇怪?注意,一张图的平面表示,不仅包括你看到的一个图形,还包括图形之外的无限的平面区域,这些就是无界区域

欧拉公式

一个连通平面简单图,有 \(e\) 条边,\(v\) 个顶点,\(r\) 个 region,那么有欧拉公式: \(v-e+r=2\)

不是平面图就没有区域概念,更没有欧拉公式

欧拉公式的一个推论 corollary:

一个连通平面简单图,有 \(e\) 条边,\(v\ge 3\) 个顶点,则有 \(e\le3v-6\)

区域的度即区域边界有几条边,显然最少为3,因为一个区域至少要三条边

所有区域度数之和等于 \(2e\)

image-20240616163035776

另个推论 :

一个连通平面简单图,有 \(e\) 条边,\(v\ge 3\) 个顶点,没有长度为3的回路,则则有 \(e\le2v-4\)

即有界区域需要至少4条边才能维持

image-20240616163302478

图的着色

就我们希望用最少的颜色,让任意相邻的区域颜色不同

我们可以转化为图的问题,每个区域看成点,相邻的区域画个边,变成了点的着色

这个新的图叫原来的平面图的对偶图(dual graph),最少的顶点颜色数量叫这个图的 chromatic number

四色理论:平面图的 chromatic number 不大于4

\(K_n\) 显然需要 \(n\)\(K_{m,n}\) 一定是 2,\(C_n\)\(n\) 偶数时只需要2,奇数需要3