计算复杂性理论总结报告.docx
《计算复杂性理论总结报告.docx》由会员分享,可在线阅读,更多相关《计算复杂性理论总结报告.docx(11页珍藏版)》请在冰豆网上搜索。
计算复杂性理论总结报告
计算复杂性理论总结报告
一、图灵机
(1)图灵机基本模型
图灵机是由图灵(AlanMathisomTuring)在1936年提出的,它是一个通用的计算模型。
通过图灵机,来研究递归可枚举集和部分递归函数,对算法和可计算性进行研究提供了形式化描述工具。
图灵机的基本模型包括一个有穷控制器,一条含有无数个带方格的输入带和一个读写头。
其直观物理模型如下图1所示。
基本图灵动作有以下三种:
(1)改写被扫描带方格内容,控制器转化为下一状态。
(2)读写头向左移一个带方格,控制器转化为下一状态。
(3)读写头向左移一个带方格,控制器转化为下一状态。
图1图灵机
(2)图灵机形式化定义,图灵机演算过程及语言描述
定义:
一个基本图灵机定义为一个七元组TM={Q,C,δ,A,B,q1,F}。
其中Q是状态集合,(图灵机所有的状态)非空有限集;
C是带符号表,(放在带方格中的符号集合)非空集;
δ是控制函数或过程转换函数(定义控制器)δ:
QxCQxC∪(R,L);
A是输入字母表,A⊆C;
B是空白符,B∈C;
q1是初始状态,q1∈Q;
F是终态集,F⊆Q.
TM的扫描符号串主要由δ来确定:
(1)δ(q,s)=(q’,s’);
(2)δ(q,s)=(q’,R);
(3)δ(q,s)=(q’,L);
(4)δ(q,s)无效,对应无定义时图灵机终止。
TM的工作用“格局”的转换来描述。
格局:
σ:
a1a2a3…aj-1qajaj+1…其中q∈Q,ai∈C;
(1)若δ(q,ai)无定义,称σ为停机格局;
(2)若q∈F,称σ为接受格局;
(3)若q为初始状态,称σ为初始格局;
格局σ到格局τ的转换
σ├mτ若成立σ=σ1├m1σ2├m2σ…3├Mσk记为σ1├*σk(k>=0)
(3)图灵机其他形式
(1)五元机
δ:
QxCQxCx{R,L}
基本动作:
qsq’s’即δ(q,s)=(q’,s’);
qsq’L即δ(q,s)=(q’,L);
qsq’R即δ(q,s)=(q’,R)。
基本图灵机又称四元机,五元机是指把基本四元机的动作合并:
qsq’Ls’即δ(q,s)=(q’,s’,L);
qsq’Rs’即δ(q,s)=(q’,s’,R)。
定义基本动作不同
(2)单向无穷图灵机
由单带单向所限制,必须
δ(q0,#)=(q1,R);
δ(q0,#)=(q1,L)无意义,不存在。
(3)多带图灵机
δ:
QxCQxC1xC2xC3…Cnx{R,L}
有多个读写头,一个控制器
图2多带图灵机
(4)离线图灵机
离线图灵机是多带的,同时将带方格分为输入带和工作带,其中输入带始终不变,工作带是中间过程带。
(4)各种图灵机之间关系
定理:
四元图灵机与五元图灵机是等价的。
定理:
单向图灵机与四元机是等价的。
定理:
多带图灵机与单带图灵机是等价的。
定理:
离线图灵机与单带图灵机是等价。
总结:
图灵机都是等价的。
二、不可判定问题及相关结论,会图灵机停机问题,文法不可判定问题
判定问题主要讨论带参数的判定问题,比如X∈N,问X是素数吗?
设判定问题π,使π为真的实例的集合为Yπ,实例的全体集合为Dπ,这样一个判定问题就可以这样描述π=(Dπ,Yπ)。
例如:
π=(N,P),如何处理?
通过二元组编码和谓词对应来讨论。
通过编码建立判定问题与谓词的对应关系
设编码为e,Dπ—>A*(谓词)。
对于I∈Dπ,Dπ(I)<=>I∈Yπ,其中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:
Dπ1—>Dπ2满足:
(1)f是可计算的;
(2)对于每个实例I∈Dπ1总有I∈Yπ<=>f(I)∈Yπ2
则称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
A—>α其中A∈V,α∈(V∪T)*
(4)若文法满足A—>aB或A—>w,其中A,B∈V,w∈A*,则称此种文法为右线型文法;
若A—>Ba,A—>A—>w,其中A,B∈V,w∈A*,则称此种文法为左线型文法,或称为正则文法。
举例:
GS—>aA,A—>aA,A—>bB,A—>b,B—>bB,B—>b.
V={S,A,B},T={a,b}
此文法所识别的语言为L(G)={anbm/n,m≥1}.
(2)DFA,NFA正则式及相关结论
确定自动机DFAM=(Q,A,δ,q1,F)其中Q是状态集;A是输入字母表;q1是初态,q1∈Q;F是终态集,F⊆Q;δ是控制函数或者转换函数,δ:
QxA—>Q,δ是确定的。
DFA举例:
Q={q1,q2,q3,q4};A={a,b}F={q3}
则根据状态转化图得知L(G)={bna/n≥1}.
不确定自动机NFAM=(Q,A,δ*,q1,F),其中Q是状态集;A是输入字母表;q1是初态,q1∈Q;F是终态集,F⊆Q;δ是控制函数或者转换函数,δ*:
QxA*2Q
根据状态转化图得知L(G)={an/n≥2}∪{bna/n≥1}
DFA与NFA仅仅是控制函数的不同。
结论:
不确定自动机和确定自动机是等价的。
定理:
语言L能被DFA接受当且仅当语言L能被NFA接受。
定理:
语言L是正则语言当且仅当存在DFAM使L=L(M)。
(3)泵引理内容及主要作用
正则语言的泵引理:
设L是正则语言,则存在与L相关的常数n满足:
对于任何L中的串w,如果|w|≥n,则我们就能够把w打断为三个串w=xyz使得:
(1)y≠ε。
(2)|xy|≤n。
(3)对于所有的k≥0,串xykz∈L。
换句话说,我们总能够在离w的开始处的地方找到一个非空的串y,然后可以把它作为“泵”,也就是说,重复y任意多次,或者去掉它(k=0的情况),而所得到的结果串仍然输入L。
泵引理作用:
Pumping引理揭示了正规语言普遍具有的这样一个封闭性质:
如果L是一个正规语言,那么存在一个正整数k,L中那些长度k的句子中,都含有这样的一段子串,把这个子串重复任意多次后形成的句子仍然是L中的语句。
应用泵引理可以辨别出非正规语言。
四、上下文无关文法
(1)chomsky范式的文法及相关理论
chomsky范式文法:
设上下文无关文法G=(V,T,P,S)的每一个产生式都有如下形式:
x—>yz,x—>a其中x,y,z∈V,a∈T,则上下文无关文法G为chomsky范式文法。
定理:
G为上下文无关文法,则存在正的上下文无关文法G’使L(G)=L(G’)
(2)Bar-Hillel泵引理及主要作用
Bar-Hillel泵引理:
设chomsky范式文法有n个变元,L=L(G),对于x∈L,若|X|≥2n则x可以表示成x=u1v1uv2u2,使得
(1)|v1uv2|≥2n;
(2)|v1v2|≠ε;
(3)对于所有的k≥0,u1v1kuv2ku2∈L
推论:
设L是上下文无关语言,则存在正整数m,使得长度大于m的x可用于验证某些语言不是上下文无关语言。
作用:
通过泵引理以反证法证明L不是上下文无关语言。
五、时间复杂性及空间复杂性理论
(1)用图灵机定义的时间复杂性与空间复杂性相关概念及有关结论
时间复杂度
定义:
设DTMM,对于所有的w∈A*,M总停机,把M对w的计算步骤数记为tm(w)称M关于w的计算时间,称tm(n)=max{tm(w)/w∈A*且|w|≤n,n<N}称为图灵机M的时间复杂度。
设t:
n—>N,r如果tm(n)=Ο(t(n)),称t(n)是图灵机M的时间复杂度上界。
定理:
设M是一个t(n)时间上界的多带图灵机,则存在t2(n)时间上界的单带图灵机M’使L(M)=L(M’)。
这里的M可以是DTM,也可以是NTM,但是它是多带的,M的时间上界是t(n)。
M’是单带,可以是DTM,也可以是NTM,M’的时间上界是t2(n)。
空间复杂度
每一条工作带上使用的带方格的最大值为Sm(w),称Sm(n)=max{Sm(w)/w∈A*且|w|≤n}为图灵机的空间复杂度。
同样的,设t:
n—>N,r如果Sm(n)=Ο(S(n)),称S(n)是图灵机M的空间复杂度上界。
定理:
设M是一个又k条工作带的Sm(n)空间界限的离线TDM(NTM),其中k>1,则存在只有一条工作带的离线图灵机TDM(NDM)M’,使L(M)=L(M’)且M与M’有相同的空间复杂度。
(2)计算复杂性类的相关定义及相关结论
定义1:
如果存在t(n)时间界限的DTM接受语言L,则称L是Ο(t(n))的时间可识别的;如果存在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);
非确定型多项式时间可识别的语言类:
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:
N—>N,如果存在一台发f(n)空间界限的DTMM使对每一个输入,M的输出是f(n)的二进制表示,则f是空间可构造的。
引理:
设S是空间可构造的,S(n)≥log(n),则存在DTMM对任意长为n的输入,使用Ο(S(n))空间,在Ο(S(n))步内在工作带上标明S(n)个带方格。
定理:
设S是空间可构造的,且S(n)≥log(n),对L∈NSPACE(S(n)),则存在常数c>0,使得L∈DTIMEαΟ(nk)
定理:
设S是空间可构造的且S(n)≥log(n),M是一台S(n)空间界限的NTMM。
则存在S2(n)空间界限的DTMM’,使L(M)=L(M’)。
(3)计算复杂性类的包含的相关结论
L⊆NL⊆P⊆PSPACE⊆EXPTIM⊆NEXPTIM⊆ExPSPACE
P⊂NL⊂PSPACE⊂EXPTIME
定理:
设S2(n)是一个空间可构造函数,S1(n)≥logn,S2(n)≥logn,且limS1(n)/S2(n)=0,则存在一个语言,它在DSPACE(S2(n))中,但是不在DSPACE(S1(n)),DSPACE(S1(n))⊂PSPACE(S2(n))。
六、NP完全性理论
(1)多项式的时间变换和NP完全性的相关定义及结论
多项式时间变换
定义:
设字母表A,L1,L2∈A*,对f:
A*A*,若满足:
(1)f是多项式可计算的,即存在DTMM和多项式P,使对任意x∈A*,M在P1|x|步内停机,输出f(x);
(2)任意x∈A*,x∈L1<=>f(x)∈L2,
则称f是L1到L2的多项式时间变换,或者多项式时间映射规约。
如果存L1到L2的多项式时间变换,则称L1多项式时间变换到L2,记作L1≤mL2。
定义:
设判定问题π1=(D1,y1),π2=(D2,y2),若f:
D1D2满足:
(1)f是多项式可计算的
(2)任意z∈D1<=>f(z)∈D2
则称f是π1到π2的多项式时间变换,记π1≤mπ2。
定理:
设L1≤mL2,L2≤mL3,则L1≤mL3
定理:
设L1≤mL2,则有,若L2∈P,则L1∈P;若L2∈NP,则L1∈NP
NP完全性
定义:
如果任意L’∈NP,都有L’≤mL,则称L是NP难的;若L是NP难的且L∈NP,则称L是NP完全的。
定理:
若存在NP难的语言L∈P,则P=NP
推论:
假设P≠NP,如果L是NP难的,则L∉P
定理:
若存在NP难的语言L’使L’≤mL,则L也是NP难的。
推论:
若L∈NP,并且存在NP完全的语言L’使L’≤mL,则L也是NP完全的。
(2)Cook定理的分类,证明及定义
定理:
BHP是NP完全问题
证明:
用NTMMa模拟Mx以y为输入在时间t内的计算那么Ma需要的时间p(t),其中p是个多项式,因此BHP属于NP
假设A∈NP,那么存在NTMM和多项式P使得M在时间P(|y|)之内接受当且仅当y∈A,定义g(y)=,那么y∈A当且仅当g(y)∈BHP即A≤mpBHP。
因此BHP是NP完全问题,证毕。
定理:
(cook定理)SAT是NP—完全问题
证明:
因为非确定型算法只需要猜想一个对变量的真值赋值,并且在多项式时间内检查这个真值赋值是否满足所有给定的三文字子句,所以容易看到3SAT∈NP。
我们把SAT变换到3SAT。
设U={u1,u2,...,un}是一个变量集合,C={c1,c2,...,cm}是一个子句类,它们组成SAT的一个任意的实例。
我们要构造一个变量集合U'上的三文字子句类C',若使C'是可满足的当且仅当C是可满足的。
为了构造C',只需要把每一子句ci∈C分别替换成原有变量U和某些附加的变量U'j上的“等价的”三文字子句集合C'j,其中U'j只在C'j的子句中使用。
把它们并在一起,令
于是只需要说明如何从Cj构造C'j和U'j。
设Cj={z1,z2,...,zk},这里zi(1≤i≤k)都是从U中的变量导出的文字。
构造C'j和U'j的方法与k值有关。
情况1:
k=1,
情况2:
k=2
情况3:
k=3,U'j=Ф,C'j={Cj}
情况4:
k>3,
为了证明这的确是一个变换,我们必须证明,子句类C'是可满足的当且仅当C是可满足的。
首先假设t:
U→{T,F}是一个满足C的真值赋值。
我们证明t可以扩张成一个满足C'的真值赋值t':
U'→{T,F}。
因为U'-U中的变量分成集合U'j,并且每一个U'j中的变量只出现在属于C'j的子句中,所以我们只需要对每一种情况分别说明如何把t扩张到U'j上去,并且验证t'满足对应的C'j中的所有子句。
我们的做法如下:
如果U'j是在情况1或情况2下构成的,那么t已经满足C'j中所有子句,所以可以把t任意地扩张到U'j上,譬如说,对所有的Y∈U'j,令t'(y)=T。
如果U'j是在情况3下构成的,那么U'j是空集,并且t已经满足C'j中唯一的子句。
只剩下情况4,它对应C中的一个子句{z1,z2,...,zk},k>3。
因为t是满足C的真值赋值,所以一定有一个最小的整数p使得文字zp在t下取真值。
如果p等于1或2,
那么令t’(yij)=F,1≤i≤k-3;如果p等于k-1或k,那么令t’(yij)=F,1≤i≤k-3;否则当1≤i≤p-2时,令t‘(yij)=T;当p-1≤i≤k-3时,令t’(yij)=F。
容易验证这样选取总能保证满足c’j中的所有子句。
所以t’满足C’中的所有子句。
反之,如果t’是C’的一个满足的真值赋值,容易验证t’限制在U中的变量上一定是一个满足C的真值赋值。
于是C‘是可满足的当且仅当C是可满足的。
为了看出能够在多项式时间内完成这个变换,只要发现C'中三文字子句的个数不超过mn的一个多项式就足够了。
因此,2SAT实例的规模不超过SAT实例的规模的一个多项式函数。
又因为构造本身的全部细节是很简单的,要验证这是一个多项式变换。
证毕。
(3)举几个(不少于两个)NP完全性问题的例子
1.三元可满足性(3sat)
实例:
有穷的变量集合U上的子句类C={c1,c2,...,cm},其中|ci|=3,1≤i≤m。
问:
对于U是否存在满足C中所有子句的真值赋值?
2.三维匹配(3DM)
实例:
集合MW×X×Y,这里W,X和Y是三个不相交的集合,且有相同的元素数q。
问:
M是否包含一个匹配,即是否有子集M’M使得|M|’=q且M'中任何两个元素的任何坐标都不相同?
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的团,即是否有子集V’V,使得|V’|≥J并且V’中每两个节点都由E中的一条边连接着。
5.哈密顿回路(HC)
实例:
图G=(V,E)。
问:
G是否包含一条哈密顿回路,即是否有G的节点排列次序使得(vn,v1)∈E和(vI,vi+1)∈E,1≤i<n?
这里n=|V|。
6.划分问题
实例:
有穷集合A以及每一个a∈A的“大小”S(a)∈Z+。
问:
是否有子集A'A使得