本文最后更新于 2026年1月31日 凌晨
快到期末周了,为自己的Cheat Sheet做点准备
Naive Set Theory
感觉唯一要看的是两个集合的power和一个证明过程。
CaO,一翻Slide发现还有几个定义要说。
几个定义
$\binom{A}{k}={X $ ⊆A:∣X∣=k}
BA={f:A→B}
aRb infixnotation for (a,b)∈R
一个证明
Theorem: For every set A it is not the case that ∣2A∣≤∣A∣
Proof: h:→2A, we need to show that h is not a surjection.
i.e. given h we need to find some Δh∈2A so that
∀a∈A:h(a)=Δh
Use Δh={a∈A∣a∈h(a)}
For every a∈A the sets h(a) and Δh differ in element a.
经典方法
康托对角化
Words, Strings, Language
一些定义
Σ… finitset “Alphabet”
Σk… ordered k-tuples over Σ w=(a1,a2,…,ak)
words of length k w=a1a2…ak∣w∣=k
ϵ empty word
Σ∗Σ+ all finite string and all finite non-empty string
#a(w): a在w中的出现次数
L⊂Σ∗… “language” over Σ
图灵机入门
三类: FA,PDA,TM
分别对应Chomsky的 Regular grammar,Context free grammar和Unrestricted Grammar
FA
记号
ΣQs∈QF⊂QΔ⊂((Q×Σ)×Q)
分别代表: 字符集 状态集 起始状态 终止状态集 Configuration(状态转移路径集?):(当前状态,转移字符,转移后状态)
Computing step relation ⊢M on KM
∀q∈Q,a∈Σ,u∈Σ∗:(q,au)⊢M(q′,u) iff (q,a,q′)∈Δ
⊢M∗ on KM
当有一个计算路径时,直接前面起始state,后面终止state.
分为Deterministic 和 Non deterministic.
Continuous Language
是这门课教授为了教学创造的概念,但给的Lemma是通用的
定义为 FL(w)={a∣a∈Σ,wa∈L}
Theorem(Myhill-Nerode)
L DFA language ⟺FL is finite
一般反着用:
FL not finite ⟹ L not DFA-language.
证非REG可以找一组 {w(i)∈Σ∗} s.t
FL(w(i))=FL(w(j))for i=j
之后有Pumping Lemma了其实就没那么常用了。
后面也知道DFA-language就是Regular Language
DFS Minimization
暴力算法:先按终态和末态分,然后每次检查每个划分中是否每个元素在每个可能输入下都会保持在同一分区,如果不是,将输入后的转移结果相同的状态再划分到一起
NFA转DFA
因为我一直和最小化搞混,就一起写了。
子集构造好难。
定义:子集构造就是先对Q做一个powerset,然后将里面的元素作为新的Q’.再按这些子集之间的转移关系建立新的DFA。
哎,期中考试这题一分不得。麻了。
Pumping Lemma
正着的形式:
L REG ⟹
∃N∈N:∀uvw∈L∃partition v=xyz:∀i∈N:uxyizw∈L
∣v∣≥Nwith0<∣y∣≤N
因为它是必要不充分的,一般反着用判断非REG:
Remark: 对于 over 一个字母的language,fulfilling the pumping lemma is 充要的 (我在写什么,蚌)
∀N∈N:∃uvw∈L:∀partition v=xyz:∃i∈N:uxyiz∈L
∣v∣≥Nwith0<∣y∣≤N
可以用一种“玩游戏”的说法解释一下全称量词:
∀对手选,自己无法控制
∃自己选
- 对手选N,你母鸡
- 自己从L中选一个词,并自己确定uvw的划分,∣v∣≥N
- 对手选择v=xyz的划分方法,保证 0<∣y∣≤N
- 自己选择i使uxyizw不在L中
这样就可以证L非REG了。
PDA
Notations
比FA多了:
- $:栈的起始符号
- Γ:栈的字符集
- Δ 多一个对栈的操作,变为((Q×Σ×Γ)×(Q′×Γ′))
Pumping Lemma for CFL
相似地,对于Context Free Language, 我们也有相似的Grammar。
基本思想可以近似地理解为因为生成规则是finite的,因此想要生成长字符串必定能有某种重复规律。
Formally:
∃z∈L,∣Z∣≥N
∀ partition z=uvwyz with ∣vwx∣≤N,∣vx∣>0
∃i s.t. uviwyiz∈L
主要是第二步要分类讨论,覆盖所有可能情况。
Reducibility
不formal的定义:A⪯B: B能解决A。B至少和A一样难。
经典停机问题解法:SAM⪯HALT
SAM(M):
if not HALT(M,|M|):
reject
else
if M(|M|):
accept;
else:
reject.
这样就构造出了SAM。而SAM undecidable。所以HALT也undecidable.
这样我们就证明了HALT undecidable.
Formal的定义:
∀A,B⊆Σ∗,∃ everywhere computable f:A→B,∀x∈A,f(x)∈B
虽然不知道怎么用,但还是记一下。
复杂度类
这是前两周的主要内容。记录一下。
基本符号表示
NSAPACE,DSAPCE,NTIME,DTIME:分别代表non-det和det的State graph中从$s\in S \to f\in F$的路径上thickness的最大值和...走过边数的最大值。
几个经典的复杂度类
P=k>1⋃DTIME(nk)
NP=k>1⋃NTIME(nk)
同理可得 PSAPCE和NPSPACE。
还有两个特殊的:
L=DSPACE(logn),NL=NSAPCE(logn)
他们之间的关系是
L⊆NL⊆P⊆NP⊆DSPACE=NSPACE
补一个Tutorial提到的点。为什么区分NP和co-NP但不管co-P?因为其实co-P通过对输出取反就能做到,所以不用管。
以及有一种东西叫semi-polynomial的算法。
意思是它在以输入大小作为衡量尺度的时候有多项式时间解法,但如果以输入长度来看,它就是NP的。
P-reducible
Definition
首先引入一个polynomial reduction。
其实就是把everywhere computable的function f加了个“能在polynomial时间内算出”。符号长⪯p这样。
NP-hard & NP-completeness
NP-hard的定义:
For language S, ∀L∈NP,s.t.L⪯pS, then S is NP-hard。
NP-complete的定义:
…, S∈NP
解题格式
Tutorial上讲的,也不能说格式吧,就是证NP-completeness的过程。
- 使用certificate的定义,证明这个东西是in NP的
- 使用P-reduction,证明它是NP-hard的。
然后就能证好了。
常用的感觉就是:
- SUBSETSUM
- SAT/3−SAT
几个具体🌰
MERF:multi-valued satisfiability.
P-UNIV⪯pMERF⪯pSMERF⪯pSAT⪯p3-SAT⪯pCLIQUE
同时还有:
3-SAT⪯p3COLORABILITY
这个Reduction的Idea是我们把
对于SAT⪯p3-SAT这一块,记录一下教材上的证法:
对于一个柿子,比如 p=a∧b∧c∧d
我们可以引入一个新变量z,构造另外两个柿子p1=a∧b∧z,p2=c∧d∧z。
保证只有p成立时,两个柿子才成立,vice versa。
这个构造可以成立的原因有两个:
1.这个构造把柿子拆成了两部分,分别和原柿子相符。
2.因为一个z取反了,另一个没有,所以整个柿子是否satisfiable与z无关。
因此这个构造可行。
课上例子
Art Gallery Problem
问题描述是给定一个多边形,求最少需要几个“Guard”能看到所有的顶点。这个问题是NP-complete的。
几个Claim:
- 这个东西的下界是⌊3n⌋,可以用基本所有的polygon都能triangulation然后能3-COLOR以及triangulation总存在来证。
- 对任意整数k,总存在一个有3k2+2的多边形使得所需的守卫数至少为k。
贴一个我看起来比较好的证明.
Schönhardt’s polyhedron
以上的问题还有对应的三维版本,好像所需的证明技巧类似,也是构造三角形和“niche”。最后完成证明。
贴一下论文来源.
Space Complexity
先复习一下Simple TM的定义:
几个notation:ΣΓQs∈QF⊂QΔ⊂((Q×Σ×Γ)×(Q×Γ×MW×MI))
其中 MW,MI∈{−1,0,1},为work tape和input tape上的移动状况。
而Δ又能拆成3个:
- Δ1(Q×Σ×Γ)×(Q×Γ) 对work tape的修改
- Δ2 (Q)×(Q×MW) move on work tape
- Δ2(Q)×(Q×MI) move on input tape
几个🌰
- Context Sensitive Grammars
- 华容道
- graph coloring game
- …