数理逻辑

命题 - 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)是映射.

例子:

TFT
FTT

运算

否定 - Negation

  • 定义: 对于命题p的否定是”如果不是p”
  • ""读作”非p”, “not p”

真值表:

pp
TF
FT

例子:

  • p = “雪是白的”
  • p = “雪不是白的”
  • 但是不等于”雪是黑的”, 因为还可能是其他颜色, 红的黄的绿的蓝的…

合取 - Conjunction

  • 定义: 对于p, q的合取是”p和q”
pqpq
TTT
TFF
FTF
FFF

析取 - Disjunction

  • 定义: p或q
pqpq
TTT
TFT
FTT
FFF

隐含 - Implication

  • 定义: 如果p, 那么q

真值表:

pqpq
TTT
TFF
FTT
FFT

例子:

  • p=“你的了100分”, q=“你获得了A+”
  • pq: “如果你得了100分, 那么你就会获得A+”

只有真推假的时候真值是假: 时才是假

条件没有完成的时候, 前置条件变成了未知状态, 所以认为在这种情况下, 所有的情况都按照真处理.

等值 - Bi-Implication

  • 定义: p当且仅当q

真值表:

pqpq
TTT
TFF
FTF
FFT

只有的时候真值才是假

运算优先级 - 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)
  1. “A当且仅当B不来的时候来, 但是如果B来了, C不来, D来”
  2. “一个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

  1. 将F的子公式替换为逻辑等价形式并简化

Ex.

Ex.

  1. 为满足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
pq
TTT
TFF
FTT
FFT

(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 InferenceDeduct a new formula with a tautological implication.
Rule of substitutionDeduct 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:

解释 - 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

  1. 普遍有效 - logically valid: 对于任何解释(interpretation)都为真
  2. 不可满足 - unsatisfiable: 对于任何解释都为假
  3. 可满足 - 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.

量词分配定律 - Distributive Laws for Quantifiers

  • 定理: ,

注意对应, 对应

重言蕴含 - Tautological Implications

和前面WWF的重言蕴含是一样的, 只是把重言式换成了普遍成立

只需要排除的情况就好

论证 - Argument

特殊: 引用规则 Rule of Inference

NameRule
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
TypeEdgeMultiple-edge allowedLoops allowed
简单图无向nono
多重图无向yesno
伪图无向yesyes
简单有向图有向nono
多重有向图有向yesyes
混合图 - Mixed Graph有向+无向yesyes

Special Simple Graph - 特殊的简单图

  1. 完全图 - Complete Graph:

  1. 环图 - Circle Graph:

  1. 轮图 - Wheel:

  1. 方体 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:
        • 先取出想要的边, 然后把用到的顶点取出来

减边 - 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算法

  1. 在一个欧拉图中, 以任意一个顶点为起点, 遍历与之相邻的顶点
  2. 深搜, 访问相邻的节点, 将经过的边删除
  3. 如果当前顶点没有相邻边, 那么把这个点入栈
  4. 倒序输出栈中的顶点, 即为一个欧拉回路

哈密顿路径 - Hamilton Path

  • 定义: 只遍历一次顶点的路径

  • 哈密顿环:只遍历一次顶点的环路

  • 但是判断是否有哈密顿环还是一个NP-Complete问题

  • 必要条件: 有一个度为1的顶点那么不能有哈密顿环; 有一个度为2的顶点那么哈密顿环遍历所有的边

  • 充分条件:

    是一个简单图,阶数,

    • Ore’s定理: 如果, 那么G有哈密顿环
    • Dirac’s定理: 如果, 则G有哈密顿环

最短路问题 - Shortest Path Problem

每个边都有权重, 找到两点之间权重之和最小的一条路径

问题: 找到ad之间最短路径

方法: 找到距离a最近的顶点, 再找第二近的, …, 直到找到d Dijkstra’s Algorithm

Dijkstra算法

  1. 找a到任意相连的路径的最短路:

    {a,b}=4,{a,f}=2: 最近的点是f

  2. 现在已经有点集{a,f}, 和剩余的点集{b,c,d,e}, 然后通过边来找到距离a第二近的点.

    从a出发: {a,b}=4; 从f出发: {a,f,e}=5

    所以第二近的点是b

  3. 现在已有点集{a,f,b}, 剩余点集{c,d,e}, 更新第三近的点

    a出发: 全部遍历过; b出发: {a,b,c}=7,{a,b,e}=7; f出发: {a,f,e}=5

    第三近的点是e

  4. 已有点击{a,f,b,e}, 剩余点集{c,d},更新第四近的点

    a,f出发: 全部遍历过; b出发: {a,b,c}=7,{a,b,e}=7; e出发: {a,f,e,d}=6(找到d)

  5. 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

把节点全走一边

遍历

  1. 先序遍历 - Preorder

  2. 中序遍历 - Inorder

    从左边最深的节点(叶节点)开始, 遍历到上一层, 查找该层是否有其他子节点, 如果有, 再从左往右找叶节点开始遍历, 如果全遍历完, 去找父节点, 重复上述过程.

  3. 后序遍历 - Postorder

    从左往右, 从下往上

一般用递归

一般用栈

生成树 - Spanning Tree

  • 定义: 一个简单图中的子图, 且这个子图是一颗包含这个简单图所有节点的树.

  • 定理: 如果一个简单图连接有生成树(当且仅当, 互推)

最小生成树 - Minimum Spanning Tree(MST)

  • 定义:
    • 是一棵树
    • 遍历所有顶点
    • 在所有生成树中, 边的权重之和最小
    • 不一定是唯一的
Prim算法

组合数学

前置知识

函数与集合 - set and function

  1. injection单射: , 或
  2. surjection满射:
  3. bijection双射: 同时满足双射和单射

基数 - Cardinality

定义1: 令是一个集合, 如果有可数的元素个数, 那么是可数集(finite set). 否则, 是无限集(infinite set)

定义: 一个可数集中的基数就是中元素的个数.

定义:

  1. 是一个双射
  2. 是一个单射
  3. 是一个单射, 但是不是一个满射

定理:

例子: ,

可列和不可列 - Countable and Uncountable

定义: 如果或者, 那么是可列的. 否则, 是不可列的

Schroder-Bernstein Theorem

用于比较两集合的基数.

定理: , 这里可以用单射证明