1. 集合
1.1. 概念
- 等势:A、B两集合间存在一一对应的关系,则称A与B等势,记为 A ~ B。
- 可数集合:与自然数集合N等势的集合。集合基数为阿列夫零。包括:正奇数集合,质数集合,有理数集合Q。
- 不可数集合:与开区间(0, 1)等势的集合。集合基数为阿列夫。
1.2. 特殊集合
自然数集N,有理数集Q,实数集R,空集∅,全集E,A的幂集P(A) = {x | x ⊆ A}
1.3. 集合运算
- 异或(对称差):去掉两个集合交集的元素,再并起来
2. 命题逻辑
2.1. 联结词
-
蕴涵联结词:P → Q
- 如果P,则Q
- 因为P,所以Q
- 只要P,就Q
- P仅当Q
- 只有Q,才P
- 除非Q,才P
- 除非Q,否则¬P
-
优先级:否定、合取∧、析取∨、蕴涵、等价
2.2. 命题公式
分类:重言式(永真)、矛盾式(永假)、可满足式(有真)
2.3. 等价关系
- 等值式:若A ↔ B是重言式,则记为等值式A ⇔ B,也即A与B等价。
- 吸收律:G ∧ (G ∨ H) = G;G ∨ (G ∧ H) = G
- 蕴涵式:G → H = ¬G ∨ H
- 等价式:G ↔ H = (G → H) ∧ (H → G)
2.4. 范式
- 文字:命题变元或命题变元的否定
- 子句:文字析取构成
- 短语:文字合取构成
- 析取范式:由短语析取构成
- 合取范式:由子句合取构成
- 主析取范式:极小项,文字默认为真,真值表找1
- 主合取范式:极大项,文字默认为假,真值表找0
2.5. 推理
基本推理形式
- 推理有效:前提都为真,则结论为真。
- 判定定理:A₁,A₂,…,An → B为重言式,当且仅当A₁,A₂,…,An ⇒ B有效。
- 证明有效:
- 真值表法
- 等值演算法
- 主析取范式法(包含所有极小项则为重言式)
自然演绎法
-
概念:给若干前提,推出一个结论
-
推理定律:
- 附加律:A ⇒ A ∨ B或B ⇒ A ∨ B
- 简化律:A ∧ B ⇒ A或A ∧ B ⇒ B
- 假言推理:A → B,A ⇒ B
- 拒取式:A → B,¬B ⇒ ¬A
- 析取三段论:A ∨ B,¬B ⇒ A
- 假言三段论:A → B,B → C ⇒ A → C
- 构造性二难:A → B,C → D,A ∨ C ⇒ B ∨ D
- 破坏性二难:A → B,C → D,¬B ∨ ¬D ⇒ ¬A ∨ ¬C
- 合取引入:A,B ⇒ A ∧ B
-
推理规则(自然推理系统):
- 规则P(前提引入规则):推导过程中,可随时引入前提集合中任一个集合。
- 规则T(结论引入规则):推导过程中,可随时引入由一个或多个前提推导出来的中间结果。
- 规则CP(置换规则):如果能由前提集合Γ与公式P推出结论S,则能由Γ推出P → S。
- 上面八条推理定律形成的规则
-
证明推理:
- 直接证明法
- 附加前提证明法:用规则CP
- 归谬证明法(反证法):将结论否定式作为前提,用直接证明法推出矛盾式。原理如下:
① 若证A₁,A₂,…,An ⇒ B
② 即证A₁,A₂,…,An → B为重言式
③ 又由蕴涵式:¬(A₁ ∧ A₂ ∧ … ∧ An) ∨ B为重言式
④ 由反证法:A₁ ∧ A₂ ∧ … ∧ An ∧ ¬B为矛盾式。
3. 谓词逻辑
3.1. 概念
-
个体、谓词、量词
-
∀x(P(x) → Q(x)):在个体域D中的任意x,如果其有性质P,则其就有性质Q。
- x是个体变元
- ∀x是全称量词(全称用→,存在用∧)
- P、Q是谓词,也被称为原子公式
-
公式:全称合式公式,原子公式是合式公式,¬P,P∨Q,P∧Q,P→Q,P↔Q都为合式公式,带量词的合式公式也是合式公式。
-
约束变元:个体变元x在使用变元x量词的辖域内,则称x为约束变元。
-
自由变元:不在辖域内则成为自由变元。
-
闭式:一个公式内无自由变元,则称该公式为闭式。
3.2. 谓词公式
分类:永真式(逻辑有效式)、矛盾式(永假式)、可满足式
3.3. 公式等价关系
- 等价:若公式P ↔ Q是永真式,则P ⇔ Q是等值式,也即公式P与公式Q等价。
- 共有:命题公式的等价关系在谓词公式中依然成立。
- 特有:P、Q含有变元x,S不含变元x
- 改名规则:∀xP(x) = ∀yP(y);存在量词同理
- 量词转换律:¬∀xP(x) = ∃x¬P(x);¬∃xP(x) = ∀x¬P(x)
- 量词辖域扩展/收缩律:
- ∀x(P(x) ∧ S) = ∀xP(x) ∧ S;析取同理,存在量词同理。
- ∀x(P(x) → S) = ∃xP(x) → S;存在量词同理。
- ∀x(S → P(x)) = S → ∀xP(x);存在量词同理。
- 量词分配律:
- ∀x(P(x) ∧ Q(x)) = ∀xP(x) ∧ ∀xQ(x)
- ∃x(P(x) ∨ Q(x)) = ∃xP(x) ∨ ∃xQ(x)
- 无法用量词分配的情况:
- ∀xP(x) ∨ ∀xQ(x) = ∀x(∀y)(P(x) ∨ Q(y))
- ∃xP(x) ∧ ∃xQ(x) = ∃x∃y(P(x) ∧ Q(y))
3.4. 范式
- 前束范式:将¬内移到原子公式前,量词在公式最前端。利用谓词公式等价关系将一个公式转化成前束范式。
3.5. 推理
推理形式
- 判定定理:类比于命题推理,A₁,A₂,…,An → B为永真式,当且仅当A₁,A₂,…,An ⇒ B有效。
推理定律
- 命题的推理定律仍适用于谓词推理
- 每个谓词逻辑的基本等值式,都可以推出两条推理定律,如由¬∀xP(x) = ∃x¬P(x):
¬∀xP(x) ⇒ ¬P(x);¬P(x) = ¬∀xP(x) - 两条特殊的定律:
- ∀xP(x) ∨ ∀xQ(x) ⇒ ∀x(P(x) ∨ Q(x))
- ∃x(P(x) ∧ Q(x)) ⇒ ∃xP(x) ∧ ∃xQ(x) 合取的存在推出存在的合取
推理规则(自然推理系统)
- 命题中的所有推理规则
- UI(全称消去规则,用于消去全称量词):∀xP(x) ⇒ P©,c为任意个体常量;或∀xP(x) ⇒ P(y),不产生歧义即可。
- EI(存在消去规则):
- ∃xP(x) ⇒ P©,c为使P©为真的特定个体常量
- ∃xP(x, y) ⇒ P(f(y), y)
- UG(全称引入规则,用于引入全称量词):P(y) ⇒ ∀xP(x),不产生歧义即可
- EG(存在引入规则):P© ⇒ ∃xP(x),c为特定个体常量;或P(x) ⇒ ∃yP(y)
- 推理过程:消去量词;命题推理;如果结论中有量词,则最后引入量词。
如果消去量词同时用到了UI和EI,先用EI,再用UI(因为EI中的个体常量必须满足P© = 1,若先用UI,得到的个体常量不一定满足该条件)。
若一个变量用EI规则消去量词,则其引入量词时只能用EG规则;而采用UI规则消去的,引入量词时UG和EG都可用。这是由规则的性质决定的。
4. 二元关系
4.1. 概念
-
有序对:<x, y>称为有序对,或序偶。
-
笛卡尔积:若有集合A,B,则集合A×B = {<x, y>|(x∈A)∧(y∈B)}是集合A与B的笛卡尔积。
-
二元关系:要么是空集,要么是元素为有序对的集合,记为R。若<x, y>∈R,则记作xRy。A与B间关系的种类为 2 ∣ A ∣ ⋅ ∣ B ∣ 2^{|A|\cdot|B|} 2∣A∣⋅∣B∣,A上的关系的种类为 2 ∣ A ∣ ² 2^{|A|²} 2∣A∣²。
R的定义域domR,值域ranR,域fldR = domR ∪ ranR;A称为前域,B为后域。 -
几个重要关系:
- R = ∅,则R为空关系
- R = A×B,则R为A到B的全关系,记为 E A E_{A} EA
- R = I A I_{A} IA = {<x, x>|x∈A},则R为A上的恒等关系
-
关系表示:枚举、图形、关系矩阵(是布尔矩阵)
4.2. 关系运算
-
布尔矩阵运算:交∧、并∨、积⊙(矩阵乘法)
-
关系运算:
- 并∪、交∩、差-、补。
- 复合R ◦ S:<x, y> ◦ <y, z> = <x, z>,是从A到C的关系;R和S关系矩阵作布尔积运算,得到结果即为R ◦ S的关系矩阵。
- 逆 R − 1 R^{-1} R−1:<x, y>变为<y, x>;R的关系矩阵转置即为R的逆。
- 限制 R ↑ \uparrow ↑ A = {<x, y> | x ∈ A ∧ xRy}
- 像 R[A] = ran(R | A)
-
运算性质:
- 复合运算结合律与同一律( I A I_{A} IA ◦ R = R ◦ I A I_{A} IA = R)
- 复合分配律:
- R ◦ (S ∪ T) = R ◦ S ∪ R ◦ T,左复合同理
- R ◦ (S ∩ T) ⊆ R ◦ S ∩ R ◦ T,左复合同理
- 逆运算:
- ( R ◦ S ) − 1 (R ◦ S)^{-1} (R◦S)−1 = S − 1 S^{-1} S−1 ◦ R − 1 R^{-1} R−1
- ( R ∪ S ) − 1 (R ∪ S)^{-1} (R∪S)−1 = R − 1 R^{-1} R−1 ∪ S − 1 S^{-1} S−1,交和差同理
- domR = r a n R − 1 ranR^{-1} ranR−1,反之同理
- 幂运算:
- R⁰ = I A I_{A} IA
- R m + n R^{m+n} Rm+n = R m R^{m} Rm ◦ R n R^{n} Rn
- ( R m ) n (R^{m})^{n} (Rm)n = R m n R^{mn} Rmn
- 收敛性
4.3. 关系性质
-
五个性质
-
性质的保守性
- R,S自反, R − 1 R^{-1} R−1、R ∩ S、R ∪ S、R ◦ S也自反
- R,S反自反, R − 1 R^{-1} R−1、R ∩ S、R ∪ S、R - S也反自反
- R,S对称, R − 1 R^{-1} R−1、R ∩ S、R ∪ S、R - S也对称
- R,S反对称, R − 1 R^{-1} R−1、R ∩ S、R - S也反对称
- R,S传递, R − 1 R^{-1} R−1、R ∩ S也传递
-
闭包
- 定义:为使关系R满足所需要的性质,向R中尽可能少的添加元素,得到关系R’,使R’满足该性质,R’即为闭包。自反闭包记为r®,对称闭包记为s®,传递闭包记为t®。
- 用关系运算求闭包:
- r® = R ∪ I A I_{A} IA
- s® = R ∪ R − 1 R^{-1} R−1
- t®利用上述收敛性公式求
4.4. 特殊关系
等价关系
-
等价关系:A上自反,对称,传递的关系。
-
等价类:设R为A上的一个等价关系,x∈R,则满足{y | y ∈ A ∧ xRy}的集合称为x的等价类,记为 [ x ] R [x]_{R} [x]R,可简记为[x]。即x的等价类就是所有满足xRy的,y的集合。
-
等价类的性质:
- [x]非空
- 若xRy,则[x] = [y];否则[x] ∩ [y] = ∅
- ∪{[x] | x ∈ A} = A
-
商集:{ [ x ] R [x]_{R} [x]R | x ∈ A},称为A关于R的商集,记作A / R。即A所有等价类的集合。
-
集合的划分:将集合的元素划分,商集就是对A的一个划分,也称由R导出的等价划分。
一个集合有多种划分,不同等价关系导出不同的划分;且可由划分确定一个等价关系,假设有划分{S₁, S₂, …, S n S_{n} Sn},则对应的等价关系为{(S₁ × S₁) ∪ (S₂ × S)₂ ∪ … ∪ ( S n × S n S_{n} × S_{n} Sn×Sn)}。
偏序关系
-
偏序关系:A上自反,反对称,传递的关系R,记为≼,并将<a, b> ∈ ≼记为a ≼ b,<A, ≼>称为偏序集。该关系一般用于排序,因此是反对称的,典型的关系就是实数集上的小于等于关系。
-
可比:x ≼ y或y ≼ x则称x与y可比。
-
覆盖:当x ≼ y,且不存在z,使得x ≼ z ≼ y,则称y覆盖x。
-
哈斯图:本质就是采用一些规则化简关系图
- 取消每个点自环(因为自反性)
- 取消由传递性产生的边
- 重新排列每条边,使得箭头方向均朝上,然后去掉箭头(因为反对称性)
-
特殊元素:设<A, ≼>是偏序集,B是A的一个子集
- 最大元与最小元:∃b ∈ B,对∀x ∈ B,都有x ≼ b(b ≼ x),则称b为最大元(最小元)。
- 极大元与极小元:∃b ∈ B,对∀x ∈ B,不存在b ≺ x(x ≺ b),则称b为极大元(极小元)。
- 上界与下界:∃a ∈ A,对∀x ∈ B,都有x ≼ a(a ≼ x),则称a为B的上界(下界)。a可以有多个。
- 上确界和下确界:上界(下界)的最小元(最大元),它们是唯一的。
-
拟序关系:A上反自反,反对称,传递的关系,用≺表示
-
全序关系:若偏序集<A, ≼>任意的x和y都可比,则称“≼”为全序关系,<A, ≼>为全序集,或线序集(因为哈斯图的元素排成一条线)
4.5. 函数
-
定义:设f是集合A到B的关系,且对∀x ∈ A,都存在惟一的y ∈ B,使得<x, y> ∈ f,则称f是A到B的函数,记为 f: A → B。
-
函数的两个前提:domf中任意元素都有像;domf中同一元素有且仅有一个像。
-
关系与函数的区别:
区别 种数 基数 第一元素 关系 2 ∥ A ∥ × ∥ B ∥ 2^{\|A\|×\|B\|} 2∥A∥×∥B∥ 0 ~ |A|×|B| 可重复 函数 ∥ B ∥ ∥ A ∥ \|B\|^{\|A\|} ∥B∥∥A∥ |A| 不可重复 -
特殊函数:
- 特征函数:设A为集合,对∀A’ ⊆ A,A’的特征函数
χ
A
′
:
A
→
{
0
,
1
}
\chi_{A'}:A\to\{0,1\}
χA′:A→{0,1}定义为
χ A ′ ( a ) = { 1 , a ∈ A ′ 0 , a ∈ A − A ′ \chi_{A'}(a)= \begin{cases} 1,\qquad a\in A' \\ 0,\qquad a\in A-A' \end{cases} χA′(a)={1,a∈A′0,a∈A−A′
- 特征函数:设A为集合,对∀A’ ⊆ A,A’的特征函数
χ
A
′
:
A
→
{
0
,
1
}
\chi_{A'}:A\to\{0,1\}
χA′:A→{0,1}定义为
-
函数类型:
- 单射:x与y一一对应;单射 ⇔ 对∀x₁,x₂ ∈ A,若x₁ ≠ x₂,则f(x₁) ≠ f(x₂)。
- 满射:ranf = B;满射 ⇔ 对∀y ∈ B,一定∃x ∈ A,使得f(x) = y。
- 双射:f单射且满射。
-
函数运算
- 复合:设有函数 f: A → B,g: B → C,则 f ◦ g: A → C。
- f ◦ g(x) 也记为g(f(x))
- dom(f ◦ g) = domf;ran(f ◦ g) = ranf
- 复合运算不满足交换律,但满足结合律
- 复合的保守性:相同类型的函数复合后还是同一类型
- 逆:
f
−
1
f^{-1}
f−1: B → A
- f − 1 f^{-1} f−1存在 ⇔ f是双射函数。(其实就是高数上的严格单调函数必有反函数)
- f ◦ f − 1 = I A f ◦ f^{-1} = I_{A} f◦f−1=IA; f − 1 ◦ f = I B f^{-1} ◦ f = I_{B} f−1◦f=IB
- B上A:从A到B全体函数的集合,记为 B A B^{A} BA
- 复合:设有函数 f: A → B,g: B → C,则 f ◦ g: A → C。
5. 图(G = <V, E>)
5.1. 概念
- 分类:有向图和无向图,多重图和线图(简单图是无环的线图),赋权图和无权图。
- 各种图
- 零图:孤立结点组成的图。
- 平凡图:只有一个结点的零图。
- 子图:G₁ = <V₁, E₁>,V₁ ⊆ V,E₁ ⊆ E,则G₁为G的子图。
- 生成子图:V₁ = V,E₁ ⊆ E
- 导出子图:V₁ ⊆ V,E₁是以V₁中两个点为端点的边集
- 完全图:任意两点都有边相连,记为 K n K_{n} Kn(有向情况下为两条相反的边)。
- 补图:设简单图G = <V, E>,完全图G’ = <V, E₁>,则补图G₁ = <V, E₁ - E>。即从完全图的边集中删去简单图的边集。
- 同构图:若存在双射函数 f: V → V’,且对应边集相同,则称为同构图,记为G ≌ G’。
- 正则图:对∀v ∈ V,都有d(v) = k,则称G为 k-正则图。
- 竞赛图:为无向完全图的每条边分配方向所形成的图。
- 轮图:在n-1阶的圈内放置一个顶点,与各顶点相连,组成的就是n阶轮图,记为 W n W_{n} Wn
- 度:顶点的度记为d(v),出度为
d
+
d^{+}
d+(v),入度为
d
−
d^{-}
d−(v)。
- 最大度:Δ(G) = max{d(V) | v ∈ V}
- 最小度:δ(G) = min{d(V) | v ∈ V}
- 最大出度:Δ + ^{+} +(G);最大入度,最小出/入度同理。
- 度数序列:设V = {v₁, v₂, …, v n v_{n} vn},则(d(v₁), d(v₂), …, d( v n v_{n} vn))为度数序列。
- 握手定理:无向图的总度数为 2|E|;有向图总度数为 2|E|,且总入度和总出度相同,为|E|。
5.2. 性质
-
通路与回路:长度为所含边的数量
-
简单通路/回路:通路中的所有边互不相同;否则为复杂通路/回路。
-
初级通路/回路:通路中的所有边互不相同,结点也互不相同(回路不考虑两个端点)。
-
判断两顶点间是否有通路:设G的邻接矩阵为A,则 A n A^{n} An 的元素 a i j a_{ij} aij 表示 v i v_{i} vi 到 v j v_{j} vj 长度为 n 的通路数量。主对角线上的即为回路。
-
可达性:无向图的可达关系是等价关系,有向图的不具备对称性,所以不是等价关系
根据上述定理,若是想知道 v i v_{i} vi 到 v j v_{j} vj 的可达性,则可通过可达矩阵 P = A ∨ A² ∨ … ∨ A n A^{n} An(其中A的幂运算是布尔积运算)判断,若 p i j p_{ij} pij = 1,则从 v i v_{i} vi 到 v j v_{j} vj 是可达的。
-
-
无向图的连通性:
- 连通分支:由可达关系的每个等价类导出的子图称为G的一个连通分支,连通分支数记为p(G)。换言之,一个图可能由多个彼此不连通的连通图组成,每个这样的连通图就是一个连通分支。
- 点割集与割点:从无向图 G 中尽可能少的删去点,使新图 G’ 的 p(G’) > p(G),这样的点的集合就称为点割集;如果该集合中只有一个点,则这个点称为割点。
- 边割集与割边(桥):类似于点割集和割点。
- 点连通度:κ(G) = min{|V| | V为点割集或 G - V 为平凡图};若κ(G) ≥ k,则称 G 为 k-连通图。
- 边连通度:λ(G) = min{|E| | E为边割集};若λ(G) ≥ k,则称G为k边-连通图。
-
有向图的连通性:
- 弱连通图(连通图):将有向边转化为无向边,若图为连通图,则称有向图G为弱连通图或连通图。
- 单向连通图:若G中任意一对结点之间,至少有一个结点到另一个结点是可达的,则称G为单向连接图。
- 强连通图:G中任意一对结点相互可达。
- 连通图判定:
- 强连通图 ⇔ G中存在一条经过所有结点的回路
- 单向连通图 ⇔ G中存在一条经过所有结点的通路
- 强连通图 ⇒ 单向连通图 ⇒ 弱连通图
- 邻接矩阵判定:
- 强连通图:邻接矩阵P的所有元素均为1
- 单向连通图:P ∨ P T P^{T} PT 除主对角元素外都为1
- 弱连通图:以A ∨ A T A^{T} AT为邻接矩阵求得的可达矩阵P’的元素全为1
- 连通分支:设G’为G的子图,当G’是最大的弱/单向/强连通子图,则称G’是G的弱/单向/强连通分支。
5.3. 欧拉图
-
定义:图G中不含孤立节点,若存在一条通路/回路,经过G中每条边一次且仅一次,则称该通路/回路为欧拉通路/回路,具有欧拉通路的图被称为半欧拉图,具有欧拉回路的图被称为欧拉图。
-
欧拉图判定:
- 无向半欧拉图:无向图G存在欧拉通路 ⇔ G是连通的且恰有2个奇度数结点。
- 无向欧拉图:G存在欧拉回路 ⇔ G是连通的且结点均为偶度数结点。
- 有向半欧拉图:有向图G存在欧拉通路 ⇔ G是连通的,且恰有两个奇度数结点,一个出度比入度大1(起点),另一个出度比入度小1(终点),其余结点出度入度相同。
- 有向欧拉图:G存在欧拉回路 ⇔ G是连通的,且所有结点出度和入度相同。
-
求无向图欧拉回路——Fleury算法:依次选边,每选一条边就从图中删去得到图G’,选取条件:① 与上一条边相连;② 除非别无选择,不然不能选G’的割边。
5.4. 哈密顿图
-
定义:图G存在一条通路/回路,经过G中每个结点一次且仅一次,则称该通路/回路为哈密顿通路/回路,具有哈密顿通路的图被称为半哈密顿图,具有哈密顿回路的图被称为哈密顿图。
-
哈密顿图(无向)判定必要条件:
- 哈密顿图必要条件:设无向图G = <V, E>是哈密顿图,则对任意V₁ ⊆ V且V₁非空,均有p(G - V₁) ≤ |V₁|。
- 半哈密顿图必要条件:p(G - V₁) ≤ |V₁| + 1。
-
哈密顿图(无向)判定充分条件:
- 半哈密顿图:设G为n阶简单无向图,若对G中任意两个不相邻的点u,v,均有d(U) + d(v) ≥ n - 1,则G中存在哈密顿通路。
- 哈密顿图:若d(U) + d(v) ≥ n,则存在哈密顿回路。
5.5. 二分图(二部图/偶图)
-
定义:设无向图G = <V, E>,若V能划分为两个子集V₁,V₂,且E中任意一条边,一端属于V₁,另一端属于V₂,则称G为二分图。若V₁中任意一结点与V₂中所有结点相连,则称为完全二部图,记为 K ∣ V ₁ ∣ , ∣ V ₂ ∣ K_{|V₁|, |V₂|} K∣V₁∣,∣V₂∣。
-
二分图判定:G是二分图 ⇔ G中所有回路长度都为偶数
5.6. 平面图
-
定义:能够把一个无向图G的所有结点和边画在平面上,且边互不交叉的图。
-
面与次数:
- 面:由边围成的,内部不包含边与结点的区域,记为 R i R_{i} Ri。
- 边界:构成面的诸边
- 次数:边界的长度,记为 d e g ( R i ) deg(R_{i}) deg(Ri);次数和 = 边总数的二倍
- 有限面与无限面:面积有限的为有限面,无限面同理
-
极大平面图:设G是n阶(n ≥ 3)m边简单连通平面图,若在任意两不相邻的结点间加入边就会破坏G的平面性,则称G是极大平面图。
-
极小非平面图:删除任一条边都会变成平面图的图。与K₅和K₃,₃同胚的都是极小非平面图。
-
欧拉公式:设G是n个顶点,m条边,r个面的连通平面图,则有n - m + r = 2。
-
同胚:如果两个图同构,或在反复插入或消去2度结点后同构,则称这两图同胚。
-
边的收缩
-
库拉托夫斯基定理:
- G是平面图 ⇔ G的任意子图都不与K₅和K₃,₃同胚。
- G是平面图 ⇔ G的任意子图都不能收缩为K₅和K₃,₃。
5.7. 对偶图
-
定义:设有平面图G,在G的每个面中指定一个新的结点,对两个面的公共边,指定一条新边与其相交,这些新点和新边就构成了对偶图。
-
设(n, m)且有r面的连通平面图G的对偶图为G*,G*的顶点n*,边m*,面r*分别为:
- n* = r
- m* = m
- r* = n(对非连通图的对偶图,r* = n - k + 1)
5.8. 最短路径算法
- Dijkstra:用于计算一个点到其他点的最短路径,过程如下:
- 初始化起始点到各点的距离,不可直接到达的点设为∞,初始点自身为0,其余点都设为未访问。
- 选取未访问点中最近的点,将其设为已访问,再根据该点去更新到其他点的最短距离。
- 重复第二步,直到访问所有点。
- 旅行商问题(NP难问题):找到最短的哈密顿回路,目前只能通过枚举哈密顿回路比较大小来求解。
6. 树
6.1. 最小生成树
- Kruskal算法:将边排序,找能连接两个连通分支的最小边
- Prim算法:从点到点,找到最短边。
6.2. 树的遍历
- 前序遍历:对应前缀表达式(波兰符号表达式),从右到左扫描
- 中序遍历:还原算式需要加括号,否则有二义性
- 后序遍历:对应后缀表达式(逆波兰符号表达式),从左到右扫描
6.3. 哈夫曼编码
-
前缀码:不存在能作为其他编码前缀的编码,这样一组编码就是前缀码。
-
最优树:权×路径长度的和最小的树
-
Huffman算法:构造哈夫曼树
- 令S = {w₁, w₂, …, w n w_{n} wn}
- 找到S中权重最小的两个结点,将它们作为左右子节点组成一棵树,根节点的权重为它们的和
- 将根节点放回到S中,重复2,3操作,直到S为空
7. 代数系统
7.1. 二元运算及其性质
-
二元运算定义:设有集合S,函数 f: S × S → S称为S上的二元运算。二元运算应满足函数的前提,dom f = S × S,且像无二义性。
-
一元运算定义:设有集合S,函数 f: S → S称为S上的一元运算。
-
运算性质:
- 交换律:设 ◦ 为S上的二元运算,若对任意x,y ∈ S都有 x ◦ y = y ◦ x,则称运算◦在S上满足交换律。
- 结合律:同上,(x ◦ y) ◦ z = x ◦ (y ◦ z)
- 幂等律:x ◦ x = x
- 分配律:x * (y ◦ z) = (x * y) ◦ (x * z),则称 * 对 ◦ 是可分配的
- 吸收率:x * (x ◦ y) = x,x ◦ (x * y) = x
- 单位元:左右单位元相同时则统一称为单位元,记为e,且惟一。
e l ◦ x = x e_{l} ◦ x = x el◦x=x(左单位元)
x ◦ e r = x x ◦ e_{r} = x x◦er=x(右单位元) - 零元:左右零元相同时则统一称为零元,记为θ,且惟一。
θ l ◦ x = θ l θ_{l} ◦ x = θ_{l} θl◦x=θl(左零元)
x ◦ θ r = θ r x ◦ θ_{r} = θ_{r} x◦θr=θr(右零元) - 逆元:左右相同统称逆元,惟一
y l ◦ x = e y_{l} ◦ x = e yl◦x=e(左逆元)
x ◦ y r = e x ◦ y_{r} = e x◦yr=e(右逆元) - 消去律:
x ◦ y = x ◦ z 且 x ≠ θ,则 y = z(左消去)
y ◦ x = z ◦ x 且 x ≠ θ,则 y = z(右消去)
7.2. 代数系统
-
定义:非空集合S和S上的k个一元或二元关系f₁, f₂, …, f k f_{k} fk组成的系统称为代数系统,简称代数,记作<S, f₁, f₂, …, f k f_{k} fk>。
-
同类型的代数系统:两个代数系统中运算个数相同(一元二元个数都相同),代数常数个数也相同(如零元,单位元等)
-
子代数系统:设V = <S, f₁, f₂, …, f k f_{k} fk>是代数系统,B ⊆ S,若B对V中运算都是封闭的,且与S都含有相同的代数常数,则称<B, f₁, f₂, …, f k f_{k} fk>是V的子代数系统,简称子代数,可以将子代数直接记为B。
-
积代数:设V₁ = <A, ◦>和V₂ = <B, *>是同类型的代数系统,◦与*为二元运算,则在集合A × B上定义二元运算 · ,∀<a₁, b₁>,<a₂, b₂> ∈ A × B,有:
<a₁, b₁> · <a₂, b₂> = <a₁ ◦ a₂, b₁ * b₂>
称V = <A × B, ·>为V₁与V₂的积代数,记作V₁ × V₂;V₁,V₂也被称为V的因子代数。
7.3. 同态与同构
-
同态:设V₁ = <A, ◦>和V₂ = <B, *>是同类型的代数系统,若有f: A → B,且∀x,y ∈ A,有:
f(x ◦ y) = f(x) * f(y)
则称f是V₁到V₂的同态映射,简称同态。 -
同构:同态根据f的类型分为单同态,满同态和同构。若f: V → V同态,则分为单自同态,满自同态和自同构。
8. 群
8.1. 性质与定义
-
半群:设V = <S, ◦>是代数系统,◦为二元运算,如果◦可结合,则称V为半群。
-
独异点:设V为半群,若e ∈ S是关于◦的单位元,则称V为独异点。
-
群:设V是独异点,若对∀a ∈ S都有 a − 1 a^{-1} a−1 ∈ S,则称V是群,通常记作G。若
-
群的实例:<Z, +>,<R, +>,<Q, +>,复数加群<C, +>,模n整数加群< Z n Z_{n} Zn, ⊕>( Z n Z_{n} Zn = {0, 1, …, n - 1})
-
元素幂运算:设G是群,a ∈ G,则a的n次幂:
- n = 0,e
- n > 0, a n − 1 a^{n - 1} an−1 a
- n < 0, ( a − 1 ) − n (a^{-1})^{-n} (a−1)−n
-
群的幂运算:
- ( a − 1 ) − 1 (a^{-1})^{-1} (a−1)−1 = a
- ( a b ) − 1 (ab)^{-1} (ab)−1 = b − 1 a − 1 b^{-1} a^{-1} b−1a−1
- G为交换群时, ( a b ) n (ab)^{n} (ab)n = a n b n a^{n} b^{n} anbn
- a m a n = a m + n ; ( a m ) n = a m n a^{m}a^{n}=a^{m+n};(a^{m})^{n}=a^{mn} aman=am+n;(am)n=amn
-
群的性质:
- 群满足消去律
- 设a ∈ G,且|a| = r,则有 a k a^{k} ak = e当且仅当 r|k(r整除k);亦有| a − 1 a^{-1} a−1| = |a|
9. 组合计数
9.1. 基本计数原则
- 加法原则:设事件A有m种产生方式,事件B有n种产生方式,若A和B的产生方式没有重叠,则A或B的产生方式有 m + n 种。
- 乘法原则:设事件A有m种产生方式,事件B有n种产生方式,若A与B的产生方式相互独立,则A与B的产生方式有 mn 种。
- 鸽巢原理:将k + 1个物体放入k个盒子中,则至少有一个盒子有2个或以上的物体。
- 广义鸽巢原理:将N个物体放入k个盒子中,则至少有一个盒子有⌈N / k⌉(向上取整)个物体。
- 重要思想:一一对应,数学归纳法
例:从1到24中选取5个互不相邻的数字,一共有多少种选法?
证:设从中选的五个数为{ i 1 , i 2 , . . . , i 5 i_{1}, i_{2}, ..., i_{5} i1,i2,...,i5},其中 i 1 < i 2 < . . . < i 5 i_{1} < i_{2} < ... < i_{5} i1<i2<...<i5,且 i j ≠ i j + 1 i_{j} ≠ i_{j + 1} ij=ij+1,j = 1, 2, 3, 4。令 k j = i j − j + 1 , j = 1 , 2 , 3 , 4 , 5 k_{j} = i_{j} - j + 1, j = 1, 2, 3, 4, 5 kj=ij−j+1,j=1,2,3,4,5,显然 i j 与 k j i_{j}与k_{j} ij与kj是一一对应的, k j k_{j} kj恰好为{1, 2, …, 20}中取5个数的组合,故该题答案为C(20, 5)
9.2. 排列组合
- n元集排列:P(n, r) = n ! ( n − r ) ! \frac{n!}{(n - r)!} (n−r)!n!
- n元集组合:C(n, r) =
n
!
(
n
−
r
)
!
r
!
\frac{n!}{(n - r)! r!}
(n−r)!r!n!
- C(n, r) = n r \frac{n}{r} rn C(n - 1, r - 1)
- C(n, r) = C(n - 1, r - 1) + C(n - 1, r)(杨辉三角/Pascal公式)
- 多重集全排列(r = n):多重集即为元素重复出现的集合
- 多重集组合:
9.3. 二项式定理与组合恒等式
- 二项式定理
- 多项式定理
- 组合恒等式
- C ( n , k ) = C ( n , n − k ) C(n, k) = C(n, n - k) C(n,k)=C(n,n−k)
- C ( n , k ) = n k C ( n − 1 , k − 1 ) C(n, k) = \frac{n}{k} C(n - 1, k - 1) C(n,k)=knC(n−1,k−1)
- C ( n , k ) = C ( n − 1 , k − 1 ) + C ( n − 1 , k ) C(n, k) = C(n - 1, k - 1) + C(n - 1, k) C(n,k)=C(n−1,k−1)+C(n−1,k)
- ∑ k = 0 n C ( n , k ) = 2 n \sum_{k = 0}^{n} C(n, k) = 2^{n} ∑k=0nC(n,k)=2n
- ∑ k = 0 n ( − 1 ) k C ( n , k ) = 0 \sum_{k = 0}^{n} (-1)^{k} C(n, k) = 0 ∑k=0n(−1)kC(n,k)=0
-
∑
l
=
0
n
C
(
l
,
k
)
=
C
(
n
+
1
,
k
+
1
)
\sum_{l = 0}^{n} C(l, k) = C(n + 1, k + 1)
∑l=0nC(l,k)=C(n+1,k+1)
- 证:等式右边为从n+1个元素中取k+1个元素的子集;可以将该k+1元子集分为如下n+1类:
第1类:子集中含第一个元素,剩下k个在之后的元素中取
第2类:子集中含第二个元素,不含之前的元素,剩下的k个在之后元素中取
…
第n+1类:子集中含第n + 1个元素,不含之前的元素,剩下的k个在空集中取
以上n+1类的和即为等式的左边。
- 证:等式右边为从n+1个元素中取k+1个元素的子集;可以将该k+1元子集分为如下n+1类:
- ∑ k = 0 r C ( m , k ) C ( n , r − k ) = C ( m + n , r ) r ≤ m i n { n , m } \sum_{k = 0}^{r} C(m, k) C(n, r - k) = C(m + n, r)\qquad r \le min\{n, m\} ∑k=0rC(m,k)C(n,r−k)=C(m+n,r)r≤min{n,m}
- ∑ k = 0 n C ( m , k ) C ( n , k ) = C ( m + n , m ) \sum_{k = 0}^{n} C(m, k) C(n, k) = C(m + n, m) ∑k=0nC(m,k)C(n,k)=C(m+n,m)
9.4. 组合计数模型
- 集合有序选取:集合排列
- 集合无序选取:集合组合
- 多重集有序选取:多重集的排列
- 多重集无序选取:多重集的组合
- 不定方程:
x
1
+
x
2
+
.
.
.
+
x
k
=
r
x_{1} + x_{2} + ... + x_{k} = r
x1+x2+...+xk=r
- x i x_{i} xi为非负整数时,解的个数为C(r + k - 1, r)
- x i x_{i} xi为正整数时,解的个数为C(r - 1, k - 1)
- 非降路径:从(a, b)出发到(m, n)的一条折线,由m - a + n - b次移动组成,每次只能向右或向上。
从(a, b)到(m, n),有C(m + n - a - b, m - a)条路径
9.5. 递推方程
-
常系数线性递推方程(类似于高数中的常微分方程)
- 齐次:由特征方程
x
k
+
1
+
a
1
x
k
+
.
.
.
+
a
k
=
0
x^{k+1}+a_{1}x^{k}+...+a_{k}=0
xk+1+a1xk+...+ak=0求出特征根
q
1
,
q
2
,
.
.
.
,
q
k
q_{1},q_{2},...,q_{k}
q1,q2,...,qk。
- 特征根都为单根时:通解 H ( n ) = c 1 q 1 n + c 2 q 2 n + . . . + c k q k n H(n)=c_{1}q_{1}^{n}+c_{2}q_{2}^{n}+...+c_{k}q_{k}^{n} H(n)=c1q1n+c2q2n+...+ckqkn,将给定初值带入到通解中,求出 c 1 , c 2 , . . . , c k c_{1},c_{2},...,c_{k} c1,c2,...,ck。
- 特征根为重根时:若 q i q_{i} qi为 e i e_{i} ei重根,则有通解 H ( n ) = ∑ i = 0 k ( c i 1 + c i 2 n + . . . + c i e i n e i − 1 ) q i n H(n)=\sum_{i=0}^{k}(c_{i1}+c_{i2}n+...+c_{ie_{i}}n^{e_{i}-1})q_{i}^{n} H(n)=∑i=0k(ci1+ci2n+...+cieinei−1)qin,同样带入初值求待定系数。
- 非齐次:先求出齐次情况下的通解
H
(
n
)
‾
\overline{H(n)}
H(n),再根据非齐次情况的求解方法求出特解H*(n),非齐次递推方程的通解
H
(
n
)
=
H
(
n
)
‾
+
H
∗
(
n
)
H(n)=\overline{H(n)}+H^{*}(n)
H(n)=H(n)+H∗(n)。
- f(n)为n的t次多项式时: H ∗ ( n ) = P 1 n t + P 2 n t − 1 + . . . + P t + 1 H^{*}(n)=P_{1}n^{t}+P_{2}n^{t-1}+...+P_{t+1} H∗(n)=P1nt+P2nt−1+...+Pt+1。
- f(n)为 A β n A\beta^{n} Aβn形式:若β不是特征根,则 H ∗ ( n ) = P β n H^{*}(n)=P\beta^{n} H∗(n)=Pβn;若β是e重特征根,则为 P n e β n Pn^{e}\beta^{n} Pneβn。
- 将特解带回到递推方程,求出各待定系数。
- 最后将初值代入H(n)中,求得 H ( n ) ‾ \overline{H(n)} H(n)中各待定系数的值。
- 齐次:由特征方程
x
k
+
1
+
a
1
x
k
+
.
.
.
+
a
k
=
0
x^{k+1}+a_{1}x^{k}+...+a_{k}=0
xk+1+a1xk+...+ak=0求出特征根
q
1
,
q
2
,
.
.
.
,
q
k
q_{1},q_{2},...,q_{k}
q1,q2,...,qk。
-
其他形式递推方程:
-
换元法:通过换元转变回常系数线性递推方程。
- 例:
{ W ( n ) = 2 W ( n / 2 ) + n − 1 , n = 2 k W ( 1 ) = 0 \begin{cases} W(n)=2W(n/2)+n-1,n=2^{k} \\ W(1)=0 \end{cases} {W(n)=2W(n/2)+n−1,n=2kW(1)=0
将 n = 2 k n=2^{k} n=2k代入,有 W ( 2 k ) = 2 W ( 2 k − 1 ) + 2 k − 1 W(2^{k})=2W(2^{k-1})+2^{k}-1 W(2k)=2W(2k−1)+2k−1,令 H ( k ) = W ( 2 k ) H(k)=W(2^{k}) H(k)=W(2k),则有 H ( k ) = 2 H ( k − 1 ) + 2 k − 1 H(k)=2H(k-1)+2^{k}-1 H(k)=2H(k−1)+2k−1,用公式法求解即可。
- 例:
-
迭代归纳法:根据递推式不断将式子展开,展开到初值项为止,然后对式子进行化简,最后将结果代入到原递推方程验证。
- 例:与上面同一例子
W ( n ) = 2 W ( 2 k − 1 ) + 2 k − 1 = 2 [ 2 W ( 2 k − 2 ) + 2 k − 1 − 1 ] + 2 k − 1 = 2 2 W ( 2 k − 2 ) + 2 k − 2 + 2 k − 1 = 2 2 [ 2 W ( 2 k − 3 ) + 2 k − 2 − 1 ] + 2 k − 2 + 2 k − 1 = 2 3 W ( 2 k − 3 ) + 2 k − 2 2 + 2 k − 2 + 2 k − 1 = … = 2 k W ( 1 ) + k ⋅ 2 k − ( 2 k − 1 + 2 k − 2 + ⋯ + 2 + 1 ) = k ⋅ 2 k − 2 k + 1 = n log n − n + 1 \begin{aligned} &W(n)=2W(2^{k-1})+2^{k}-1 \\ &=2[2W(2^{k-2})+2^{k-1}-1]+2^{k}-1 \\ &=2^{2}W(2^{k-2})+2^{k}-2+2^{k}-1 \\ &=2^{2}[2W(2^{k-3})+2^{k-2}-1]+2^{k}-2+2^{k}-1 \\ &=2^{3}W(2^{k-3})+2^{k}-2^{2}+2^{k}-2+2^{k}-1 \\ &=\dots \\ &=2^{k}W(1)+k \cdot 2^{k}-(2^{k-1}+2^{k-2}+\dots+2+1) \\ &=k \cdot 2^{k} - 2^{k} + 1 \\ &=n\log{n} - n + 1 \end{aligned} W(n)=2W(2k−1)+2k−1=2[2W(2k−2)+2k−1−1]+2k−1=22W(2k−2)+2k−2+2k−1=22[2W(2k−3)+2k−2−1]+2k−2+2k−1=23W(2k−3)+2k−22+2k−2+2k−1=…=2kW(1)+k⋅2k−(2k−1+2k−2+⋯+2+1)=k⋅2k−2k+1=nlogn−n+1
迭代归纳法只适用于一阶递推公式,对于非一阶递推公式,可以先用差消法转换成一阶递推公式,如:
{ D n = ( n − 1 ) ( D n − 1 + D n − 2 ) D 1 = 0 , D 2 = 1 \begin{cases} D_{n}=(n-1)(D_{n-1}+D_{n-2}) \\ D_{1}=0,D_{2}=1 \end{cases} {Dn=(n−1)(Dn−1+Dn−2)D1=0,D2=1
该式为二阶递推式,通过差消法,有:
D n − n D n − 1 = − [ D n − 1 − ( n − 1 ) D n − 2 ] = … = ( − 1 ) n − 2 [ D 2 − 2 D 1 ] = ( − 1 ) n − 2 \begin{aligned} &D_{n}-nD_{n-1}=-[D_{n-1}-(n-1)D_{n-2}]=\dots \\ &=(-1)^{n-2}[D_{2}-2D_{1}]=(-1)^{n-2} \\ \end{aligned} Dn−nDn−1=−[Dn−1−(n−1)Dn−2]=…=(−1)n−2[D2−2D1]=(−1)n−2
从而得到一阶递推式: D n = n D n − 1 + ( − 1 ) n − 2 D_{n}=nD_{n-1}+(-1)^{n-2} Dn=nDn−1+(−1)n−2
- 例:与上面同一例子
-
9.6. 生成函数
- a n a_{n} an的生成函数: G ( x ) = ∑ n = 0 ∞ a n x n G(x) = \sum_{n=0}^{\infty} a_{n}x^{n} G(x)=∑n=0∞anxn
- a n a_{n} an的指数生成函数: G e ( x ) = ∑ n = 0 ∞ a n x n n ! G_{e}(x) = \sum_{n=0}^{\infty} a_{n}\frac{x^{n}}{n!} Ge(x)=∑n=0∞ann!xn
10. 补充知识点
- 特征函数
- 轮图
- 证明关系反对称:∀<x, y>,若当<x, y> ∈ R ∧ <y, x> ∈ R时,都有x = y,则R反对称。
- 设a,b不全为0,则存在整数x和y使得gcd(a, b) = ax + by。用辗转相除法倒推来求:
- 例:证294与65互素,并求出x,y使得294x + 65y = 1。
证:$294 = 4 \times 65 + 34 \
65 = 1 \times 34 + 31 \
34 = 1 \times 31 + 3 \
31 = 10 \times 3 + 1 \
3 = 3 \times 1
$
故gcd(294, 65) = 1,互素。又有:
1 = 31 − 10 × 3 = 31 − 10 × ( 34 − 31 ) = 11 × 31 − 10 × 34 = 11 × ( 65 − 34 ) − 10 × 34 = 11 × 65 − 21 × 34 = 11 × 65 − 21 × ( 294 − 4 × 65 ) = 95 × 65 − 21 × 294 \begin{aligned} &1 = 31 - 10 \times 3 \\ &= 31 - 10 \times (34 - 31) \\ &= 11 \times 31 - 10 \times 34 \\ &= 11 \times (65 - 34) - 10 \times 34 \\ &= 11 \times 65 - 21 \times 34 \\ &= 11 \times 65 - 21 \times (294 - 4 \times 65) \\ &= 95 \times 65 - 21 \times 294 \end{aligned} 1=31−10×3=31−10×(34−31)=11×31−10×34=11×(65−34)−10×34=11×65−21×34=11×65−21×(294−4×65)=95×65−21×294
- 例:证294与65互素,并求出x,y使得294x + 65y = 1。
- 基本回路与基本割集:生成树中的定义
- 基本回路:设有无向连通图G,T是G的生成树,则T中的树枝加上一条弦构成的回路就叫基本回路。
- 基本割集:T中一条树枝对应一个基本割集,其中包含了该树枝,以及其所在基本回路的所有弦。