內容
- 形式語言與自動機:正則語言、上下文無關語言、圖靈機
- 可計算性:可斷定、可歸約
- 計算複雜性:時間、空間、難解性
正則語言
肯定有窮自動機DFA:$M=<Q,\Sigma,\delta,q_0,F>,\delta:Q\times\Sigma\rightarrow Q$正則表達式
- M 接受字符串:$w=w_1...w_n,\exists q_0...q_n,\delta(q_i,w_{i+1})=q_{i+1},q_n\subset F$
- 正則語言:A={w|w被一個 DFA接受}
- 正則表達式:$a\in E, R_1R_2\in E, (R_1|R_2)\in E, R_1^*\in E\,if\,R_1\in E,R_2\in E$
非肯定有窮自動機NFA:$M=<Q,\Sigma,\delta,q_0,F>,\delta:Q\times\Sigma\rightarrow P(Q)$算法
- 任意 NFA,存在一個等價DFA
- 正則語言$\Leftrightarrow$正則表達式
- 每一個正則表達式存在一個 NFA 識別,或者一個 DFA識別,即正則語言
- 每一個正則語言可用正則表達式定義
- $DFA\Rightarrow GNFA\Rightarrow$正則表達式
- 利用泵引理,證實一個語言不是正則的$\{1^n0^n\}$
- 設 A 是一個正則語言,則存在一個數 p(泵長度),使得A中長度不小於 p 的字符串 s=xyz,$\forall i\geqslant 0,xy^iz\in A,|y|>0,|xy|\leqslant p$
上下文無關語言
- 上下文無關文法CFG:$<V,\Sigma,R,S>,R:V\rightarrow (V\bigcup\Sigma)^*$
- 下推自動機PDA:$M=<Q,\Sigma,\Gamma,\delta,q_0,F>,\delta:Q\times\Sigma\times\Gamma\rightarrow P(Q,\Gamma)$
- 上下文無關語言$\Leftrightarrow$被下推自動機識別
- 斷定上下文無關語言的泵引理,反例$\{2^n1^n0^n\}$
- 設 A 是一個上下文無關語言,則存在一個數 p(泵長度),使得A中長度不小於 p 的字符串 s=uvxyz,$\forall i\geqslant 0,uv^ixy^iz\in A,|vy|>0,|vxy|\leqslant p$
圖靈機
- 圖靈機:$M=<Q,\Sigma,\Gamma,\delta,q_0,q_{acc},q_{rej}>,\delta:Q\times\Gamma\rightarrow Q\times\Gamma\times\{L,R\},\Sigma\subset\Gamma$
- 每一個非肯定的圖靈機都有一個等價的肯定圖靈機
- Church-Turing假設:算法的直覺概念$\Leftrightarrow$圖靈機算法
- 線性界限圖靈機:LBA 紙帶長度等於輸入個數
可斷定
- 可斷定:存在一個圖靈機,對一個語言的任何輸入都能停機(接受或者拒絕),該語言是圖靈可斷定$\Leftrightarrow$圖靈可識別 and 補圖靈可識別。
- 可斷定語言:$A_{DFA}, A_{NFA}, A_{REX}, EMPTY_{DFA}, EQUAL_{DFA}, A_{CFG}, EMPTY_{CFG}, A_{LBA}$
- 停機問題:$ATM=\{<M,w>|M\,is\,a\,TM,accept\,w\} $可識別,不可斷定
- 對角線方法:假設一個可數序列,其始終與第n行、第n列上的不一致。
- 存在圖靈不可識別語言:圖靈機集合是可數的,語言集合是不可數,所以語言與圖靈機不可能一一對應。
- 不可斷定:$EMPTY_{TM}, HALT_{TM}, EQUAL_{TM}, EMPTY_{LBA} 採用歸約函數證實
可歸約
- 函數$r:\Sigma^*\rightarrow\Sigma^*$可計算,若是有圖靈機M,在每一個輸入 w 上,M 停機,此時只有 r(w)出如今紙帶上
- 函數$T:N\rightarrow N$,若是M在任意輸入x上計算最多隻須要$T(|x|)$個步驟,則稱M在$T(n)$時間內計算 r。
- 語言 A 映射可歸約到語言 B 若是存在可計算函數 f, $,\forall w,w\in A\Leftrightarrow f(w)\in B$,記爲$A\leqslant_m B$
- 此時,若是B可斷定,則A也可斷定;若是B圖靈可識別,則A也圖靈可識別。
時間
- 複雜度:函數$f,g:N\rightarrow N,f(n)=O(g(n)),if\,f(n)\leqslant C*g(n);f(n)=o(g(n)),if\,f(n)<C*g(n);$。
- 時間複雜類:$DTIME(t(n))=\{L|L $是肯定型圖靈機$O(t(n))$時間斷定的語言$\},NTIME(t(n))=\{L|L $是非肯定型圖靈機$O(t(n))$時間斷定的語言$\},where\,t:N\rightarrow N$
- P類:$\bigcup_kTIME(n^k)$
- NP類:$\bigcup_kNTIME(n^k)$,或者可用肯定型圖靈機在多項式時間內驗證。
- EXP類:$\bigcup_kTIME(2^{n^k})$
- 歸約:語言 A 可多項式時間歸約到B,記爲$A\leqslant_p B$,若是存在多項式時間可計算函數$f:\Sigma^*\rightarrow \Sigma^*,\forall w,w\in A\Leftrightarrow f(w)\in B$。
- NP徹底類:$B\in NP \wedge \forall A\in NP, A\leqslant_p B$。SAT是NP徹底的。
空間
- 空間複雜度:函數$T:N\rightarrow N$,若是 M 在任意輸入x上計算最多隻須要$T(|x|)$個方格,則稱M在空間$T(n)$內計算。
- $SPACE(f(n))$:可用肯定型圖靈機在f(n)空間內斷定。$PSPACE=\bigcup_kSPACE(n^k)$
- $NSPACE(f(n))$:可用肯定型圖靈機在f(n)空間內驗證。$NSPACE=\bigcup_kNSPACE(n^k)$
- 薩維奇定理:任何函數$f:N\rightarrow N,f(n)\leqslant n, NSPACE(f(n))\subseteq SPACE(f^2(n))$
- $P\subseteq NP\subseteq PSPACE=NPSPACE\subseteq EXPTIME$
- PSPACE徹底類:$B\in PSPACE \wedge \forall A\in PSPACE, A\leqslant_p B$。
- TQBF 問題:TQBF={$<\phi>|\phi$是真的全量詞化布爾表達式} PSPACE 徹底。
- $L=SPACE(\log n),NL=NSPACE(\log n),coNL=NL\subseteq P$
- NL徹底性:$B\in NL \wedge \forall A\in NL, A\leqslant_LB$
難解性
近似算法 機率算法 交互式證實系統 並行計算 密碼學app
參考文獻
- Michael Sipser,Introduction to the Theory of Computation,Course Technology, 2005
- Sanjeev Arora, Boaz Barak, Computational Complexity, an modern approach, Cambridge University Press, 2015.11