第8章计算复杂性理论.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章计算复杂性理论

计算复杂性理论;在某个通用计算装置(例如图灵机)上识别一个语言,需要一定数量的时间、空间和其它资源。这种分类法的根据就是识别集合时所需资源的数量。;8.1.1空间复杂度 考虑图8.1中的离线图灵机M。M有一条具有端记号的只读输入带,和k条半无穷存贮带。如果对于每个长度为n的输入字,M在任一条存贮带上都至多扫视S(n)个单元,那么称M是S(n)空间有界图灵机,或具有空间复杂度S(n)。 被M识别的语言也称作具有空间复杂度S(n)。;有限控制器;注意,在输入带上,图灵机不能重写,故计算带界限时,只统计所用的存贮带的长度。这个限制,使我们可以考虑比线性增长更小的带界限。如果TM能在输入带上重写,那么在计算空间界限时,必须把输入带长度包含进去。这样,空间界限就不能小于线性函数。;有限控制器;对时间和空间复杂度,选用两种不同的模型,目的就在于简化某些证明。在模型上的某些变化是行得通的。 例如,若S(n)?n,那么我们可以使用单带TM作为我们的模型。而不会改变该语言类在空间S(n)内接受的事实。然而,当讨论时间复杂度时,我们就不能使用单带TM,或具有任何固定多条带的TM,而不致从时间复杂度为T(n)的语言类中失去某些语言。;下面设计一台接受L的图灵机M2,M2是两带图灵机,工作如下:把c左边的输入复制到第二带上。然而,当发现c时,M2使第二带带头向左,通过它刚刚复制出的字符串,同时使输入带头继续向右。在带头移动过程中,比较两个带头下的符号,如果每对符号都相同,且c左边和右边的符号数相等,那么M2接受。容易看出,如果输入长度是n,则M2接受语言L最多做n+1个动作,其时间复杂度是O(n)。;下面设计一个离线图灵机M3,它接受L,具有空间复杂度log2n。 M3用两条存贮带来作二进制计数器。首先,检查输入,看看是否只出现一个c,以及c左边和右边的符号数i=1,2,…,n/2个符号是否相等。然后,逐个符号地比较c左边的字符和右边的字符,同时用上述计算器来找出对应的符号。如果它们不一致,M3停机,且不接受。如果所有的符号都一致,M3就接受。;8.1.3关于时间和空间复杂度函数的特殊假定;类似地,下面的假定也是适当的:任何时间复杂度函数T(n)至少是n+1,因为这恰好是读输入并根据所读到的第一个空白符来检验是否到达末端所需要的时间,因此,我们约定,“时间复杂度T(n)”的意思是max(n+1, 「T(n) ?)。例如,在n=1时,时间复杂度n+1是2,不是0,而在n=2时,它的值是3。;8.1.5复杂性类    具有确定空间复杂度S(n)的语言族记作DSPACE(S(n)),具有非确定空间复杂度S(n)的语言族记作NSPACE(S(n))。具有确定时间复杂度T(n)的语言族记作DTIME(T(n)),而具有非确定时间复杂度T(n)的语言族记作NTIME(T(n))。所有这些语言族都被称为复杂性类。 例如,例8.1.1中的语言L在DTIME(n+1)中,又在DSPACE(log2n)中,因而L也在NTIME(n+1)和NSPACE(log2n)中,因而也在NTIME(n)中。同样也在更大的语言类中,例如DTIME(n2)或NSPACE( )之中。然而,应当注意,有一些TM,它无须读完其全部输入就可以接受或拒绝,我们决定不考虑它们。 ;8.2 线性加速、带压缩和带数目的减少;8.2.1带压缩 定理8.2..1 如果L被一个具有k条存贮带的S(n)空间有界图灵机受,那么对于任意c>0,L被一个k+1条存储带的cS(n)空间有界T接M接受。;由M1的规则详细构造出M2的规则,这一任务留给读者。 设r满足rc?2。在任何带上,最多用「S(n)/r?个单元,M2就能模拟M1。如果S(n)?r,上面这个数就不大于cS(n)。如果S(n)r,那么M2可以将任何一条带的内容存在一个单元中。因此,在后一种情况下,M2只使用一个单元。 ?;8.2.2对于空间复杂性类的带数目的减少 定理8.2.2 如果语言L被一个具有k条存贮带的S(n)空间有界TM接受,那么它可以被一个具有一条存贮带的S(n)空间有界TM接受。;8.2.3线性加速 在考虑时间界限以前,我们引进下述记号。f(n)是n的函数。表示式supn??f(n)是当n??时,f(n),f(n+1),f(n+2),…的最小上界的极限。 类似地,inf n??f(n)是当n??时,f(n),f(n+1),f(n+2),…的最大下界的极限。 如果当n??时,f(n)收剑于一个极限值,那么这个极限既是inf n??f(n),又是supn??f(n)。;另一个例子,假定f(n)=n/(n+1),那么对于任意n,n/(n+1),(n+1)/(n+

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档