当前位置:首页 > 经典书库 > 逻辑百科辞典

计算复杂性

也称算法复杂性,是可计算性理论的新发展,研究一可计算函数f的内在复杂性如何,能否找到计算f的“最好”程序这一类问题。

衡量算法(计算)的复杂程度,最常用的尺度是计算时间(计算步数)。在讨论计算复杂性时常使用多带图灵机作计算模型。函数

称为e(第e号图灵机)的时间消耗函数。

利用T(e,x)可以对一元递归全函数进行分类。

设b(x)是递归全函数,函数类

={|是全函数且T(e,x)≤b(x)a.e}

称作b的复杂性类。其中“T(e,x)≤b(x)a.e”意义为至多有有穷多个x使“T(e,x)≤b(x)”不成立。

最令人感兴趣的是b为多项式的情形。以表示全体一元多项式的类,则

称为多项式有界时间可计算的一元函数类(参见P=NP问题)。

上述分类方法可以得到无穷多个类。下面的定理1表明,存在任意复杂的可计算函数,任何一个都不能包括全体递归函数。

定理1.令b是一元递归全函数,存在递归全函数f(x)使得如果φ=f

则T(e,x)>b(x)a.e。

这种分类方法并不是分层方法。著名的勃拉姆加速定理说:

定理2(加速定理)设r是任意的递归全函数(例如r(x)=2x),存在一个递归全函数f,使得任给φ=f,存在φ=f满足

r(T(k,x))<T(e,x)a.e(例如2T(k,x)<T(e,x)a.e)

也就是说f没有最快的算法,因而对f并没有一个特定的类使f∈但不属更快的复杂类。

还有一条重要定理叫作空隙定理。

定理3(空隙定理)令r是递归全函数,r(x)≥x。存在递归全函数b使

(a)、对任何e,x,如果e<x、T(e,x)有定义且T(e,x)>b(x),则T(e,x)>r(b(x))。

也就是说之间再无其他的复杂性类。

对于多元函数φ(x,…,x)也可以定义

(其中=(x,…,x))。

对递归全函数b(x),可以定义复杂性类

是全函数,T(e,)≤b(max())a.e}。

利用可以对初等函数作分类,定义b为:

定理4.设是初等函数类,则

(参见初等函数)。

另一个常用的复杂性尺度是空间消耗函数:

利用S(e,x)也可以对递归函数分类,这方面最令人感兴趣的是

PSPACE={φ|存在多项式函数p(x)使s(e,x)≤p(x)}

称为确定性图灵机多项式空间有界可计算函数类。现已知道:PSPACE=NP

一般说来,如果函数列Φ,Φ,…Φ,…满足

(a).对每个e,Dom()=Dom()

(b).谓词“Φ(x)=y”是递归谓词,则Φ都可作为复杂性尺度。

上一篇:嵇康 下一篇:集合
分享到: