
离散数学
离散数学的学习笔记,包含数理逻辑、集合论、图论
因为实际写作时间是很久之前了,有些图过期了,我也不知道补什么…
有些公式渲染有问题,日后无聊再来改了(
数理逻辑
命题逻辑
联结词
汇总
真值表
定义联结词的优先次序为:
等价公式
定义
两个命题公式
常用的等价公式
重言式和蕴含式
定义
- 重言式:无论对分量作怎样的真值指派,真值均为
的命题公式 - 矛盾式(永假式):……真值均为
的命题公式 - 蕴含式:当且仅当
为重言式时,称 蕴含 ,记作 - 对于
,
称为其 逆换式,
称为其 反换式,
称为其 逆反式
- 对于
定理
命题公式
或
证明蕴含式
对于
- 假定
真值为 ,若由此能推出 的真值为 - 假定
真值为 ,若由此能推出 的真值为
则
蕴含的性质
- 对于
,若 P 为重言式,则 Q 必为重言式 - 蕴含关系式可传递的
- 若
且 则 - 若
且 则
最小联结词组
对偶与范式
定义
- 对偶式:
对于命题公式,
将其中所有的与 互换, 与 互换, 与 互换,
得到新的命题公式
则称与 互为对偶式 - 合取范式:
一个命题公式具有形式:时称其为 合取范式 - 析取范式:
一个命题公式具有形式:时称其为 析取范式 - 小项:
个命题变元的合取式,
每个变元与其否定不能同时出现,且必须出现且仅出现一次 - 大项:
个命题变元的析取式,
每个变元与其否定不能同时出现,且必须出现且仅出现一次 - 主析取范式:
仅由小项析取所组成的公式 - 主合取范式:
仅有大项合取所组成的公式 - 编码:
对于一个命题变元, 分别记为
则对于每个小项/大项可以用二进制编码表示
如可以表示为 - 编码表示主析取/合取范式:
主析取范式可以表示为
主合取范式可以表示为
其中的为第 个小项的二进制编码的十进制数
其中的为第 个大项的二进制编码的十进制数
求合取/析取范式步骤
- 将公式中的联结词化为
- 利用 德摩根律 将
移到各个命题变元之前 - 利用 分配律、结合律 将公式归约为合取/析取范式
求主合取/主析取范式步骤
- 化归为合取/析取范式
- 除去合取/析取范式中所有为永真/假的合取/析取项
- 合并相同的合取/析取项和所有相同的变元
- 对合取/析取项补入没有出现的命题变元,然后用分配律展开公式
定理
- 若
则 - 任意两个不同的小项的合取式永假
- 全体小项的析取式永真
- 任意两个不同的大项的析取式永真
- 全体大项的合取式永假
推理理论
定义
- 前提、有效结论:
对于命题公式,
当且仅当,
称是 一组前提 的 有效结论 规则:
前提在推导过程中的任何时候都可以引入使用规则:
在推导中,如果有一个或多个公式蕴含着公式,则 可以引入推导中
真值表法
- 列出
的所有对应真值 - 找出
全为 的行,若这几行对应的 也有真值 则推理成立
或者
- 找出
为 的行,
若这几行对应的至少有一个真值为 则推理成立
直接证法
例题: 证明
解:
~注:括号内仅为注释,实际书写中无括号内的内容~
间接证法
归谬法
对于要证明
只需要证明
其中
例题: 证明:
解:
规则
对于要证明
只需要证明
其中
例题: 证明:
解:
谓词逻辑
谓词
将
例如
则
命题函数
由一个谓词和一些客体变元组成的表达式,称为 简单命题函数
例如
量词
用于划定论域的标记称作量词,
例如:
- 设
则表示 “所有人都是要呼吸的” - 设
则表示 “存在一个数是质数” - 设
则表示 “一些人是聪明的”
谓词公式与翻译
例题: 数学分析中的极限定义为:仍给一个小正数
解:
设
则
变元的约束
约束变元的换名
通过对谓词公式换名,使得每个变元在公式中仅以一种约束形式出现
例题: 对
解: 可换名为
自由变元的代入
例题: 对
解: 代入后公式为
若论域的元素是有限的,如论域元素为
谓词演算的等价式和蕴含式
量词与联结词 的关系
有关量词的等价式
有关量词的蕴含式
多元谓词的等价/蕴含式
前束范式
定义
- 前束范式:
- 前束合取范式:
- 前束析取范式:
例题: 将
解:
谓词演算的推理理论
例题: 证明
解:
集合论
集合
集合的概念及表示
定义
-
子集(包含):
若有则称 为 的子集 或 包含在 内,
记作- 包含关系具有自反性、传递性
-
真子集:
若有则称 是 的真子集,
记作 -
空集:
不包含任何元素的集合,记作 -
全集:
在一定范围内,若所有集合均为某一个集合的子集,
则该集合称为 全集,记作 -
幂集:
给定集合,由 的所有子集为元素组成的集合,
称为集合的 幂集,记作 -
编码表示幂集:
定理
- 集合
相等的充要条件为:二者互为子集 - 对于任意一个集合
, - 给定一个有
个元素的集合 ,则 有 个元素
集合的运算
定义
-
交集
: 称为 和 的 交集 -
并集
: 称为 和 的 并集 -
补集
: 称为 对于 的补集 称为 的 绝对补,记作
-
对称差
: 称为 和 的 对称差
定理
-
公式
-
集合的划分与覆盖
定义
- 覆盖:
给定一个集合使得 则称 为 的 覆盖 - 划分:
若是 的覆盖的同时,有 则称 为 的 划分 - 交叉划分:
对于一个集合的两种划分,
所有组成的集合,称为是原来两种划分的 交叉划分 - 加细:
给定集合的任意两个划分 ,
若对于每一个都有 使得 ,则称
为 的 加细
定理
- 对于同一个集合的两种划分,其交叉划分 仍是 原集合的一种划分
- 两种划分的交叉划分,都是原来两种划分的加细
关系
序偶
定义
-
序偶:
序偶用于表示事物之间的关系,记作,称为 元组 -
笛卡尔乘积/直积:
这使得两个元素集合构造出一个序偶集合
- 由于序偶内的元素顺序不可变,所以
- 由于
不是三元组,
所以,且前者得到的才是三元组
- 由于序偶内的元素顺序不可变,所以
-
记
定理
-
对于任意三个集合
,有 -
若
则 -
设
为四个非空集合,则
关系及其表示
定义
-
关系:
将一个由序偶组成的集合称为一个 关系,记作,
中的任一序偶 可以记作 或
不在中的任一序偶可以记作 或 -
前域、值域、域:
称为 的前域, 称为 的值域,
二者一起称作的域,记作 -
直积与关系:
对于任一两个集合,二者的直积 的子集 称为 到 的关系
对于其子集,分别称为 到 的 全域关系 和 空关系 -
恒等关系:
称为 上的 恒等关系 -
关系矩阵:
对于矩阵其中 这样的矩阵称为
的 关系矩阵
定理
- 对于
到 的两个关系 ,二者的交、并、补、差 仍是 到 的关系
关系的性质
定义
-
自反
-
对称
-
传递
-
反自反、反对称
反自反要求集合内 所有元素 不自反,反对称要求集合内 所有元素 不对称- 因此存在某种关系,即不自反,也不反自反
也存在某种关系,既不对称也不反对称
- 因此存在某种关系,即不自反,也不反自反
从关系矩阵看性质
- 自反
对角线上所有元素均为 - 对称
关系矩阵是对称的 - 反自反
对角线元素全为 - 反对称
以主对角线对称的元素不同时为
复合关系和逆关系
定义
-
合成运算:
设为 到 的关系, 为 到 的关系,则 称为 的复合关系
表示为这称为关系的 合成运算
-
记
-
逆关系:
利用矩阵运算求合成运算
有关逆关系的公式
-
设
都是 到 的二元关系 -
对于任一两个关系
,
对称定理
是对称的,当且仅当 是反对称的,当且仅当
关系的闭包运算
定义
设
是自反的/对称的/可传递的 - 对于任何自反的/对称的/可传递的关系
,
如果有就有
则称
定理
-
是自反的,当且仅当 是对称的,当且仅当 是传递的,当且仅当 -
自反闭包的求解:
-
对称闭包的求解:
-
传递闭包的求解:
-
闭包之间的关系:
算法求解传递闭包
对于
1 | for k from 1 to n: |
等价关系与等价类
定义
-
等价关系:
一个关系若同时是自反的、对称的、传递的,则称该关系为 等价关系 -
等价类:
设是集合 上的等价关系,对与 ,
集合称为元素 形成的 等价类 -
商集:
对于集合上的等价关系 ,
其等价类集合称作 关于 的商集,记作
定理
-
对于集合
上的等价关系 , ,则 -
集合
上的一个等价关系可以确定 的一个划分,
该划分就是 -
集合
的一个划分能确定 上的一个等价关系 -
对于集合上的两个等价关系
,
求划分确定的等价关系
例题: 设集合
求划分
解:
相容关系与相容类
定义
- 相容关系:
一个关系若同时是自反的、对称的,则称该关系为 相容关系- 对于相容关系的关系图,不画自回路,使用单线来代替回弧线
- 相容类:
对于集合上的相容关系 ,若 ,
如果中的任意两个元素 有 ,称 是由相容关系 产生的 相容类 - 最大相容类:
若一个相容类,不能真包含在其他相容类,则称其为 最大相容类,记作 - 完全覆盖:
对于一个集合的所有最大相容类,
这些最大相容类组成的集合,构成了的一个覆盖,
称为 完全覆盖,记作
定理
- 相容关系图中,最大完全多边形的顶点集合 就是最大相容类,
此外,孤立节点 和 不是完全多边形的边的两个节点 也是最大相容类
(详见下面例题)
其中构成最大多边形,
为非最大多边形边的两个节点, 为孤立节点 - 给定集合
的覆盖 ,
由它确定的关系是相容关系 - 相容关系
与完全覆盖 一一对应
序关系
定义
-
偏序:
对于集合上的一个关系 ,同时满足自反性、反对称性、传递性,
则称为 上的一个偏序关系,将这个关系记作 ,序偶 称作偏序集 -
盖住:
在偏序集合中,如果
且没有其他元素满足 ,则称 盖住 ,记 -
盖住关系是 唯一的,所以可以用盖住的性质画出偏序集合图,称为 哈斯图,
作图规则如下:
-
-
链、反链:
设是一个偏序结合,在 的一个子集中,
如果每两个元素都是有关系的,则称这个子集为 链,
如果每两个元素都是无关的,则称这个子集为 反链- 规定,若
的子集只有一个元素,则这个子集既是链也是反链
- 规定,若
-
全序/线序集合:
在偏序集中,如果 是一个链,则称 为 全序集合 或 线序集合 ,在这种情况下,称二元关系 为 全序关系 或 线序关系 - 即
都有 或者 成立,不存在两个无关的元素
- 即
-
极大元、极小元:
设是一个偏序集,且 是 的子集,对于 中的一个元素 ,
如果中没有任何元素 满足 且 则称 为 的 极大元,
如果中没有任何元素 满足 且 则称 为 的 极小元 - 极大元和极小元 不是唯一的
- 极大元和极小元 不是唯一的
-
最大元、最小元:
设是一个偏序集,且 是 的子集,对于 中的一个元素 ,
如果中每一个元素 满足 则称 为 的 最大元,
如果中每一个元素 满足 则称 为 的 最小元 - 如果存在最大/最小元,则一定是 唯一的
-
上界、下界
设是一个偏序集,且 是 的子集,对于一个元素
若的任意元素 ,满足 ,则称 为 的 上界
若的任意元素 ,满足 ,则称 为 的 下界 - 上界和下界 不是唯一的
-
最小上界/上确界、最大下界/下确界:
设是一个偏序集,且 是 的子集,对于 的任一上界
若的所有上界 ,满足 ,
则称为 的 最小上界(上确界),记为
若的所有上界 ,满足 ,
则称为 的 最大下界(下确界),记为 -
良序集合:
任一偏序集合,若它的每个非空子集存在最小元素,
则称这种偏序集为 良序集合
定理
- 每一个良序集合一定是全序集合,每一个 有限 的全序集合一定是良序集合
图论
路与回路
定义
路、回路
- 路:连接各个节点
- 回路:头尾节点相同的路
- 通路:不存在重复节点的路
- 圈:除头尾节点外不存在重复节点的回路
- 迹:不存在重复边的路
连通性
- 连通:两节点之间存在路
- 连通分支:将一个图划分为若干子图,两个节点只有属于同一个集合时连通,连通分支数记为
- 点割集:如果将集合中所有点及其相连的边从图中移除,会导致图变得不连通(即图的连通分支数增加)
- 割点:单独构成点割集的点
- 点连通度:在保持图连通的前提下,至少需要移除多少个顶点(及其相连的边)才能使图不连通,记为
- 边割集:如果移除该边集中的所有边后,图会变得不连通的边集
- 割边:单独构成边割集的边
- 边连通度:在保持图连通的前提下,至少需要移除多少条边才能使图不连通,记为
最短路
- 两节点之间的最短路记为两节点的距离(或短程线),用
表示 称为图的直径
强弱连通(在有向图中)
单侧连通:图中存在一对节点仅单侧可达(不要求图为连通图)
强连通:图中任意两节点相互可达
弱连通:单侧连通的有向图转为无向图后是连通的
强/弱/单侧分图:具有强/弱/单侧性质的最大子图
定理
- 两节点间必然存在一条不多于
条边的路 - 两节点间必然存在一条小于
条边的通路 - 连通图只有一个连通分支
(完全图的点连通度为 ) (点连通度≤边连通度≤最小度数) - 两节点间每一条路都经过的节点为割点
- 强连通
图中存在一个回路,该回路至少包含每个节点一次 - 有向图中的每个节点只位于一个强分图中
- 对于邻接矩阵
, 中, 表示从 到 的长度为 的(回)路的数量 - 对于有
个节点的连通图, - 对于有
个节点, 个最大连通子图的连通图, 是完全关联矩阵,
欧拉图与哈密顿图
定义
欧拉图
- 欧拉路径:一条经过所有边且不重复的路
- 欧拉回路:一条经过所有边且不重复的回路
- 有向图中为单向欧拉路径(回路)
哈密顿图
- 哈密顿路径:经过所有节点恰好一次的路径
- 哈密顿回路:经过所有节点恰好一次的回路
闭包
1 | G, G' = <V, E> |
定理
欧拉图
- 对于无向图,当且仅当其连通且奇数度节点有 0 或 2 个时,有欧拉路径
- 对于无向图,当且仅当所有节点全为偶数度节点时,有欧拉回路
- 对于有向图,当且仅当其连通且{有两个节点,一个入度比出度大 1 另一个入度比出度小 1},其余节点入度等于出度时,有欧拉路径
- 对于有向图,当且仅当其连通且所有节点入度等于出度时,有欧拉回路
哈密顿图
- 若一个图有哈密顿回路,则对任意一个节点子集
,
的连通分支数 - 对于一个图,若其为简单图且每一对节点度数之和大于等于
该图有哈密顿路径(这不是充要条件) - 对于一个图,若其为简单图且每一对节点度数之和大于等于
该图有哈密顿回路(这不是充要条件) - 一个简单图的闭包是哈密顿图
该简单图也为哈密顿图
平面图
定义
- 平面图:边之间没有交点的图(可以通过改画图像得到)
- 面:边所包围的区域
- 边界:构成面的边所形成的回路
- 面的次数:面的边界长度
- 在
度节点内同构:对两个图通过多次添加或删除度数为 的节点,后使得两图同构
定理
- 对于有限平面图,面的次数和等于边数的两倍
- 欧拉公式:
- 判断非平面图的充分条件:对于一个连通的简单平面图,若
- 判断平面图的充要条件:一个图是平面图
该图不包含与 在 度节点内同构的子图
对偶图与着色
定义
对偶
- 对偶图:
和 互为对偶图,对于 中的每一个面(包括外面), 中均有一个对应的节点在其内部,反之亦然 - 自对偶图:
与其对偶图 同构
着色
- 最少着色数:
着色法:
1 | for node in sorted_node (按度数降序排序后的节点): |
定理
- 对于一个至少有三个节点的连通平面图,必存在度数小于 5 的节点
- 任意平面图,最多为 5-色 (?)
树与生成树
定义
- 树:无向图
- 无回路的连通图
- 每个节点之间仅有一条路
- 生成树:一个图的子图是树,该树称为生成树
- 最小生成树:一个图的所有生成树中,边权和最小的那棵树
定理
-
连通图至少有一颗生成树
-
图中的一条回路/边割集和该图的任何一颗生成树的补至少有一条公共边
-
算法得到最小生成树: 1
2
3
4
5
6
7
8V = {}, E = {}
G = <V, E>
sum = 0
for edge in sorted_edges(按边权升序排列的边):
if 加入该边不会出现环:
将该边加入图中
if G 是生成树(边数等于 n-1):
break
根树及其应用
定义
- 有向树:不考虑边的方向时是一颗树的有向图
- 根树:恰有一个节点入度为 0,其余节点入度为 1 的有向树,入度为 0 的为根,出度为 0 的为叶,出度不为 0 的为分支点或内点
- (完全)
叉树:每一个节点的出度均(恰好等于)小于等于 的根树 - 内部/外部通路长度:根到分支节点/叶节点的通路的长度
- 带权二叉树:有
个叶节点,每个叶节点带有权值 - 最优带权二叉树(哈夫曼树):
- 对于带权为
的叶节点,其通路长度为 - 将
称为该带权二叉树 的权 - 最优树为
最小的那棵树
- 对于带权为
- 前缀码:一个
序列集合,没有一个序列是其他序列的前缀 - 前缀码和二叉树一一对应
定理
- 对于完全
叉树,树叶数为 ,分枝点数为 ,则有 - 对于有
个分枝点的完全二叉树,内部通路长度总和为 ,外部通路长度总和为 ,有 - 对于带权
的最优树 : - 带权
的叶节点 互为兄弟节点 的父节点的通路长度最长 - 若将
的父节点改为带权 的叶节点,得到的新树 也是最优树
- 带权