本文最后更新于 2026年2月11日 凌晨
快到期末周了,为自己的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′×Γ′))
以及有两种接收状态,final-state 或者 empty stack。
Pumping Lemma for CFL
相似地,对于Context Free Language, 我们也有相似的Pumping Lemma。
基本思想可以近似地理解为因为生成规则是finite的,因此想要生成长字符串必定能有某种重复规律。
Formally:
∃z∈L,∣Z∣≥N
∀ partition z=uvwyz with ∣vwx∣≤N,∣vx∣>0
∃i s.t. uviwyiz∈L
主要是第二步要分类讨论,覆盖所有可能情况。
以及one letter alphabet满足pumping lemma后还regular。
Closure Property
Give that L,L′ to be context-free language and R to be regular language, we have the following are also context-free:
- L∪L′
- L⋅L′={xy∣x∈L and y∈L′} (Concatenation)
- LRev={xRev∣x∈L} (Reversion)
- Li=L⋅Li−1 for i>0,L0={ϵ}
- L∗
- L∩R
然后以下两个not necessarily context-free:
- L∩L′
- L
Proof 1)
L={aibjck∣i,j,k∈N,i=j}
L′={aibjck∣i,j,k∈N,i=j}
L∩L′={aibjck∣i,j,k∈N,i=j=k}={anbncn∣n∈N}
which is not context-free by the pumping lemma for CFL.
Proof 2)
Assume it’s true, we have L∪L′=L∩L′.
But we have proofed the right hand side to be not necessarily context free. Thus the statement is also not necessarily true.
注意CFL是NPDA language,后面讨论DPDA和NPDA时候要区分清楚。
DPDA和NPDA的能力区别
- Theorem: DPDA are closed under complement.
证明大体思路是对L构造一个DPDA M, 然后吧所有的Final state和non-final state flip一下。
然后几个构造的点要注意:
- 对所有的Dead end建一个超级死点(, 这样保证取反后能到,而且是final sate
- 提前计算ϵ闭包,保证最后ϵ-move 的结果是确定的,避免ϵ-move随便带到final或者non-final state。
有了这个结论,我们就能对这两种machine的能力做个总结了:
- DPDA language⊆NPDA language
因为NPDA language不能取补集,而DPDA可以,因此NPDA包含的语言更多。
更进一步还有什么结论呢?
- 如果Laccepted by some PDA M, then it is also accepted via empty stack by some NPDA M′ with only one state.
这时候,栈顶元素就代表着现在的state。
Grammar
符号定义
G=(Σ,V,S,P)
- Σ: terminal alphabet
- V: variable alphabet
- S∈V: start variable
- P⊂FVF×F, (F=(Σ∪V)∗)
这些集合都是finite的。
⇒G∗是reflexive, transitive closure of ⇒G: derivation relation on F.
The language generated by G is:
L(G)={w∈Σ∗∣S⇒G∗w}
🌰
生成L(G)={anbncn∣n∈N}的Grammar:
- V={C,D,S}
- Σ={a,b,c}
- P={SDCC→aDbc,S→ϵ,→aDbc,D→ϵ,b→bC,c→cc}
Chomsky之你第一次听说他是在哪里(
- Type 0 (unrestricted)
- Type 1 (context sensitive) only productions α→β where ∣α∣≤∣β∣
也就是说语法不能缩短字符串
- Type 2 (context free) only production of the form A→a where A∈V
意思是生成只需要非终结符,无关上下文
- Type 3 (right linear=regular language)
只能以下form
A→uB,A→u,A→ϵ where A,B∈V and u∈Σ
唯一需要注意图灵机对应的是type1对应TM with linearly bounded work space.
Context free grammar的条件
- 存在derivation
- 存在leftmost derivation
- 存在derivation tree with α as leaf labelling
Normal Form (for context-free grammar)
CNF
Have the form A→a or A→BC (A,B,C∈V and a∈Σ)
GNF
Have the form A→aU, (U∈V∗,a∈Σ)
TM
有几个新记号:
- #∈Γ∖Σ
- Δ⊂(Q×Γ)×(Q×Γ×{−,0,+}) computation
然后Linearly Bounded Automata就是只用input tape的STM。
更Generalized的TM
主要是computing step rules, Δ⊂(Q×Σ×Γk)×(Q×{−,0,+}×(Γ×{−,0,+})∗)
DTM与NTM等价。
Church-Turing Thesis
Everything that is computable at all can be computed by a Turing machine.
从Computable到Decidable
partial function f computable
给定TM M, ∀x∈Σ∗,upon input x:
- stops with tape content f(x)∈Γ∗ in case f(x) is defined.
- and does not stop in case f(x) is not defined.
然后everywhere computable就是f(x)对∀x∈Σ∗有定义。
Recursively Enumerable
A⊂Σ∗ r.e. ⟹ there is an everywhere computable 的 function F:N→Σ∗ so that
A={F(1),F(2),⋯}={F(n)∣n∈N}
Decidable
首先给一个characteristic function的定义:
A⊂Σ∗, 那么
χA(x)={1,if x∈ A0,if x∈ A
就是characteristic function.
我们定义Semi-decidble为只用对x∈A的情况有定义就可以。
然后如果 A decidable, 那么我们有 A semi-decidable 和 A semi-decidable。然后这里语言decidable也包含对应的Turing Machine acceptable。
TM’s encoding
M=Σ=Γ=#=Q=s=F=Δ⊆Δ=-=cod(M)=cod((qh,ai,qj,ak,μp))=(Σ,Γ,#,Q,s,F,Δ){a2,…,at}{a1,…,at,…,ag}a1{q1,…,qm}q1{q2}(Q×Γ)×(Q×Γ×{−,0,+}){δ1,…,δD}μ1,0=μ2,+=μ3cod(δ1)cod(δ2)⋯cod(δD)01h01i01j01k01p0
这样我们就能引入UNIV和SAM的问题,因而探索NP,P之类的问题。
SAM: Self Accepting Machine, 能否accpet自己的编码。
UNIV:给定任意一个图灵机M的编码,能否模拟它。
SAM相关
这里,UNIV是Turing acceptable但不是decidable的。
然后SAM是undecidable的,简单的证明如下:
先证SAMundecided:
要证 no TM M where L(M)=SAM.
For every TM M we have L(M)=SAM
For every w∈{0,1}∗ we have L(Mw)=SAM
L(Mw) and SAM differ at least in w thus w∈L(Mw)⇔w∈SAM
然后再证SAMundecidable。
假设SAMdecidable, 那么
- SAM TM acceptable and
- SAM TN acceptable, which is not。
从这个证明过程中可以学到我们可以先证一半not TM acceptable,再用定义推出整个undecidable.
UNIV相关
UNIV是undecidable的,因为我们可以使用SAM构造一个UNIV, 然后 SAM已经被证明undecidable了,说明UNIV至少和它一样难,因此它也undecidable.这就引出了我们接下来Reducibility的概念。
Reducibility
基本定义
不formal的定义:A⪯B,说明:
- B decidable,因为A不会更难,因此A decidable。
- A undecidable, 因为B至少和A一样难,因此B undecidable.
经典停机问题解法:
SAM⪯HALT
1 2 3 4 5 6 7 8
| SAM(M): if not HALT(M,cod(M)): reject else if M(cod(M)): accept; else: reject.
|
这样就构造出了SAM。而SAM undecidable。所以HALT也undecidable.
这样我们就证明了HALT undecidable.
Formal的定义:
∀A,B⊆Σ∗,∃ everywhere computable f:A→B,∀x∈A,f(x)∈B
虽然不知道怎么用,但还是记一下。
Rice’s theorem
令 RE 为所有r.e.语言构成的集合,取一个子集 S, ∀S⊂RE, 这里S non-trivial, 有
C(S)={w∣L(Mw)∈S}
undecidable。
和证伪很简单,因为只要举反例。证实很困难,因为要覆盖到(enumerate)所有情况是一个思路。
PCP problem & MPCP
MPCPΣ⪯PCPΣ∪{$,#}
对于每个下面的元素,我们在每个字母开头加上#.
对于上面的元素,我们对于第一个元素,在它的每个字母前后都加上#,对于其他元素,只在后面加#.
最后再加一个($,#$)的骨牌。
这样就能把一个k张牌的MPCP归化为一个k+1张牌的PCP了。
因为这样保证了:
- 之前问题的第一张牌一定在第一位
- 只有在原问题有解时构造出的问题才有解。
Reduction链
UNIV⪯1WORD⪯2MPCP⪯3PCP
证明如下:
- 在证明TM和Grammar能力等价的时候证了
- 把生成过程写出,把$S⇒w€两行Reverse一下,并排放。头是(€w,€),尾是($,S$),中间直接对应。这样就完成了构造。
- 上面证过了。
因此我们可以说PCP undecidable.
有了这个,我们还可以证一些语言之间的关系的问题undecidable.因为这些都能归化到PCP problem。
核心思路是对一个PCP instance (k,((x1,y1))⋯,(xk,yk))
Consider
LX={IR$X[I]∣I∈{1,2,⋯,k}+}LX={IR$X[I]∣I∈{1,2,⋯,k}+}
这里I,J为index set,然后IR为reverse一下指标集I.
LX是Context free的,因为他可以这么生成:
S→iSxi,1≤i≤kS→i$xi,1≤i≤k
这样也能更好理解为什么要对指标集取反,因为确实是和$对称的。
这样我们就能用这两个Grammar去证一些东西了,比如要证:
L(G1)∩L(G2)=∅
我们考虑 L(G1)∩L(G2)=∅, 那么就存在一个指标集I能满足 X[I]=Y[I].是一个PCP的解。
为了一个一个证伪,我们得从对所有 k>0 做PCP,而这个是not finite的,因此这个问题undecidable.
复杂度类
这是前两周的主要内容。记录一下。
基本符号表示
NSAPACE,DSAPCE,NTIME,DTIME:分别代表non-det和det的State graph中从s∈S→f∈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无关。
因此这个构造可行。
给出那个everywhere computable的function f 的实现。
课上例子
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
几个PSAPCE-Complete的🌰
- Context Sensitive Grammars
- 华容道
- graph coloring game
- …
Randomness(不考)
几个复杂度类
RP & co-RP
L∈RP, ∃ TM M that for any input x, we can determine the following thing in p(∣x∣) time where p is a polynomial:
- x∈L→M accept YES with Prob ≥ 1/2.
- x∈L→ NO.
🌰:Miller-Rabin素性检验
BPP & ZPP
ZPP=RP ∩c o-RP
BPP: 错误概率小于 1/3
🌰:SAT的多项式版本
课上老师给的Big Picture
Computing
首先,给定几个基本要素:
- Input tap, Work tape
- FA, FDA, TM
- (non-)deterministic
然后是几个概念:
- grammars
- language accepted by TM -> Recursively Enumerable
- SAM: Self Accepting Machine
- Reduction, 几乎是最重要的内容。
然后是Rice Theorem 和 PCP
Recursion Theory
Complexity Theory
首先复习了复杂度类的定义
Configuration Graph很重要,NP-complete的时候会argue这个东西
Poly-time reduction
默写一下定义:
∃F:Σ∗→Γ∗Computable in poly-time
∀x∈Σ∗,x∈L⇔F(x)∈L′
NP-complete 定义
S∈NP,∀L∈NP,L⪯pS
还有
S NP-hard,S⪯pL′⟹L′ NP-hard