祖父悖论卡了科幻作品几十年:你回到过去杀死祖父,父亲就不会出生,你也不会存在;可你不存在,又是谁杀了祖父?这条逻辑链无论从“活”还是“死”出发,都会绕回矛盾。1991年,英国物理学家David Deutsch给出了一个基于量子概率分布的解法,把“活”和“死”从两个离散选项,变成了可以叠加的概率状态。

诺维科夫自洽性原则:宿命论式的修补

打开网易新闻 查看精彩图片

在Deutsch之前,科幻作品里最常见的自洽方案是宿命论。你看到的现在,已经是被时间穿越改变过的现在;你回去杀祖父这件事,一定会因为各种意外失败,于是父亲照常出生,你照常存在,穿越照常发生。这就是诺维科夫自洽性原则。海因莱因的《你们这些还魂尸》把这条路几乎写尽了。但这个原则有一个代价:它从根本上否定了自由意志和随机性。

问题在于,量子态的测量本身带有真随机。诺维科夫自洽性原则和量子物理并不相容,除非你接受超决定论这类否认真随机的理论。Deutsch的切入点就在这里:既然量子世界允许概率叠加,为什么祖父悖论里的“活”和“死”不能也变成概率分布?

把悖论变成一个没有不动点的函数

祖父悖论可以抽象成两条逻辑链:主角活,回到过去杀祖父,父亲未出生,主角死;主角死,没有回到过去,父亲正常出生,主角活。把“活”和“死”当作输入和输出,就得到一个函数f,满足f(活)=死,f(死)=活。Deutsch注意到,悖论的产生是因为这个函数没有不动点——不存在一个x,使得f(x)=x。

输入是离散的,所以没有不动点。解决办法是让输入连续,也就是让主角的状态变成“活”和“死”之间的一个概率分布。很容易验证,(1/2死,1/2活)这个概率分布就是函数的不动点:主角有一半概率活着,就有一半概率回到过去杀死祖父,造成自己有一半概率死。大自然只要把概率设置成1/2,悖论就消失了。更一般地,无论f是什么,只要把它扩充成作用在有限状态概率分布上的线性函数,不动点都存在,可以用布劳威尔不动点定理保证。

这个半死半活的状态,用太极图来理解很直观:死的状态通过时间旅行切换成活,活切换成死,最后的不动点就是半死半活。

时间机器能加速计算吗?

有了这样一台时间机器,一个自然的想法是:正常计算,等未来输出结果后,用时间机器把结果传回你敲回车的那一刻。这样你就得到了一台按下回车立刻出答案的超级计算机。但它并没有节约计算时间,只是节省了等待时间。你问一个需要极长计算时间的问题,比如一万个顶点的图有没有哈密尔顿道路,然后等待未来送来解答。在你敲下回车的瞬间,预期的答案没有到来——因为这个计算任务需要无法想象的时间,你的电脑和计算环境根本撑不到算完。

那如果不计算呢?这就变成了另一个祖父悖论:你如果拿到了结果,就不会计算,未来就不会传回结果;你如果没拿到结果,就会计算,未来就会传回结果。根据前面的讨论,不动点是1/2概率传回结果不用计算,1/2概率没传回结果必须计算。最终你得到一个1/2概率返回正确答案、1/2期望运行时间的算法——等于白忙活。

向过去传输中间结果:求解NP完全问题

能不能通过向过去传输计算的中间结果来加速?可以,但要非常小心,因为传回去的信息会因多次回传叠加成一个概率分布。这个计算模型里,内存分成两部分:一部分是闭合类时线比特,表示参与时间旅行的比特;另一部分是因果尊重比特,表示不参与时间旅行的比特。

以判定一个逻辑表达式φ能否被满足为例,看看加上时间机器怎么求解NP完全问题。设φ有n个变量,一个寄存器存φ,另一个寄存器存一个n比特的变量赋值x。根据当前两个寄存器的信息,计算要传回去的信息M(φ,x):如果φ(x)=1,即赋值x满足φ,那么M(φ,x)=x;否则M(φ,x)=x+1 mod 2^n。令f(x)=M(φ,x)。如果φ不能被满足,f(x)=x+1 mod 2^n,f作用在0到2^n-1的概率分布上时,唯一的不动点就是均匀分布。如果φ能被满足,f的不动点就是在所有满足赋值上的任意概率分布。

因此,如果φ能被满足,你一定会从未来收到一个满足赋值;否则你会得到一个随机赋值,而且不满足φ。只要检查一下未来传回来的信息是否满足φ即可。Scott Aaronson和John Watrous证明了,利用时间机器,在多项式时间内可以计算的问题类是PSPACE。

这篇回答不是基于科幻小说,而是基于几位计算机科学家和物理学家的学术论文。真正想读硬科幻的读者,不妨去读一些科学论文,其中不少在思维严谨之余,脑洞也远超科幻小说家。