量子计算机不扩展可计算范围,只降低部分任务的复杂性
《上帝掷骰子吗》对量子计算机作了一个有用的区分。它没有凭空增加一类“算法之外”的任务,优势出现在某些问题所需的计算资源上。能不能计算,与计算要花多少时间,是两回事。
书中把这种优势解释成“并行计算”,这个说法很容易让人想到许多普通处理器同时运行,最后把每一路结果全部读出来。量子计算并不能这样工作。一个由 n 个量子比特组成的状态可以有 2ⁿ 个振幅,一次测量却只能得到一个经典结果,无法把所有振幅逐项读取。量子算法需要安排各条计算路径的相位,让不需要的结果相互抵消,让有用结果的振幅增加。优势来自叠加、纠缠和干涉共同形成的算法结构,单有庞大的状态空间还不够。
从本质上来说,计算机自诞生以来却没有什么大变化,艾伦·图灵 Alan Turing为它种下了灵魂,冯•诺伊曼为它雕刻了骨架,别的只是细枝末节罢了!
量子计算机无法实现超越算法的任务,也就是说,它无法比普通的图灵机 Turing Machine做得更多。但他同时证明,它将具有比传统的计算机大得多的效率,用术语来讲,执行同一任务时它所要求的复杂性(complexity)要低得多。一言以蔽之,量子计算机虽然没法做得更多,但同样的任务却能做得更快更好!理由是显而易见的,量子计算机执行的是一种并行计算。正如我们前面举的例子,当一个10bits的信息被处理时,量子计算机实际上操作了2¹⁰个态!
量子计算机实现的可能使得所有的这些算法在瞬间人人自危。量子计算机的并行机制使得它可以同时处理多个计算,这使得大数不再成为障碍!1994年,贝尔实验室的彼得•肖(Peter Shor)创造了一种利用量子计算机的算法,可以有效地分解大数(复杂性符合多项式)。比如我们要分解一个250位的数字,如果用传统计算机的话,就算我们利用最有效的算法,把全世界所有的计算机都联网到一起联合工作,也要花上几百万年的漫长时间。但如果用量子计算机的话,只需几分钟!一台量子计算机在分解250位数的时候,同时处理了10⁵⁰⁰个不同的计算!
2¹⁰ 个振幅不能当成 2¹⁰ 个可分别读取的计算结果,10⁵⁰⁰ 个“不同计算”也是同一种并行隐喻。Shor 算法真正交给量子电路的是周期或阶的寻找,得到测量结果以后,因数的计算仍由经典算法完成。
“250 位数只需几分钟”写的是理想硬件下的理论估计,不是已经完成的实验。它预设了一台足够大、运行时间足够长、能够纠错的容错量子计算机,还取决于电路和硬件的具体实现。IBM Quantum 目前仍把 Shor 算法的大规模用途放在这种机器出现以后,现有硬件只适合演示很小的数字。IBM Quantum 对 Shor 算法的说明
书中最后采用了德义奇的多世界解释:
我们如何去解释量子计算机那神奇的计算能力呢?德义奇声称,唯一的可能是它利用了多个宇宙,把计算放在多个平行宇宙中同时进行,最后汇总那个结果。
这是一种对量子计算的诠释。量子算法的有效性本身不能单独证明 平行宇宙,算法也不需要先接受多世界解释才能使用。
Links to this note
- 上帝掷骰子吗
量子计算机不扩展可计算范围,只降低部分任务的复杂性 讨论的是另一种信息处理。书中用多世界解释它的效率,这是一种诠释,不是量子计算已经替平行宇宙提供了实验结论。