1、计算复杂性理论总结报告计算复杂性理论总结报告一、 图灵机(1) 图灵机基本模型图灵机是由图灵(Alan Mathisom Turing)在1936年提出的,它是一个通用的计算模型。通过图灵机,来研究递归可枚举集和部分递归函数,对算法和可计算性进行研究提供了形式化描述工具。图灵机的基本模型包括一个有穷控制器,一条含有无数个带方格的输入带和一个读写头。其直观物理模型如下图1所示。基本图灵动作有以下三种:(1) 改写被扫描带方格内容,控制器转化为下一状态。(2) 读写头向左移一个带方格,控制器转化为下一状态。(3) 读写头向左移一个带方格,控制器转化为下一状态。图1图灵机(2) 图灵机形式化定义,图
2、灵机演算过程及语言描述定义:一个基本图灵机定义为一个七元组 TM=Q,C,A,B,q1,F。其中Q是状态集合,(图灵机所有的状态)非空有限集;C是带符号表,(放在带方格中的符号集合)非空集;是控制函数或过程转换函数(定义控制器):QxCQxC(R,L); A是输入字母表,AC; B是空白符,BC; q1是初始状态,q1Q; F是终态集,F Q.TM的扫描符号串主要由来确定:(1) (q,s)=(q,s);(2) (q,s)=(q,R);(3) (q,s)=(q,L);(4) (q,s)无效,对应无定义时图灵机终止。TM的工作用“格局”的转换来描述。格局:a1a2a3aj-1qajaj+1其中q
3、Q,aiC;(1) 若(q,ai)无定义,称为停机格局;(2) 若qF,称为接受格局;(3) 若q为初始状态,称为初始格局;格局到格局的转换m若成立=1m12m23Mk 记为1*k (k=0)(3) 图灵机其他形式(1) 五元机:QxCQxCxR,L基本动作:qsqs即(q,s)=(q,s); qsqL即(q,s)=(q,L); qsqR即(q,s)=(q,R)。基本图灵机又称四元机,五元机是指把基本四元机的动作合并:qsqLs 即(q,s)=(q,s,L);qsqRs 即(q,s)=(q,s,R)。定义基本动作不同(2) 单向无穷图灵机 由单带单向所限制,必须(q0,#)=(q1,R);(q
4、0,#)=(q1,L)无意义,不存在 。(3) 多带图灵机:QxCQxC1xC2xC3CnxR,L有多个读写头,一个控制器图2多带图灵机(4) 离线图灵机 离线图灵机是多带的,同时将带方格分为输入带和工作带,其中输入带始终不变,工作带是中间过程带。(4) 各种图灵机之间关系 定理:四元图灵机与五元图灵机是等价的。 定理:单向图灵机与四元机是等价的。 定理:多带图灵机与单带图灵机是等价的。 定理:离线图灵机与单带图灵机是等价。总结:图灵机都是等价的。二、 不可判定问题及相关结论,会图灵机停机问题,文法不可判定问题 判定问题 主要讨论带参数的判定问题,比如XN,问X是素数吗?设判定问题,使为真的实
5、例的集合为Y,实例的全体集合为D,这样一个判定问题就可以这样描述=(D,Y)。例如:=(N,P),如何处理?通过二元组编码和谓词对应来讨论。通过编码建立判定问题与谓词的对应关系设编码为e,DA*(谓词)。对于ID,D(I)IY,其中e(I)=x对于同一个判定问题,其编码e1与e2得谓词P1与P2,根据chuuring-Turing命题,若e1与e2是可计算的,则有可计算函数 f1: A *A*; f2: A *A*使得P1(x)P2(X) P2(X) P1(x)。定义:如果谓词是可计算的,则称判定问题是可判定的,否则是不可判定的。定义:设1与2两个判定问题,若有函数f:D1 D2满足:(1)
6、f是可计算的;(2) 对于每个实例ID1总有IYf(I)Y2 则称f为判定问题1到2的规约。定理:设判定问题1可规约为判定问题2,则(1) 2是可判定的,蕴含1是可判定的;(2) 2是不可判定的,蕴含1是不可判定的。三、 正则语言(1) chomsky文法分类 文法的chomsky语言定义如下:文法为四元组G=(V,T,P,)其中,V为非终结符集合,T为终结符集合,P为规则集,为开始符号 (1) 0型文法 对于规则不做任何限制,又称关于结构文法,还称无限制文法(2) 1型文法又称上下文有关文法,记为CSG。要求规则满足:|,所形成的语言叫1型语言。(3) 2型文法又称上下文无关文法,记为CFG
7、A其中AV,(VT)*(4) 若文法满足AaB或Aw,其中A,BV,wA*,则称此种文法为右线型文法; 若ABa,A Aw,其中A,BV,wA*,则称此种文法为左线型文法,或称为正则文法。举例:G SaA,AaA,AbB,Ab, BbB,B b. V=S,A,B,T=a,b 此文法所识别的语言为L(G)=anbm/n,m1.(2) DFA,NFA正则式及相关结论确定自动机DFA M=(Q,A, ,q1,F)其中 Q是状态集;A是输入字母表;q1是初态,q1Q;F是终态集, F Q; 是控制函数或者转换函数,:QxAQ , 是确定的。DFA举例:Q=q1,q2,q3,q4;A=a,b F=q3则
8、根据状态转化图得知 L(G)=bna / n1.不确定自动机NFA M=(Q,A, *,q1,F),其中 Q是状态集;A是输入字母表;q1是初态,q1Q;F是终态集, F Q;是控制函数或者转换函数,*:QxA*2Q根据状态转化图得知 L(G)=an / n2bna / n1DFA与NFA仅仅是控制函数的不同。结论:不确定自动机和确定自动机是等价的。定理:语言L能被DFA接受当且仅当语言L能被NFA接受。定理:语言L是正则语言当且仅当存在DFA M使L=L(M)。(3) 泵引理内容及主要作用正则语言的泵引理:设L是正则语言,则存在与L相关的常数n满足:对于任何L中的串w,如果|w|n,则我们就
9、能够把w打断为三个串w=xyz使得:(1)y 。(2)|xy| n。(3)对于所有的k 0,串xykzL。换句话说,我们总能够在离w的开始处的地方找到一个非空的串y,然后可以把它作为“泵”,也就是说,重复y任意多次,或者去掉它(k=0的情况),而所得到的结果串仍然输入L。泵引理作用:Pumping引理揭示了正规语言普遍具有的这样一个封闭性质:如果L是一个正规语言,那么存在一个正整数k, L中那些长度 k的句子中,都含有这样的一段子串,把这个子串重复任意多次后形成的句子仍然是L中的语句。应用泵引理可以辨别出非正规语言。四、 上下文无关文法(1) chomsky范式的文法及相关理论chomsky范
10、式文法:设上下文无关文法G=(V ,T,P,S)的每一个产生式都有如下形式:xyz,xa 其中x,y,zV,aT,则上下文无关文法G为chomsky范式文法。定理:G为上下文无关文法,则存在正的上下文无关文法G使L(G)=L(G)(2) Bar-Hillel泵引理及主要作用Bar-Hillel泵引理:设chomsky范式文法有n个变元,L=L(G),对于xL,若|X|2n则x可以表示成x=u1v1uv2u2,使得(1)|v1uv2|2n;(2)|v1v2|;(3)对于所有的k0,u1v1kuv2k u2L推论:设L是上下文无关语言,则存在正整数m,使得长度大于m的x可用于验证某些语言不是上下文
11、无关语言。作用:通过泵引理以反证法证明L不是上下文无关语言。五、 时间复杂性及空间复杂性理论(1) 用图灵机定义的时间复杂性与空间复杂性相关概念及有关结论时间复杂度定义:设DTM M ,对于所有的wA*,M总停机,把M对w的计算步骤数记为tm(w)称M关于w的计算时间,称tm(n)=maxtm(w)/wA*且|w|n,nN称为图灵机M的时间复杂度。设t:nN,r如果tm(n)= (t(n),称t(n)是图灵机M的时间复杂度上界。定理:设M是一个t(n)时间上界的多带图灵机,则存在t2(n)时间上界的单带图灵机M使L(M)=L(M)。这里的M可以是DTM,也可以是NTM,但是它是多带的,M的时间
12、上界是t(n)。M是单带,可以是DTM,也可以是NTM,M的时间上界是t2(n)。空间复杂度每一条工作带上使用的带方格的最大值为Sm(w),称Sm(n)=max Sm(w)/wA*且|w|n 为图灵机的空间复杂度。同样的,设t:nN,r如果Sm(n)= (S(n),称S(n)是图灵机M的空间复杂度上界。定理:设M是一个又k条工作带的Sm(n)空间界限的离线TDM(NTM),其中k1,则存在只有一条工作带的离线图灵机TDM(NDM)M, 使L(M)=L(M)且M与M有相同的空间复杂度。(2) 计算复杂性类的相关定义及相关结论定义1:如果存在t(n)时间界限的DTM接受语言L,则称L是(t(n)的
13、时间可识别的;如果存在t(n)时间界限的NTM接受语言L,则称L是非确定型(t(n)的时间可识别的。如果存在S(n)空间界限的DTM接受语言L,则称L是(S(n)的空间可识别的。如果存在S(n)空间界限的NTM接受语言L,则称L是非确定型(S(n)的空间可识别的。DTIME(t(n)=L /L是(t(n)的时间可识别的;NTIME(t(n)=L /L是(t(n)非确定型时间可识别的;DSPACE(S(n)=L/L是(S(n)的空间可识别的;NSPACE(S(n)=L/L是(S(n) 非确定型空间可识别的;定义2:多项式时间可识别的语言类:P=DTIME(nk);非确定型多项式时间可识别的语言类
14、:NP=NTIME(nk);指数时间可识别的语言类:EXPTIME=DTIME(nk)非确定型指数时间可识别的语言类:NEXPTIME=NTIME(nk)对数空间可识别的语言类:L=DSPACE(logn);非确定型对数空间可识别的语言类:NL=NSPACE(logn);多项式空间可识别的语言类:PSPACE=DSPACE(nk);非确定型多项式空间可识别的语言类:NSPACE=NSPACE(nk);指数空间可识别的语言类:EXPSPACE=DSPACE(nk)非确定型指数空间可识别的语言类:NEXPSPACE=NSPACE(nk)定义3:设f:NN,如果存在一台发f(n)空间界限的DTM M
15、 使对每一个输入,M的输出是f(n)的二进制表示,则f是空间可构造的。引理:设S是空间可构造的,S(n)log(n),则存在DTM M对任意长为n的输入,使用(S(n)空间,在(S(n)步内在工作带上标明S(n)个带方格。定理:设S是空间可构造的,且S(n)log(n),对LNSPACE(S(n),则存在常数c0,使得LDTIME(nk)定理:设S是空间可构造的且S(n)log(n),M是一台S(n)空间界限的NTM M。则存在S2(n)空间界限的DTM M, 使L(M)=L(M)。(3) 计算复杂性类的包含的相关结论LNLPPSPACEEXPTIMNEXPTIMExPSPACEP NL PS
16、PACE EXPTIME定理:设S2(n)是一个空间可构造函数,S1(n)logn,S2(n)logn,且lim S1(n)/ S2(n)=0,则存在一个语言,它在DSPACE(S2(n)中,但是不在DSPACE(S1(n),DSPACE(S1(n)PSPACE(S2(n)。六、 NP完全性理论(1) 多项式的时间变换和NP完全性的相关定义及结论多项式时间变换定义:设字母表A,L1,L2A*,对f:A*A*,若满足:(1) f是多项式可计算的,即存在DTM M和多项式P,使对任意xA*,M在P1|x|步内停机,输出f(x);(2) 任意xA*,xL1f(x)L2, 则称f是L1到L2的多项式时
17、间变换,或者多项式时间映射规约。如果存L1到L2的多项式时间变换,则称L1多项式时间变换到L2,记作L1mL2。定义:设判定问题1=(D1,y1), 2=(D2,y2),若f:D1D2满足:(1) f是多项式可计算的(2) 任意zD1f(z)D2则称f是1到2的多项式时间变换,记1m2。定理:设L1mL2,L2mL3,则L1mL3定理:设L1mL2,则有,若L2P,则L1P;若L2NP,则L1NPNP完全性定义:如果任意LNP,都有LmL,则称L是NP难的;若L是NP难的且LNP,则称L是NP完全的。定理:若存在NP难的语言LP,则P=NP推论:假设PNP,如果L是NP难的,则LP定理:若存在
18、NP难的语言L 使LmL,则L也是NP难的。推论:若LNP,并且存在NP完全的语言L 使LmL,则L也是NP完全的。(2) Cook定理的分类,证明及定义定理:BHP是NP完全问题证明:用NTM Ma 模拟Mx以y为输入在时间t内的计算那么Ma需要的时间p(t),其中p是个多项式,因此BHP属于NP假设ANP,那么存在NTM M和多项式P使得M在时间P(|y|)之内接受当且仅当yA,定义g(y)=,那么yA当且仅当g(y)BHP即AmpBHP。因此BHP是NP完全问题,证毕。定理:(cook定理)SAT是NP完全问题证明:因为非确定型算法只需要猜想一个对变量的真值赋值,并且在多项式时间内检查这
19、个真值赋值是否满足所有给定的三文字子句,所以容易看到3SATNP。我们把SAT变换到3SAT。设U=u1,u2,.,un是一个变量集合,C=c1,c2,.,cm是一个子句类,它们组成SAT的一个任意的实例。我们要构造一个变量集合U上的三文字子句类C,若使C是可满足的当且仅当C是可满足的。为了构造C,只需要把每一子句ciC分别替换成原有变量U和某些附加的变量Uj上的“等价的”三文字子句集合Cj,其中Uj只在Cj的子句中使用。把它们并在一起,令于是只需要说明如何从Cj构造Cj和Uj。设Cj=z1,z2,.,zk,这里zi(1ik)都是从U中的变量导出的文字。构造Cj和Uj的方法与k值有关。情况:k
20、=1, 情况2:k=2情况3:k=3,Uj=,Cj=Cj 情况4:k3, 为了证明这的确是一个变换,我们必须证明,子句类C是可满足的当且仅当C是可满足的。首先假设t:UT,F是一个满足C的真值赋值。我们证明t可以扩张成一个满足C的真值赋值t:UT,F。因为U-U中的变量分成集合Uj,并且每一个Uj中的变量只出现在属于Cj的子句中,所以我们只需要对每一种情况分别说明如何把t扩张到Uj上去,并且验证t满足对应的Cj中的所有子句。我们的做法如下:如果Uj是在情况1或情况2下构成的,那么t已经满足Cj中所有子句,所以可以把t任意地扩张到Uj上,譬如说,对所有的YUj,令t(y)=T。如果Uj是在情况3
21、下构成的,那么Uj是空集,并且t已经满足Cj中唯一的子句。只剩下情况4,它对应C中的一个子句z1,z2,.,zk,k3。因为t是满足C的真值赋值,所以一定有一个最小的整数p使得文字zp在t下取真值。如果p等于1或2,那么令t(yij)=F,1ik-3;如果p等于k-1或k,那么令t(yij)=F,1ik-3;否则当1ip-2时,令t(yij)=T;当p-1ik-3时,令t(yij)=F。容易验证这样选取总能保证满足cj中的所有子句。所以t满足C中的所有子句。反之,如果t是C的一个满足的真值赋值,容易验证t限制在U中的变量上一定是一个满足C的真值赋值。于是C是可满足的当且仅当C是可满足的。 为了
22、看出能够在多项式时间内完成这个变换,只要发现C中三文字子句的个数不超过mn的一个多项式就足够了。因此,2SAT实例的规模不超过SAT实例的规模的一个多项式函数。又因为构造本身的全部细节是很简单的,要验证这是一个多项式变换。证毕。(3) 举几个(不少于两个)NP完全性问题的例子1. 三元可满足性(3sat) 实例:有穷的变量集合U上的子句类C=c1,c2,.,cm,其中|ci|=3,1im。问:对于U是否存在满足C中所有子句的真值赋值?2. 三维匹配(3DM) 实例:集合MWXY,这里W,X和Y是三个不相交的集合,且有相同的元素数q。问:M是否包含一个匹配,即是否有子集MM使得|M|q且M中任何
23、两个元素的任何坐标都不相同?3. 节点覆盖(VC) 实例:图G=(V,E)和正整数k|v|。问:G是否有大小不超过k的节点覆盖,即是否有子集V V使得|V|k并且对每一条边(u,v)E,u和v中至少有一个属于V?4. 团 实例:图G=(V,E)和正整数J|V|。问:G是否包含大小不小于J的团,即是否有子集VV,使得|V|J并且V中每两个节点都由E中的一条边连接着。5. 哈密顿回路(HC) 实例:图G=(V,E)。问:G是否包含一条哈密顿回路,即是否有G的节点排列次序使得(vn,v1)E和(vI,vi+1)E, 1in?这里n=|V|。6. 划分问题实例:有穷集合A以及每一个aA的“大小”S(a)Z+。 问:是否有子集AA使得
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1