- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算复杂性的定义
一般来说,输入的规模越大,计算过程就越长。
计算过程越长,导致计算花费的资源就越多, 资源包括时间,内存,特殊数据库的访问次数等等。
计算复杂性研究输入长度n与耗费的资源f(n)之间的关系。
复杂性函数f(n)
f,g是N到R+的函数f(n)=O(g(n))((c,n0(c(R(n0(N((n(n(N(nn0(f(n)(cg(n)))或者记为fg
nnlognn(logn)kn2…n3…2n…2exp(n)
问题的分类:
判定问题 计算问题 确定性图灵机 非确定图灵机 确定性复杂性
图灵机计算复杂性
给定图灵机TM,和输入x,计算时间DTIME(TM(x))定义为?
给定离线图灵机TM,和输入x,计算空间DSPACE(TM(x))定义为?
判定问题在给定图灵机下的复杂性
什么是判定问题?
给定语言L (A*, 任给x (A*,问是否有x(L
L为一语言,M为判定L的图灵机当且仅当?
L为一语言,M为判定L的图灵机,则M判定L的时间复杂性定义为:
L为一语言,M为判定L的图灵机,则M判定L的空间复杂性定义为:
判定问题自身的复杂性
L为一语言,L的计算复杂性定义为:
计算问题在给定图灵机下的复杂性
什么是计算问题?
M计算函数f当且仅当?
M计算函数f的复杂性定义为:
计算问题自身的计算复杂性例子
L={0m1m:m0} 单带 DTIME(nlogn),多带(DTIME(n)) ,离线(DSPACE(logn))单带 DTIME(nlogn)
f(x,y)=x+y;
非确定复杂性
非确定图灵机计算复杂性
给定非确定图灵机NTM,和输入x,计算时间NTIME(NTM(x))定义为?
给定非确定图灵机NTM,和输入x,计算空间NSPACE(NTM(x))定义为?
判定问题在给定非确定图灵机下的复杂性
什么是判定问题?
给定语言L (A*, 任给x (A*,问是否有x(L
L为一语言,N为判定L的非确定图灵机当且仅当?
L为一语言,N为判定L的非确定图灵机,则M判定L的时间复杂性定义为:
L为一语言,N为判定L的非确定离线图灵机,则M判定L的空间复杂性定义为:
判定问题自身的非确定时间复杂性
L为一语言,L的非确定计算复杂性定义为:复杂性类
常见复杂性类
DTIME(f(n))={L:L是O(f(n))时间内可判定的语言}
NTIME(f(n))={L:L是O(f(n))时间内非确定图灵机可判定的语言}
DSPACE(f(n))={L:L是O(f(n))空间内可判定的语言}
NSPACE(f(n))={L:L是O(f(n))空间内非确定图灵机可判定的语言}
DTIME(n), NTIME(n)
DTIME(n2), NTIME(n2)
DTIME(nk), NTIME(nk)
, 显然有P(NP, 问是否有 NP(P, 或者 说P=NP?
L=DSPACE(logn) NL=NSPACE(logn)
关系
DTIME(f(n))(NTIME(f(n)), DSPACE(f(n))(SPACE(f(n))
NTIME(f(n)) (DTIME(2f(n))
NSPACE(f(n)) (DTIME(2f(n))
描述复杂性
字母表C={0, 1, B ‘;’}
图灵机描述(五元组):
指令描述 q1a1a2rq2 1010 0 1 0 1001 1010 1 0 1 1000
图灵机描述1010 0 1 0 1001; 1010 1 11 1 1000;
x({0,1}*, 则x的描述复杂性定义为
C(x)=min{|M|+|y|:M(y)=x}
描述上界定理:C(x) (|x|
任何的x都可以用自己+空图灵机来描述
不可压缩定理:长度等于n的所有字符串中,存在x C(x) (n/2
长度小于等于n的字符串共有2n个,而长度小于n/2的描述共有1+4+…+4n/2-12n
回文问题L={xxR: x({0,1}*}
假设单带图灵机M在T(n)时间内判定语言L
对于M在x02nxR上的计算,定义第i个位置的穿过序列(i=(0,qi1),(1,qi2),…,(1,qki)表示计算在第k此穿过第i个位置时的状态为(1,qki).
(i可以作为x的一个描述,即:M在x02nxR的接受计算的第i个穿过序列可以复原x。所以C(x)( ki+c
否则如果x02nxR,y02nyR有相同的接受序列,则有M必然接受x02nyR;因为:将字符串看成是两部分(x0i 02n-iy) M在x0i的计算与x02nxR一致,在02n-iy的计算与y02nyR一致。
根据不可压缩定理:存在x,|x|=n, C(x)( n/2 即ki+c( n/2
所以M在x02nxR的计算时间T(n) k1+…
文档评论(0)