计算理论基础

内容

  • 形式语言与自动机:正则语言、上下文无关语言、图灵机
  • 可计算性:可判定、可归约
  • 计算复杂性:时间、空间、难解性

正则语言

确定有穷自动机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$

难解性

近似算法 概率算法 交互式证明系统 并行计算 密码学

参考文献

  • 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
posted @ 2017-12-28 10:47  yunfeng_net  阅读(1658)  评论(0编辑  收藏  举报