姚期智院士:神秘的量子计算跟经典计算到底有何不同
作者:姚期智,世界著名计算机学家,2000 年图灵奖得主,中国科学院院士,美国科学院外籍院士,清华大学交叉信息研究院院长
量子计算已经出现在公众的视野中很久了。尤其是最近几年的发展,量子计算机似乎即将成为现实。但是量子力学对外行人来说是非常陌生的,甚至很多的计算机科学家,他们仍认为量子计算很神秘。他们也很难理解一些简单的问题,比如:量子计算到底跟经典计算有什么不同?它强大的计算能力从何而来?量子计算机的本质是怎么?它强大的计算能力从何而来?
在十九世纪,经典物理学认为,世界上的所有物质可以分成两种类型,一种是粒子,你可以把它想象成棒球或者网球,它很坚硬且有弹性,处在特定的位置上。另一种是波,比如我们看到湖中的水波,另外像我们看到的光,或者叫“光波”,也是波现象的一个例子。这就是经典物理学对物质的解释。
当时的科学家对这套理论非常满意。他们认为这套理论可以解释自然界的一切。然而到了二十世纪,当时的科学家们突然发现,整个世界并不是我们肉眼所看到的那样。经典物理模型有可能是错误的。他们发现,如果去观测一个很小的物体,比如原子、电子或者光子它们同时具有粒子和波的特性。人们看到的到底是粒子还是波,取决于我们的观测方式。通俗的讲,就好比《Jekyll and Hyde》的故事(编者注:英国作家 Stevenson 的的经典小说,书中主角有人格分裂。现多指由两种不同面目的人)。我不确定中国朋友是否熟悉这个故事。杰克是一个好人,海德是一个坏人。但大家都知道,他们实际上是同一个人的双重人格。
爱因斯坦在 1905 年发表了一篇著名的论文,他提出:光不仅仅只是波实际上,光在特定条件下表现得像粒子。所以到目前为止,物理学家根据量子理论认为,宇宙中所有的物质都具有这种双重属性。即每个物体都具有两面性。一面是粒子的特性,一面是波的特性。物理学家给它起了一个非常好听的名字,就叫做波粒二象性。它告诉我们,世界上所有物质的真实面貌,跟我们肉眼观察到的是不一样的。他们实际上既有粒子的性质,同时又有波的性质。在量子理论中,这是物质的基本性质之一这种性质非常有名。所以波粒二象性对量子计算来说是非常重要的。
量子计算机 Vs 经典计算机
在 1936 年,Turing 提出了图灵机这个概念,他也是计算机领域的伟大先驱者。在 1936 年之后的很多年,图灵及一些其他先驱者都认为,他们已经解决了计算理论的所有问题。他们觉得自己找到了一个非常完美的,或者说是唯一的计算模型。之后的很多年,大家都抱有同样的想法。但是自二十世纪六七十年代起,一些极具创新精神的科学家们开始思考计算的本质。他们重新审视计算这个概念,思考像计算过程中需要消耗多少能量等问题。之后沿着这个思路,一些科学家也在思考,利用量子理论进行计算的可能性。其中有一个科学家为此贡献良多,他就是 Charles Bennett,他也是量子计算的先驱之一。
对量子计算领域来说,也许最重要的一个工作是费曼在 1981 年做出的工作。他实际上提出了两个问题,第一个问题是:经典计算机是否能够有效的模拟量子系统?对计算机科学家来说,这是一个非常重要的问题。我们高度使用经典计算机,去计算和解释物理现象,并且实际上,计算效果确实非常好。这是因为经典物理现象都能用微分方程进行描述,而恰好经典计算机非常擅长解决这类问题。在很多领域,经典计算机都能非常好的模拟物理系统。但是费曼思考的是,如果不仅仅考虑经典物理,而且考虑量子物理的情形。
虽然在量子理论中,仍用微分方程来描述量子系统的演化,但变量的数目却远远多于经典物理系统。如果你仍然想用经典计算机来模拟量子系统,即用经典计算机模拟经典系统的老思路,那么你需要指数级来增加时间才能完成模拟。所以费曼提出了这个问题而费曼的结论是:这是不可能的。因为目前没有任何可行的方法,可以求解出这么多变量的微分方程。
然后,他提出了另一个问题,这是一个非常重要且极具创新性的问题: “如果我们放弃经典的图灵机模型,是否可以做得更好?”我认为没有计算机科学家这么想过,但是物理学家会这么思考,因为他们不是计算机科学家。费曼正是如此,他从物理学家实用主义的角度来思考这个问题。他说:“好吧,让我们看看我们能做些什么,如果我们不能以标准的方法去做,是否有新办法可以解决这个问题,从而获得正确答案?”
他问道: 如果我们拓展一下计算机的工作方式,不是使用逻辑门来建造计算机,而是一些其他的东西,比如分子和原子,如果我们使用这些量子材料,它们具有非常奇异的性质,尤其是波粒二象性。是否能建造出模拟量子系统的计算机?”于是他提出了这个问题,并做了一些验证性实验。然后他推测,这个想法也许可以实现。
那么量子计算机和经典计算机有何本质区别呢?经典计算机本质上来说,你有一些数字串或者比特你将其作为输入,用经典计算机对它进行计算,然后获得输出结果,经典计算机就是通过数字逻辑来进行运算。而作为对比,量子计算机是由量子材料建造而成。你也可以输入量子比特,输入比特的状态用状态空间中的态矢表示。所以一种特殊情形是,它可以表示经典的 0 和1。但是实际上它可以表示更多的状态。让我们通过类比来理解它们之间的差别。
假设你现在需要计算一个问题,首先你需要正确的表示这个计算任务,把它输入到量子计算机中,然后在特定的时间,你需要执行测量操作,获取测量结果,这个结果就是你需要的输出结果。我认为很重要也很有趣的一点,在量子计算机和经典计算机的区别中,就是很多年前人们认为模拟电路已经过时了。
尽管模拟信号是电子工程师的最爱他们有了电压信号和电流信号后,就能利用这些信号进行信号处理。但当数字计算机普及之后,我们就把那些模拟设备扔进了垃圾堆里。因为我们没有必要再去使用它们。因为数字信号处理,可以更稳定、更可控,而模拟信号处理则很难精确控制。可是如果我们使用量子计算机的话,那么就又回到了模拟信号处理上。量子计算机只在计算过程的最后时刻,即执行测量操作获得测量结果时,才会将模拟信号变成数字信号。
经典计算机通过操纵经典比特进行布尔运算,类似的,量子计算机是操纵量子比特。这些量子比特处在一个更大的状态空间中,量子操作本质上就是去旋转它们。
现在我们来具体对比经典计算机和量子计算机的区别,用经典计算机去操纵n个比特,它有2^n种可能的状态,然后经典计算机对比特状态进行不断的映射。而如果用量子计算机去计算,比特的状态空间会更大,它的维度是一个复数C^2^n。如果你不熟悉复数,就把它当作一个欧几里得空间,只不过维度将指数级增大到C^2^n 。所以利用这个特点,量子计算机可以做一些经典计算机无法完成的事情,因为量子计算机有更大的状态空间。而量子计算机对量子比特的旋转操作,完全不同于经典计算机对经典比特的排列操作。这个特点是量子计算机的另一个巨大优势。所以到目前为止,我介绍了经典计算机和量子计算机中的基本概念,但我不会详细介绍量子计算机中的旋转操作,它们实际上叫做幺正变换。过于专业的解释会让你们感到迷惑,所以忘掉它,就理解成旋转操作。所以理论上,量子计算机有更大的状态空间去处理问题。
神秘的量子计算机
如果一个人问量子计算科学家 “量子计算机的奥秘到底是什么?为什么是它量子计算机如何加快计算速度的?”我认为可以这样回答:因为量子比特表示的不只是一个确定的状态,而是各种状态概率性的叠加。
就比如著名的薛定谔的猫,这只猫实际处在活猫和死猫的叠加态。这是一种很特殊的状态,因为你不能说它是只死猫,也不能说它是只活猫。但是你知道它有多大概率是活的,多大概率是死的。这是非常诡异的一种状态。所以,如果你能用叠加态来表示事物的状态:即同时表示猫是生或死的状态。如果你真可以这样做的话,直观上理解就是,你具备了并行计算的能力。我们知道对许多计算问题来说,它们有很多不同的解。你需要遍历搜索每一个解,去查看哪一个是你想要的正确答案。
现在假设你有一台理想的并行计算机,您可以使用非常多的处理器进行并行搜索。原则上,你可以大大加快运算速度。因此我认为你可以这样回答那个问题,量子计算机的超强计算能力来自于它的并行搜索能力。正是这种量子并行性使得量子计算机如此强大。
我很想用潘建伟教授提过的比喻来向你们解释这种特性:在中国的神话故事中,有一个美猴王叫孙悟空。它有一项本领:可以变出许多个自己。它只需要拔下一根汗毛吹一下,就能变出一个一模一样的自己。量子并行性就相当于所有这些猴子在同时进行搜索。量子计算机就是拥有这种神奇的能力,来进行快速的并行搜索。但是我们需要注意这只是个比喻。它确实是真的,量子叠加态这种特性确实使并行搜索成为可能。但是,当你去查看所有的经典算法时你找不到利用这种量子特性进行并行搜索的算法。因此,它本身并不是一个真正意义上的答案。而我们要做的就是给你展示一个真正显示量子算法加速能力的例子在这个例子中,你将看到量子并行性在哪里起作用。
打造一台量子计算机难度在哪?
自 1981 年以来,科学家已经取得了巨大进步,在量子算法的设计和实现上做出了很多利用量子特性加速计算的工作。我们知道在现代密码学中,有许多密码系统用来保护信息,它们利用大数分解来进行加密。现在如果我给你一个 400 位的数字,事实证明你很难直接分解出它的因数。两个数的乘法很容易,如果把两个 200 位的数相乘,你可以很快的计算出结果。如果用计算机来计算的话,甚至会更快。但是一个 400 位的数字,让你计算出它的两个因数,你很难解出来。但事实上有个量子算法能解决这个问题,它是由 Peter Shor 在 1994 年提出,已经被证明量子计算机能够非常快速的分解大数。
有很多方法可以估计量子计算机运行该算法的时间。一种估计是,如果你使用超级计算机来分解一个 400 位的数字,大概需要 60 万年。但如果你用量子计算机来计算,假设我们已经有了一台合适的量子计算机,你只需要几个小时甚至几十分钟就能完成计算。所以 Peter Shor 的这个量子算法,也许是最著名的量子算法。但这并不是唯一重要的量子算法。
大数分解算法对破解加密系统非常有用但是也有许多其他的重要算法,其中一个便是费曼的问题:“量子计算机否能够模拟量子系统?”事实上到目前为止,已经证明,量子计算机能解决许多种问题,用量子计算机也确实可以模拟许多量子系统。现在尤其是可以利用量子计算机去模拟特定的量子系统,从而可以在许多问题上取得进展,比如新材料的开发,以及新药物的研制等。所以,量子计算机将会产生巨大的影响。此外还有一些经典的非线性优化问题以及机器学习,人工智能相关的问题量子计算在一些相关的领域也非常有用比如量子通信和量子密码学。
Charles Bennett 和 Gilles Brassard 做出了许多著名的工作,他们是这个领域的伟大先驱。此外,潘建伟教授是这个领域中实验方向的杰出领导者之一,我认为像墨子号量子卫星是一个非常伟大的成就。正如我前面提到的, “为什么量子计算机这么强大?它是如何做到的?”外行仍然不能理解。
量子计算机如何能加速计算?
所以我现在要谈到问题的核心:量子计算机是如何加速计算的?我接下来将介绍这个著名的量子算法:由 Peter Shor 发明的大数分解量子算法。Peter Shor 的这个算法是非常数学化的,所以我将以不同的方式呈现它。实际上这个经典算法本身很有趣,因为它涉及到一些著名的先驱科学家的工作。它也确实是由一些著名的物理学工作启发而成。这个物理或者化学分支,叫做X射线晶体学。
这个著名的工作起源于 Roentgen 在 1895 年的发现,他偶然发现了一种他称之为X射线的神秘现象。这是一个新奇的东西。人们很难确定它是一个粒子还是一个波。无论如何,Roentgen 因发现X射线的工作中而得到了认可。他在 1901 年获得了第一届诺贝尔物理学奖。
在 1912 年,von Laue 分析了这个问题,X射线到底是粒子还是波?他提出一个很棒的想法:把X射线照射到像盐这样的晶体上。他设法得到一个衍射图案。按照当时的科学理论水平,如果能得到衍射图案,那就证明它肯定是波。因为粒子不会相互干涉。
但故事没还有结束。我认为 von Laue 值得获得诺贝尔奖,但接下来还有更棒的发现。1913 年,Braggs 父子推导出了衍射现象的数学公式。想想,你如何解释衍射图样?用怎样的数学公式才能解释它。这个工作意义重大。一旦你能用数学公式来分析和预测,那么你就能运用在实验中。假设你有一个未知结构的晶体,你拍摄了一些x射线照片,也许从各个角度都拍摄了。现在根据数学公式,你甚至可以恢复出晶体的结构。这真是个好办法。你只是拍了张照片,然后就能恢复出晶体的结构。这个方法是非常成功的,因为接下来的许多年由它又产生了许多诺贝尔奖。
事实上,科学家们后来变得更有野心。因为最初的数学公式很粗糙,你只能分析非常简单的东西,比如无机材料分子。但后来,可以逐渐分析更复杂的生物大分子。科学家们找到了分析它们的方法,并确定了这些蛋白质的结构,所以通过非常简单的思路,却可以做很复杂的事情。
如果你使用X射线,即这种光波,对一些东西拍照,你就可恢复出这些东西的结构。用我们计算机科学的语言来说,你可以计算出被研究对象的一些秘密所以这是智力上的一大飞跃。类似的如果我想分析一个整数,有没有办法让我拍一张整数的X光照片?当然,如果你写下这个数字,然后用X射线照射它,我想你就回到了我前面刚开始讲的地方。即你需要根据这个整数来构造一个晶体,然后用X射线去照射它。
第一步就是设计出这个经典算法,而我们正在设计的就是这种光学算法。但由于它是经典物理学范畴,我们可以用经典计算机来模拟它。所以它是一个经典算法。然后想象一下用X射线去给这个整数N拍照不过首先你需要足够聪明地去构造出一个晶体然后你用X射线去拍照,看一下衍射图案当然也许你需要多试几次接着你分析照片,就可以得到这个数字的因数实际上这是可以完成的,尽管里面涉及到一些复杂的数学。
这基本上就是图像化的去理解这个经典算法即你有一个整数需要因数分解,然后你做一个光学实验通过衍射图案就能分析出结果现在问题是这个晶体的体积非常巨大。如果你想天真的去建造这个晶体,我认为整个银河系,甚至整个宇宙都不够大。
现在进入下一步,也是最关键的地方。第一我们实际上不需要整张照片因为传统上你去照X光,医生会看到整个底片,但我们不需要。实际上我们只需要几个样本点就够了,并不需要指数级的样本数。我们只需要多项式量级的样本数,这就是进步之处。现在的问题是如何去采样?即使是采一个样本点? 也是很困难的。因为如果你取一个样本进行计算,你需要对指数多的项求和。
所以,如果你使用经典算法来计算,它仍然很难。但是指数多的项求和是非常结构化的,如果你用一种聪明的方式去计算即如果你有一台量子计算机,那么你可以使用量子傅里叶变换来进行计算。
打个比方,你可以使用前面提到的孙悟空的那种本领。这样你就可以进行并行搜索,并指数级的节省时间。这对采一个样本点意味着什么呢?现在就是最精彩的地方了,波粒二象性将会起作用了。通常当你拍一张X光照片时,有许多X光的光子穿过你的身体。但是假设X光越来越弱,直到最终每次只有一个光子能通过装置。波粒二象性告诉我们,即使只有一个光子,仍然能通过它。
事实上,一个光子通过装置后的概率分布将与经典情形相同,这样你就会得到完全相同的分布。因此如果我能采样,只需要发射一个光子并探测光子着陆的位置。你看,关键之处在于只需要一个粒子然后探测光子通过晶体后的位置分布。当你测量它们时,它们只能在处在一个位置。因此,这个样本点包含了整个晶体的信息。因此,最终的结果是把这些组合在一起,得到一个多项式运行时间的量子算法。
量子计算机未来可期
用于量子计算的技术手段最初可能有二十种左右,都是用于构建量子比特的基础单元,但是许多年之后似乎只有一些方案更有希望。
如果你关注科学论文,我认为超过 20 个比特固态量子计算方案会有非常高的可靠性。目前,来自 IBM 和 Google 的一些原型机被公布出来,有些原型机的比特数已经快达到 100。
如果有一个好的实验工作,你将可以初步展示出量子计算的强大能力,而超导量子计算就是其中一个。我认为这也是大众关注度最高的一种方案。另外,离子阱也是一个相当成熟的技术。我认为他们俩都有希望竞争第一。
这里也有一些新技术方案,其中令我印象特别深刻的是,利用金刚石来构建量子计算机。出于虚荣心我乐于看见量子计算机是由金刚石做出来的,这样我就可以把它放在桌上展示给大家看。此外还有利用光子技术方案,我们可以做玻色采样并将 10 个量子比特纠缠起来。顺便提一下,最后一个工作是在中国完成的,来自于中国科学技术大学的潘建伟教授领导的团队。
现在,大众对量子计算似乎比以前乐观了许多,并且有很多有天赋的量子物理学家正致力于构建量子计算机所需要的各个部件。就像我刚才提到的我们研究所正在用金刚石来试图推进这方面进展。
所有的技术方案都有自己的长处和不足,并不是说一种技术方案就一定优于另一种。比如,金刚石方案目前在可以设计和制造的比特数比离子阱和超导要少,但是金刚石方案可以在室温下工作并且是固态的,这一定程度上让人想起了硅技术。所以这种方案在未来还有发展的潜力。
关于离子阱,首先你要制备出这种离子,然后你要用磁场去稳定住它们,让其排成一排,这样它们就可以用做量子比特了。离子阱在有些方面很有优势,比如它们非常稳定。目前它们的退相干时间可以达到十分钟。
成为第二个图灵
我认为量子计算非常让人激动,从智力的角度而不是功利的角度来看的话,如果比较量子计算机和经典计算机,对于经典计算机来说它的设计原则非常简单,并符合常识。量子计算是非常不一样的,它基于 20 世纪的现代物理学,它的设计原则非常晦涩并且反直觉。它在智力上是一件很让人激动的事情,某种意义上,我们都有机会成为第二个图灵。我认为 Turing,Church 和 Kleanie 所在的时代是一个伟大的时代,那时 Kurt Gödel 刚刚发表了一个不完全性定理(编者注:哥德尔于 1931 年提出,他证明了任何一个形式系统,只要包括简单的初等数论描述,而且是自洽的,它必定包含某些系统内所允许的方法既不能证明真也不能证伪的命题)
计算的本质是什么,似乎成了一个悬而未决的问题。对很多研究者来说,那是一个思考 “计算的意义是什么”这一重要问题的黄金时期。这是该问题第一次被深入研究。它吸引了人们的极大兴趣,就像一个从未被探索过的原始森林任何进展都显得非常重要。
现在,量子计算给了我们第二次这样的机会。当你考虑量子计算机能做些什么的时候,你将要回到最开始设计版图的阶段,因为任何有潜力的物理器件,量子器件各类实验方法,实验过程,对你来说都是建造量子计算机的潜在方案。所以,这就是为什么量子计算机具有无限的可能性。就像刚才我所提到的可以用X光来进行上述的计算,也可以考虑利用它做其他类型的计算,并且能从中获得什么。因此这是一个非常广阔的领域,等待着去探索。
我认为量子计算机在过去的十几年间的进展是巨大的,一些公司已经制造出接近 100 量子比特的原型机,这项工作既需要物理实验,也需要工程技术。因为在工程学角度,如果要建立一个超导量子计算机,需要非常多的电子学工程师来协助你,所以工程技术也扮演着重要角色。
当工业界开始介入这个领域会充满希望,因为这是一个积极的信号。另一个乐观的迹象是越来越多的国家开始投入研究经费到量子计算中,而且更能说明问题的是,非常多顶尖的 IT 公司启动了量子计算项目。所以可以看出,这些公司是非常有眼光的,可以确定的是这个领域即将会有丰硕的成果产出。但是我们也必须沉下心来,意识到建造一个实用的量子计算机即使到了最后时刻,它也可能还有一段非常冗长困难的距离。
大家知道量子计算有它自己的运行逻辑,并且将很快被实现。但现在最好再用我们的智慧思考一下量子计算机的定位以及量子计算对未来信息科学领域的影响。
在我的观念中,我认为自然界有两个非常伟大的成就,第一是自然界设计了一个非常复杂的规律,也就是量子定律,它的因果逻辑如此复杂以至于无法解析计算。但它却让这个世界有了许多精彩纷呈的现象。第二件事大自然通过演化创造了一个物种——人类。
人类的大脑几乎是宇宙中最复杂的东西,在创造和推理方面,它拥有非常惊人的能力。现在,来看看我们如何追赶上大自然的脚步,如果我们成功的建成了一个通用的量子计算机,这意味着我们最终有能力去求解量子力学方程,也就是说我们可以利用已知的物理定律,像自然界一样,去创造一些东西。所以我认为,我们已经进入一个值得期待的时期。在这个世纪里取得伟大的进步,至于另外一个问题,我们是否可以创造一个类似人类大脑的智能?
事实上,现在的计算机科学家已经在这方面做出了很多工作,但现在的水平还不能与人脑相提并论,但我们是否有可能建立一个与人脑智力相当的系统呢?如果在本世纪接下来的时间里我们能够取得极大的进步,这将会是一件很棒的事情。我们可以宣称我们可以做到与自然界一样的事情。虽然我们现在正努力在这方面取得进步,但我们还有很长的路要走,正如我提到的量子计算和人工智能是两大热门方向,一个非常鼓舞人心的问题是,随着人工智能和量子计算机的发展是否有机会将将量子计算和人工智能结合起来,这样也许就可以利用量子算法来理解或创造超自然智能。