数理逻辑
命题 - Proposition
-
定义: 一个陈述句, 不是真就是假
-
一般用小写字母表示命题
-
可以是一个变量, 只能是True或者False的变量(Boolean)
-
例子
- is irrational True
- True
- False
- 每个大于二的整数都是两个质数之和 是命题, 但是至今为止不知道正确与否(哥德巴赫猜想)
- What time is it? 不是命题
- Do not smoke! 不是命题
- 不是命题, 返回值有可能是真有可能是假, 值是不确定的. (这是不完整的陈述句)
种类
- 简单命题 - Simple Proposition
- 是无理数
- 复合命题 - Compound Proposition
- 2是有理数而且是无理数 (能够分解成两个简单命题)
- 命题常项 - Proposition Constant
- 每个大于二的整数都可以分解成两个质数之和
- 命题变项 - Proposition Variable
- 用变量表示的(p,q,r,s,…, 是小写字母)
- 真值直到分配一个命题常项之后才会得出
- 命题逻辑 - Proposition Logic
真值表 - Truth Table
- 定义: F是对于n个命题变项的WWFs, 对于F的一个真值指派(Truth Assignment)是映射.
例子:
T | F | T |
F | T | T |
运算
否定 - Negation
- 定义: 对于命题p的否定是”如果不是p”
- ""读作”非p”, “not p”
真值表:
p | p |
---|---|
T | F |
F | T |
例子:
- p = “雪是白的”
- p = “雪不是白的”
- 但是不等于”雪是黑的”, 因为还可能是其他颜色, 红的黄的绿的蓝的…
合取 - Conjunction
- 定义: 对于p, q的合取是”p和q”
p | q | pq |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | F |
析取 - Disjunction
- 定义: p或q
p | q | pq |
---|---|---|
T | T | T |
T | F | T |
F | T | T |
F | F | F |
隐含 - Implication
- 定义: 如果p, 那么q
真值表:
p | q | pq |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
例子:
- p=“你的了100分”, q=“你获得了A+”
- pq: “如果你得了100分, 那么你就会获得A+”
只有真推假的时候真值是假: 时才是假
条件没有完成的时候, 前置条件变成了未知状态, 所以认为在这种情况下, 所有的情况都按照真处理.
等值 - Bi-Implication
- 定义: p当且仅当q
真值表:
p | q | pq |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | T |
只有的时候真值才是假
运算优先级 - Precedence of Logical Operators
优先看里面的
降序
同级左到右
合式公式 - Well-Formed Formulas
-
定义(递归定义):
-
命题常项和命题变项是WWF
-
如果A是WWF, 那么A也是WWF
-
如果A,B是WWF, 那么(AB),(AB),(AB),(AB)是WWF
-
用有限个运算符拼接WWF的式子, 结果也是WWF
-
-
例子:
- ((pq)(r)) 是
- p 不是(少项)
- (pq)r 不是
构建一颗算符树, 是否能构成一颗完整的树(不能是森林)
(第三个, 不是完整的树, 所以不是WWF)
将自然语言转换为WWF
- 先找出所有简单命题, 用p,q,r,…表示
- 用逻辑连接符将简单命题连接起来
例子:
- “雪不是黑的”
- p: “雪是黑的”
- p
- “当且仅当”
- p: "", q: ""
- pq
一些比较离谱的东西:
- 是无理数或有理数
- p: “是有理数”, q: “是无理数”
- 有两种连接方法:
- 或者(可能都成立): pq
- 互斥的: (pq)(pq)
- “A当且仅当B不来的时候来, 但是如果B来了, C不来, D来”
- “一个A来的充分条件(sufficient condition)是B不来, C和D至少有一个来”
- p: “A来”, q: “B来”, r: “C来”, s: “D来”
- (pq)(p(rs)) : 判断谁来了这种情况成不成立(来了就是True; 表达式的真值成立就是True, 不成立就是False)
- (b(cd))p : 跟上面一样, 是对第二条的翻译. 但是和上面的那句不等价, 因为还有一个限制条件: C和D至少来一个. 那么A来B不来CD都不来的情况满足上面的式子但是不满足下面的.
WWF的类型
- 重言式 - Tautology: WWF的所有表达式的值都是True
- 矛盾式 - Contradiction: WWF的所有表达式都是False
- 可能式 - Contingency: 既不是重言式也不是矛盾式
- 可满足的 - Satisfiable: 一个WWF至少有一种真值指派
代入法则:
假设B是一个重言式, A是任意的命题变项, 将A代入B的结果也是一个重言式.
- 例子:
- is tautology, then is also a tautology
WWF本身可以看作一个映射(函数), 然后将其中的一个变量替换成一个函数(类似于复合函数), 就是代入法则
逻辑等价 - Logically Equivalent
- 定义: 如果A和B是变量的WWF, A和B逻辑等价当且仅当A,B有相同的真值指派在任意的命题变项的真值指派下
- 定理: 如果A,B是逻辑等价的, 那么是重言式
- 定理:
想要证明, 可以用穷举法.
替换规则 - Rule of Replacement
- 将F的子公式替换为逻辑等价形式并简化
Ex.
Ex.
- 令为满足A为真值的真值派遣的集合,则当且仅当时,有
Ex. ,
重言蕴含 - Tautological Implications
- 定义: 令和是命题变项的WWFs, 当每一个真值指派使得是真的时候也是真, 那么称是的重言蕴含
- 写作
定理:
-
当且仅当 是一个重言式
-
当且仅当是矛盾式
名字 | 重言蕴含 |
---|---|
合取 | |
化简 | |
附加 | |
假言推理 | |
拒取 | |
析取三段论 | |
假言三段论 | |
归论 |
证明拒取:
证明假言三段论:
论证 - Argument
- 定义: 一个论证是命题的语句
结论(conclusion): 最终命题
假设(Premises): 其他命题
有效(Valid): 假设能够推导出结论 the truth of premises implies that of the conclusion
证明(Proof): 一个有效的论证推出结论 a valid argument that establishes the truth if a conclusion
- 例子:
- 如果是收敛的, 那么有收敛子列
论证形式 - Argument Form
- 定义: 论证形式是一种格式
- 就是可以把任意的命题带入到论证形式中, 如果论证形式是正确的, 那么将任意的命题代入, 那么论证都是正确的.
有效(Valid): 将任何的命题都替换成命题变量, 从论证形式的真值推出结论的真值
推理规则: 有效的论证形式.
例子:
- valid
p | q | |
---|---|---|
T | T | T |
T | F | F |
F | T | T |
F | F | T |
(T, F) 时是个无效的(invalid)论证
- 例子:
- p: is convergent
- q: has a convergent subsequence
- : if is convergent, then it has a convergent
构建论证 - Building Arguments
给定假设, 推出结论, 就是
对应关系:
名字 | 操作 |
---|---|
假设(Premises) | given formulas |
结论(Conclusion) | Quote the intermediate formula that have been deducted. |
替换规则(Rule of replacement) | Replace a formulas with a logical equivalent formulas |
Rules of Inference | Deduct a new formula with a tautological implication. |
Rule of substitution | Deduct a formula from a tautology. |
谓词 - Predicate
- 定义: 描述一个满射的属性
- n元谓词: 连接n个个体词(Individuals)的满射的词汇
- I: “是一个整数” - unary, 一元谓词
- G: “大于” - binary, 二元谓词
- 谓词常项 - Predicate Constant
- 谓词变项 - Predicate Variable: 能表示谓词常项的代表
个体词 - Individual
- 定义: 表示一个对象的词
- 个体域 - Domain: 所考虑的个体词的集合
例子:
- is an integer
- 个体常项 Individual Constant:
- 个体变项 Individual Variable:
从谓词到命题
命题函数 - Propositional function
- 定义:, P是一个n元谓词
个体词函数 - Function of Individuals
- 定义: 在个体域上的映射
- 例子:
- 的父节点
量词修饰的命题
全称量化 - Universal Quantifier
-
定义: 令是一个命题函数, 则的全称量化是”所有个体域里的对应的”
-
, 读作”对于任意的” (“for all ”)
- ""成为全称量词
- "" 当且仅当 个体域里所有的对应的都为真时 为真
- "" 当且仅当 个体域中存在一个对应的为假时 为假
-
如果个体域为空, 那么所有的都为真
存在量化 - Existential Quantifier
-
定义: 令是一个命题函数, 则的存在量化是”所存在一个个体域里的对应的”
-
, 读作”对任意的”
- 是存在量词
- 为真, 当且仅当在个体域中存在一个使得为真
- 为假, 当且仅当所有个体域中的都能使为假
-
如果个体域为空, 那么所有的为假
-
如果没有
stated
, 那么个体词可以是任意的
绑定变量和辖域 - Binding Variables and Scope
-
定义: 如果对于一个个体词有量化词()修饰, 那么称这个个体词是约束的(bound). 否则, 被称为自由的(free)
- 例子:
- 是约束的, 是自由的
- 例子:
-
定义: 辖域(scope): 量化词的作用公式
- 例子: 的辖域是
-
谓词逻辑 - Predicate Logic:
- 定义: (the area of logic that deals with predicates and quantifiers)
谓词逻辑的良构公式(合式公式) - Well-Formed Formula:
-
变量
- Propositional constants: T,F, 𝑝, 𝑞, 𝑟, …
- Propositional variables: 𝑝, 𝑞, 𝑟, …
- Logical Connectives: ¬,∧,∨, →, ↔
- Parenthesis: (, )
- Individual constants: 𝑎, 𝑏, 𝑐, …
- Individual variables: 𝑥, 𝑦, 𝑧, …
- Predicate constants: 𝑃,𝑄, 𝑅, …
- Predicate variables: 𝑃,𝑄, 𝑅, …
- Quantifiers: ∀, ∃
- Functions of individuals: 𝑓, 𝑔, …
-
定义:
- 没有连接的命题变项, 命题常项, 命题函数是WWF
- 如果是WWF, 那么也是
- 如果是WWF且中不存在在一个中有约束但在另一个中没有约束的个体词, 那么都是WWF
- 如果是WWF, 且个体词在中是自由的, 那么是WFF
- WWF可以被上面的四条规则构造
-
例子:
- 不是WFF
- 是WFF
优先级: 所有的优先级都大于
自然语言转换WFF
- 例子:
- Every irrational number is a real number.
- For every , if is an irrational number, then is a real number.
- = “ is an irrational number”
- = “ is a real number”
- Translation:
- Every irrational number is a real number.
解释 - Interpretation
类似于真值指派
-
definition: an interpretation requires one to (remove all uncertainty)
- assign a concrete proposition to every proposition variable
- assign a concrete predicate to every predicate variable
- restrict the domain of every bound individual variable
- assign a concrete individual to every free individual variable
- choose a concrete function, if there is any
-
定义: 一个解释需要至少一个:
- 给每个命题变项分配具体的命题
- 给每个谓词变量分配具体的命题
- 限制每个约束个体词的个体域
- 给每个个体词变量分配具体的个体词
- 如果有, 那么选择一个具体的函数
-
例子:
- 的个体域是{Alice,Bob,Eve}
- 是”获得A+的成绩”
- 是”我得了A+”
- 如果Alice,Bob,Eve中至少有一个得了A+, 那么我获得了A+
WFF的类型 - Type of WFF
- 普遍有效 - logically valid: 对于任何解释(interpretation)都为真
- 不可满足 - unsatisfiable: 对于任何解释都为假
- 可满足 - satisfiable: 存在一种解释为真
- 例: 只有在个体域为非零的实数时成立
替换规则 - Rule of Substitution
- 定义: 假设A是重言式, 如果将A所有的命题变项替换成一个WWF的逻辑表达式, 那么得到的表达式也是一个普遍有效的WWF
- 例子: is a tautology; hence, is logically valid
逻辑等值 - logical equivalent
-
定义: 如果两个WFF在任何解释(interpretation)下都有相同的真值, 那么这两个WFF时逻辑等值的, 写作
- 例:
-
定理: 当且仅当 时普遍有效的
-
定理: , 即当且仅当为普遍成立
德摩根定律 - De Morgan’s Laws for Quantifiers
-
定理: ,
-
证明(以第一条为例)
- Show that is valid.
- Suppose that is true in an interpretation, then is false in this interpretation
- There is a such that is false, then the satisfies that is true.
- Then is true.
- Show that
- Suppose that is true in an interpretation, then there is a such that is true.
- then the is false in this interpretation.
- is false. (因为有一个使得是false, 那么任意x推P(x)是错误的)
- is true
- Q.E.D.
- Show that is valid.
量词分配定律 - Distributive Laws for Quantifiers
- 定理: ,
注意对应, 对应
重言蕴含 - Tautological Implications
和前面WWF的重言蕴含是一样的, 只是把重言式
换成了普遍成立
只需要排除的情况就好
论证 - Argument
特殊: 引用规则 Rule of Inference
Name | Rule |
---|---|
Universal Instantiation 全称量词消去 | is any individual in the domain of |
Universal Generalization 全称量词引入 | takes any individual in the domain of |
Existential Instantiation 存在量词消去 | is a specific individual in the domain of |
Existential Generalization 存在量词引入 | tesse a specific individual in the domain of |
图论
边:E, 顶点: V, 面: F, 图: G,
Graph - 图
-
定义: a graph G = (V, E) is defined by a nonempty set V of vertices(顶点) and a set E if edges(边), where each edge is associated with one or two vertices(called endpoints(端点) of the edge).
-
无限图 - Infinite Graph:
-
有限图 - Finite Graph: , 被成为图的阶数(order)(顶点个数)
-
-
循环图/多边图 - Loop& multiple-edge Graph: 循环图: 一个边的端点是同一个顶点, 即; 多边图: 两个顶点之间有多条直接连接的边
-
简单图 - Simple Graph: 既不循环也没有多边的图
-
加权图 - Weighted Graph: 每条边上有正整数作为权重的图
-
有向图 - directed graph
-
子图 - subgraph
Types of Graphs - 图的分类
- 定义: 令G=(V,E) 是一个图, 顶点集为
- 边有方向?
- 有: 有向图 - directed graph
- 无: 无向图 - undirected graph
- 多重边?
- 有: 多重图 - multigraph
- 无: 简单图 - simple graph
- 循环?
- 有: 伪图 - pseudograph
- 边有方向?
Type | Edge | Multiple-edge allowed | Loops allowed |
---|---|---|---|
简单图 | 无向 | no | no |
多重图 | 无向 | yes | no |
伪图 | 无向 | yes | yes |
简单有向图 | 有向 | no | no |
多重有向图 | 有向 | yes | yes |
混合图 - Mixed Graph | 有向+无向 | yes | yes |
Special Simple Graph - 特殊的简单图
- 完全图 - Complete Graph:
- 环图 - Circle Graph:
- 轮图 - Wheel:
- 方体 n-Cubes:
图的表示
Adjacency List - 邻接表
- 定义: 令G=(V,E)是一个没有多边的图, G的邻接表是顶点的列表, 列出所有的相邻顶点
- 相邻 - adjacent: 如果之间有一条边, 那么他们就是相邻的
Adjacency Matrix - 邻接矩阵
- 定义: G是一个简单图, 则邻接矩阵是一个的矩阵,
Incidence Matrix
Degree - 度
- 定义: 令 G=(V,E) 是一个无向图, 如果两个顶点之间, 那么认为u,v是相邻的(adjacent)
- 邻域 - neighborhood: for
- 度 - degree: 是与这一点相关联的边的数量
- 如果, 那么称点是孤立的(isolated), 如果, 那么称为悬挂的(pendant)
- 有向图中:
- (u,v): u是起始点(initial vertex), v是终点(e terminal vertex)
- 入度 - in-degree
- 出度 - out-degree
握手定理 - Handshaking Theorem
-
定义: 令G=(V, E)是一个无向图, , and is even
-
定义: 令G=(V, E)是一个有向图, 则
子图 - Subgraph
- 定义: 令G=(V, E)是一个简单图, H=(W, F), 如果, 那么称H为G的子图
- 真子图 - proper subgraph: H是G的子图且
- 导出子图 - subgraph include:
- Notion:
- 顶点是先去出来(可能会少), 然后把原图G里面这些点相连的边取出来, 连接成H
- Notion:
- 先取出想要的边, 然后把用到的顶点取出来
- Notion:
减边 - Removing An Edge
- 定义: 令图G=(V, E)是一个简单图, 且边, 则
加边 - Adding An Edge
- 定义: 简单图G=(V, E), , 则
缩边 - Edge Contraction
- 定义: 简单图G=(V, E), , ,
就是把两点之间的边缩成了一个点, 两个点上的所有相连边都合在了所完之后的点上
减点 - Removing Vertex
- 定义: 是剪完顶点之后还能存在的边
补图 - Complement
- 定义: 简单图G=(V, E), 阶数是n, 定义补图为G’=(V, E’),
图的同构 - Graph Isomorphism
- 定义: 如果有双射, 有, 则称图是同构的
- 被称为同构映射(isomorphism)
图的常项 - Graph Invariants
- 定义: 同构的图中不会改变的属性
如:
- 顶点个数
- 边的个数
- 某个度的顶点个个数
- 后面还有[路径](#路径和同构 - Path and Isonorphism)
二分图 - Bipartite Graph
- 定义: 如果有一个划分, 满足, 则称图G=(V, E)是一个二分图
就是把上面分成一个集合,下面分成一个集合, 只有上面与下面相连(两个集合之间相连), 但集合与集合之间不相连
完全二分图 - Complete Bipartite Graph
- 定义:
判断是否是二分图
- 首先是简单图
- 将一个顶点染上一种颜色(eg. 红色)
- 与这个顶点相连的点都染上另一种颜色(eg. 蓝色)
- 然后再把与蓝色相连的点染上红色, 如此重复, 直到所有顶点都染上色
- 如果有一个点既是蓝色又是红色, 那么不是二分图
- 如果一条边有相同颜色的顶点相连接, 那么就不是二分图, 否则是二分图
数学版本:
- 如果有映射, 满足
匹配 - Matching
- 定义: 边的子集, 使得边之间不相交(没有共享的节点).
- 最大匹配 - maximum matching: 一个有最大数量边的匹配
- 完全匹配 - complete matching: 到中的每一个点都被匹配到.
Hall’s Theorem
- 定义: 一个二分图当且仅当对任意的时, 有一个完全匹配
路径 - Path
- 定义: 令图是一个无向图, 令. 从图中的一点到一点的长度为的路径为一个边的序列, 经过顶点, 其中
- 如果且, 那么成这个路径为回路(circuit)
- 这个路径经过(pass through)顶点
- 这个路径遍历(traverse)边
- 这个路径是简单的(simple)当路径不包含重复的边
- 如果路径是简单的, 那么可以被写成的形式
- 有向图也是一样的定义, 但是注意, 有向图的边的顺序是固定的, 有前面的顶点指向后面的顶点.
连通 - connectivity
- 定义: 对于任意一对顶点, 如果有一条路径连接这两个点, 那么这个图是连通的
- 定理: 令图是一个连通的无向图, 那么任意一对顶点之间是有一条简单路径的.
连通分支 - connected component
- 定义: 一个连通分支图中的连通子图, 而且必须是一个非真子图, 或者说, 是一个最大连通子图,
- 切点 - cut vertex: 去掉这个点会有更多的连通分支产生
- 切边 - cut edge: 去掉这个边会有更多的连通分量产生
点连通度 - Vertex Connectivity
- 不可分的 - nonseparable: 如果一个图没有切点, 那么就是不可分的
- 点割集 - vertex cut: , 且满足是不连通的, 那么是一个点割集
- 点连通度 - vertex Connectivity: : 使图不连通需要移除的最少节点数
- 如果不连通, 那么
- 如果是一个完全图, 那么
- 否则, 是点割集中的元素的数量
-
定理: 如果是一个简单图, 阶为n, 那么
- iff 是不连通的或者
- iff
-
k-连通 - k-connectivity:
- 是1-连通的 当且仅当 是连通的且
- 是2-连通的 当且仅当 是不可分割的且阶数大于等于3
- 是连通的 当且仅当 是连通的对于
边连通度 - edge connectivity
- 边割集 - edge cut: 使得简单连通图变成不连通的需要删掉的边
- 边连通度 - edge connectivity: : 如果是不连通的, . 如果, 那么. 如果, 那么是最小边割集中的元素的个数
连通度 - connectivity
- 定理: 简单图, ,
有向连通图 - connected directed graph
- 强连通-定义: 如果图是一个有向图, 如果对于任意, 有从和从的路径, 那么就是强连通的.
- 弱连通-定义: 如果去掉边的方向后图是连通的
路径和同构 - Path and Isonorphism
-
定理: 如果有一个简单回路,长度为, 如果, 那么这个回路也是简单图的常项
-
其他的图的常项: [常项](#图的同构 - Graph Isomorphism)
路的计数 - Counting Paths Between Vertices
- 定义: 是一个图, 邻接矩阵是, 判断之间有多少长度是的路径, 只需要看中点的值是多少即可
欧拉七桥问题
-
定义: 令图, 边只遍历一次
- 欧拉路径 - Euler Path: 简单路径遍历所有顶点
- 欧拉环路 - Euler Circuit: 简单环路遍历所有的顶点
-
定义: 令图是一个阶数为2的连通多重图, 当且仅当时图有欧拉回路
-
无向图:
- 如果所有的点的度都是偶数, 那么存在欧拉回路
- 如果奇数度的点只有2个, 那么存在欧拉通路(路径)
-
有向图:
- 所有点的入度等于出度, 那么存在欧拉回路
- 可以允许有且仅有两个点的入度不等于出度, 或者所有点入度出度都相等, 那么有欧拉通路
-
欧拉图: 有欧拉回路
-
半欧拉图: 有欧拉通路
Hierholzer算法
- 在一个欧拉图中, 以任意一个顶点为起点, 遍历与之相邻的顶点
- 深搜, 访问相邻的节点, 将经过的边删除
- 如果当前顶点没有相邻边, 那么把这个点入栈
- 倒序输出栈中的顶点, 即为一个欧拉回路
哈密顿路径 - Hamilton Path
-
定义: 只遍历一次顶点的路径
-
哈密顿环:只遍历一次顶点的环路
-
但是判断是否有哈密顿环还是一个NP-Complete问题
-
必要条件: 有一个度为1的顶点那么不能有哈密顿环; 有一个度为2的顶点那么哈密顿环遍历所有的边
-
充分条件:
令是一个简单图,阶数,
- Ore’s定理: 如果, 那么G有哈密顿环
- Dirac’s定理: 如果, 则G有哈密顿环
最短路问题 - Shortest Path Problem
每个边都有权重, 找到两点之间权重之和最小的一条路径
问题: 找到ad之间最短路径
方法: 找到距离a最近的顶点, 再找第二近的, …, 直到找到d Dijkstra’s Algorithm
Dijkstra算法
-
找a到任意相连的路径的最短路:
{a,b}=4,{a,f}=2: 最近的点是f
-
现在已经有点集{a,f}, 和剩余的点集{b,c,d,e}, 然后通过边来找到距离a第二近的点.
从a出发: {a,b}=4; 从f出发: {a,f,e}=5
所以第二近的点是b
-
现在已有点集{a,f,b}, 剩余点集{c,d,e}, 更新第三近的点
a出发: 全部遍历过; b出发: {a,b,c}=7,{a,b,e}=7; f出发: {a,f,e}=5
第三近的点是e
-
已有点击{a,f,b,e}, 剩余点集{c,d},更新第四近的点
a,f出发: 全部遍历过; b出发: {a,b,c}=7,{a,b,e}=7; e出发: {a,f,e,d}=6(找到d)
-
a到d的最短路是6
贪心, 局部最优解去更新下一步的最优, eg. 在e点的dis是用f.dis更新而不是b.dis更新, 因为b.dis>f.dis.
旅行者问题 - Travel Salesperson Problem
从一个城市出发, 经过所有城市一次, 并回到自己的城市, 问, 怎么用最短路径
- 完全图中哈密顿环的最短路径
完全遍历(没有简化算法)
平面图 - Planer Graph
-
定义: 没有交叉边的图是平面图
-
e.g.
非平面图 - Nonplaner Graph
-
Jordan曲线定理: 如果有一个闭合曲线, 那么这个闭合曲线必然会把所处的平面分成两个区域. 任何连接这两个区域的曲线都会与原来的曲线交叉.
-
e.g. 不是平面图
欧拉公式 - Euler’s Formula
区域 - Region
一个闭合曲线将空间分成几个区域.
- 度:
- 这个区域由多少遍围成的.
- 如果有一条孤立的边, 那么这条边对度数的贡献为2
- 外部面: 无穷的空间(曲线围成的区域外部)
- 内部面: 有限的区域空间(曲线围成的区域)
欧拉公式
应用
- 定理: 令图是一个连接平面上的简单图, 如果每个面都有, 那么
- 推论: 令图是一个连接平面上的简单图, 那么一定有
- e.g. 不是平面图
- 不是平面图
同胚 - Homeomorphic
- 定义: 在同一个初始图上初等细分之后得到的图是同胚的.
- 初等细分 - elementary subdivision: 在一条边上加上一个顶点.
Kuratowski定理
- 定义: 一个非平面图一定是与或者同胚
对偶图 - Dual Graph
在每一个区域连一个点, 然后在每一个公共边处连一条线(连接区域对应的点), 得到的图
五色定理 - 5-coloring Theorem
- 定理: 最多用五种颜色可以把一个平面图的所有区域染上色.
四色定理
略
树 - Tree
- 定义: 连接无向无环图
- 森林: 多棵树组成的图
性质:
- 定理: 每两个顶点之间有且仅有一条简单的路径.(如果有多条路径, 那么一定有环, 与树的定义冲突)
- 边: n-顶点的图有条边. (数学归纳法: 假设顶点有边, 顶点多了一个顶点, 用一条边链接, 那么边是, 得证)
- 树是连接的
上述三点知二推一, 或者说知道两点就能判断是一颗树.
子节点不超过m的树被称作m叉树(m-ary)
平衡树 - Balance Tree
-
定义: 一颗叉树所有的叶节点都是在层或者层的时候被称为平衡树
-
定理: 层的叉树最多有个叶节点
-
推论: 叉树有层个叶节点, 那么. 如果是全满且平衡的m叉树, 那么
叶节点只是一个分支的最底层的节点(就是最子的节点)
树的遍历 - Tree Traversal
把节点全走一边
遍历
-
先序遍历 - Preorder
-
中序遍历 - Inorder
从左边最深的节点(叶节点)开始, 遍历到上一层, 查找该层是否有其他子节点, 如果有, 再从左往右找叶节点开始遍历, 如果全遍历完, 去找父节点, 重复上述过程.
-
后序遍历 - Postorder
从左往右, 从下往上
深度优先搜索 - DFS Depth First Search
一般用递归
广度优先搜索 - BFS Breadth First Search
一般用栈
生成树 - Spanning Tree
-
定义: 一个简单图中的子图, 且这个子图是一颗包含这个简单图所有节点的树.
-
定理: 如果一个简单图连接有生成树(当且仅当, 互推)
最小生成树 - Minimum Spanning Tree(MST)
- 定义:
- 是一棵树
- 遍历所有顶点
- 在所有生成树中, 边的权重之和最小
- 不一定是唯一的
Prim算法
组合数学
前置知识
函数与集合 - set and function
- injection单射: , 或
- surjection满射:
- bijection双射: 同时满足双射和单射
基数 - Cardinality
定义1: 令是一个集合, 如果有可数的元素个数, 那么是可数集(finite set). 否则, 是无限集(infinite set)
定义: 一个可数集中的基数就是中元素的个数.
定义:
- 是一个双射
- 是一个单射
- 是一个单射, 但是不是一个满射
定理:
例子: ,
可列和不可列 - Countable and Uncountable
定义: 如果或者, 那么是可列的. 否则, 是不可列的
Schroder-Bernstein Theorem
用于比较两集合的基数.
定理: , 这里可以用单射证明