1.6 类P
1.6.1 为什么模型选择无关紧要
我们用图灵机定义“可计算”语言的各种复杂性类及类P。如果选用其他计算模型,这些类会有区别吗?在发现了计算但采用其他模型而不是图灵机作为计算模型的高等外星人眼里,这些类会有区别吗?
我们已经遇到图灵机模型的各种变形,用其中最弱的模型来模拟最强的模型将导致运行时间平方增加。因此,作为可计算问题的集合,多项式时间在这些变形上是一样的。
在图灵和邱奇的工作发表之后的最初几十年中,很多其他的计算模型被发现,其中有些模型十分怪异。当时人们很容易地就证明了图灵机能够模拟其他计算模型,模拟过程至多使得运行时间多项式地变高。因此,在这些模型上类似地定义的类P不会比图灵机定义的P更大。
绝大多数科学家均相信邱奇图灵(CT)命题,它断言任何可被物理实现的计算装置均可以被图灵机模拟,不管这种装置是基于芯片、DNA、中子的还是基于外星人技术的。这就是说,任何其他模型上的可计算问题的集合不会比图灵机上可计算问题的集合更大。(CT命题不是定理,正如我们目前的理解,它仅仅是对世界的本质的一种信念。)
1.6.2 P的哲学意义
1.6.3 P的争议和解决争议的一些努力
现在,我们给出关于类P的定义的一些争议和解决这些争议的过程中出现的以下相关复杂性类。
最坏情况精确计算过于严格。类P的定义考虑的仅仅是在所有可能的输入上计算函数的算法。一个争议之处是,所有输入并不都出现在实际场合中,而算法只需对实际场合下出现的输入上有效即可。平均复杂性部分地解决了这一争议,并由此产生了平均复杂性意义下类似P的复杂性类,参见第18章。我们的观点是,限定在“实际场合”讨论P仅有纯技术意义。
类似地,在遇到像图的最大独立集这样大小的计算函数时,人们通常更愿意讨论问题的近似解。第11章和第22章对近似复杂性进行了严格处理。
其他可物理实现的模型。前面已经提到了强邱奇图灵命题,它断言在任意可物理实现的计算模型上类P不会更大,但其中还有一些微妙之处有待讨论。
(a) 精度问题。图灵机用离散符号进行计算,但现实生活中某些物理量可以取R中的实数。因此,人们也可以基于能操作实数的某些物理现象来构想执行实数计算的模型。由于存在精度问题,图灵机只能近似地模拟实数计算。即便这样,精度问题也不是图灵机遇到的本质性障碍(尽管有些研究者不认同这种观点)。毕竟,由于现实生活中设备存在噪音,因此物理量的测量只能精确到有限精度。因此,物理过程不可能涉及任意精度,继而图灵机当然可以用有限精度来完成模拟。27即便这样,我们仍将在第16章中考虑图灵机的一种修改,使其能够将实数运算当作基本操作。由此产生的复杂性类跟标准复杂性类之间的联系十分密切。
(b) 随机性的采用。前面定义的图灵机是确定型的。如果计算的领域中存在随机性,则人们也可以构想利用随机位源(如投掷硬币)的计算模型。第7章讨论了允许投掷硬币的图灵机并研究了复杂性类BPP,它是这种计算模型上与P类似的复杂性类。然而,我们在第19章和第20章将会看到,随机型计算模型极可能并不比确定型计算模型更强。
(c) 量子力学的采用。一个更聪明的计算模型使用了量子力学中违背直觉的一些性质。我们在第10章定义了复杂性类BQP,它是类P在量子计算模型中的推广。我们将看到BQP中的一些问题,目前还不知道它们是否属于P(尽管目前仍未证明BQP≠P)。然而,量子计算模型是否能被物理实现还是未知的。并且,量子计算机目前似乎也只能高效地求解为数不多的几个不属于P的问题。因此,研究P时获得的知识仍可能适用于量子计算机。
(d) 其他怪诞物理知识(如弦论)的采用。目前,许多物理理论似乎都得到同样的复杂性类BQP,尽管许多理论还有待深入理解。
判定问题的限制太强。有些计算问题不易表达成判定问题。事实上,本书将引入几个复杂性类来处理某些任务的计算复杂性,这些任务包括非布尔函数的计算、搜索问题的求解、优化问题的近似求解、交互式任务,等等。然而,判定问题的框架已被证明具有强大的表达能力,本书也经常使用这种框架。
1.6.4 埃德蒙兹的引言
我们用埃德蒙兹的引言[Edm65]结束本节。埃德蒙兹曾在其著名的论文中给出了求解最大匹配问题的多项式时间算法,他在论文中这样解释其研究结果的意义: