(法国版) 法国 英国 中国

分类: 科学家咖啡馆

姚期智:伟大的科学产生于学科交叉处

姚期智 / 著名计算机学家、清华大学高等研究中心教授 / 2016-02-23

当年薛定谔或海森伯格永远不可能发明这些算法,因为在几百年以前人类只会观察,而无法动手来操作。仅仅在最近的30年,已经有很多有趣的物理发现可以让我们操纵原子并使用它们进行计算。人们在很多年以来一直对于量子计算的可靠性有所怀疑。在过去的20年,量子计算有了很大的进展,它将以意想不到的速度投入使用。


Read this article in English

本文内容由来欣怡(上海交大巴黎高科学院学生)根据姚期智院士于2015年12月10日在上海交通大学的英文讲座整理与翻译。

近些年,不论是在科学界还是权威杂志,量子计算作为热门词汇常常出现在人们的视野中。为什么人们如此热衷于发掘量子计算的可能性?为什么量子计算与传统计算机相比有如此巨大的潜能?

在讨论量子计算之前,我们先回到人类第一次利用原子结构来产生核能的时代——这无疑是人类社会的一项巨大进步。在理论上来说,它可以应用于多种形式的电能,而且更加环保。而现在是量子计算机的时代,我们要试着重现那个领域的伟大成就,实际上,相比于量子计算,利用原子核能是一种较为粗糙的发电方式,因为它仅仅是释放了储藏在原子中的能量。然而量子计算被证明是一种更为适合的方式,因此这个深奥的学科有着强大的理论依据。

尽管对于量子计算的讨论已经很多,它到底是什么对于很多人甚至很多科学家来说还是陌生的。所以我想对于量子计算的原理做一个深入的解释,以解开大家心中的疑问。同时人们也许有这样的想法:量子计算是否像很多“流行技术”一样只是三分钟热度,几年后就没有人再关心它到底有什么用处了?所以除了介绍它的原理之外,我还要向大家说明:这项富有潜力的发明在生产制造中会展现其伟大的科学魅力。

我先举一些伟大科学的例子。

第一个例子是X射线衍射晶体学,即利用X射线对材料进行照射以确定其晶体结构的学科。1895年,伦琴发现某种物质释放出了一种神秘的光线,并将其命名为X射线——X表示“未知”。在当时,人们认为只有两种物质:粒子和波。于是对于X射线到底是什么产生了讨论:是粒子还是波?1912年,冯·劳厄确认这种神秘的X射线具有波的性质。他使X射线通过一些晶体结构并产生衍射图,而图像看起来恰好就像光波的一样。冯·劳厄发现了X射线可以与其本身发生干涉,所以它必然是波。由于这项发现,伦琴在1901年获得了诺贝尔物理学奖。而由于冯·劳厄对其进行完善,他于1912也获得了诺贝尔奖。次年,父子物理学家组合哈利·布拉格和劳伦斯布·拉格观察了劳厄的衍射图像,并提出疑问:是否可以通过数学的方式来对其进行描述?他们成功地建立了解释衍射图的数学方程,并且机智地想到可以通过衍射图像弄清晶体的原子结构和原子组成晶体的排列方式,证明人类不仅可以解释自然,还可以通过这种新现象去试着更深入地了解自然。他们在1917年获得了诺贝尔奖。这使得人们对于使用X射线衍射来确定晶体结构越来越有信心。20世纪20年代,人们相继发现了一些金属和有机分子的结构。1950年,佩鲁兹和肯德鲁确定了生物分子肌红蛋白的结构,这种分子有时被称作“呼吸分子”,因为它能让我们正常呼吸;他们也获得了诺贝尔奖。当然最有名的就是20世纪50年代的沃森、克里克和富兰克林确定了DNA分子结构:双螺旋结构。从1960年至今,人们一直通过X射线衍射来确定材料的分子结构。这些伟大的发现在方方面面都对我们有所帮助,也包括医药生产。我认为X射线衍射无疑是一项伟大的科学。

第二个例子是1928年,大卫·希尔伯特——那个时代最伟大的数学家——讨论了数学中判定问题的可能性。数学对于很多人来说是一个可怕的学科。希尔伯特很善良地说,他发现了用一些微化过程来证明数学方程和定理的可能性。所以什么是微化过程?他其实并不知道,因为在当时没有计算机。后来,图灵和他的朋友想知道希尔伯特所说的微化过程到底是什么,从而发明了图灵机模型,这标志着最自然的计算模型。接下来的几年,人们逐渐接受了图灵机模型的正确性,并确信没有其他可以定义可计算性的方式。有种说法叫做“邱奇-图灵论题”,它不是什么定理,而是相信所有计算或算法都可以由一台图灵机来执行。当时,机器指的是纸机,在战后十分流行;那时电子技术已经可以让人们设计出现代电子计算机了,诺伊曼等人就是做这个的。从那时起,计算机就开始逐步发展起来。

对于计算机科学是否是改变人类文明和历史的伟大科学还存在争论。然而当我们审视这两个例子的时候,不难发现伟大科学往往产生于科学产生交叉时。在X光衍射的例子中,物理学与生命科学及材料学产生了碰撞;在计算机的例子中,数学和计算擦出了火花。另一个值得注意的是:我们需要通过某种技术来将这些科学发现投入到实际应用中,以便我们探索更多无法想象的事情。在发现X光之前,我们很难推测晶体的结构是怎样的,只知道它是很小的单位,超出了我们的理解范围,所以没有人能有足够的证据证明原子的排列方式。当我们用普通的光来照射晶体时,什么都看不出来;然而X光的波长很短,与晶体结构的长度在同一量级,这些短波能与其本身发生干涉,从而产生衍射图像。这就是一种技术的产生,它能帮助你弄清材料的结构而加深研究。计算机亦然,我们可以通过计算机技术来预测。

看完这两个例子以后,我们转向量子计算。不难发现,量子计算不但有以上两种特点,而且还与X光衍射和计算机科学有着千丝万缕的联系,可以说,量子计算是这两种学科的结晶。中国有句话讲:“将门出虎子”,所以它也必然是一项伟大的科学。为什么量子现象可以以一种与众不同的方式来计算?在18世纪80年代,人们第一次发现了这种全新的计算方式。让我们来深入地看看它到底是怎么回事。

我们提到了有技术才能实现伟大科学。计算机科学中,这项技术不同于“1-0”的计算。让我们回到图灵的时代以前。我认为图灵太快就跳到结论还发明了图灵机。假设你回到了早一点的时代再思考人们是怎么设计一台计算机,大致的思路应该是这样:来看看某个物理或生物过程,任何过程都可以。想想怎么才能把这个过程转化为信息。举个例子,我有一些细菌,很偶然地向它们输入了一些“1”和“0”的信息,然后观察它们的举动,并假设细菌永远都能产生正确的反馈。假设我想解决一个计算问题,例如产生一个大数,而通过观察细菌的行为,我就能得到这个大数。如果我反复确认这个答案的正确性,我就可以说这就是能制造出一台优秀的计算设备的基础。让我们回到原点,再想想下面这种能够把X光衍射类比到计算中的方法。假设我想计算关于某点x的方程f,先抛弃传统的计算机,以物理学家的方式来做这个实验:旋转晶体至合适的角度以便计算f(x);使晶体增长并用射线照射晶体产生衍射图像来观察原子排列的结构。如果一切正常,就很有可能通过衍射图来确定f与x的关系,我们也可以确定任意一点的f(x)。第一个实验不难操作,但是需要大量的资金支持,这时候计算机就派上了用场。在计算机科学中,我们习惯用计算机来解决问题,比如现在我们经常用计算机模拟来设计飞机。用计算机软件有时候比其他方法省钱多了。所以说如果能有一台量子计算机,就可以用软件来模拟一些过程而比传统的硬件支持便宜得多。在这个例子中,真的在实验室里做一个指数增长的晶体实在太难了;如果能用模拟的方法做实验,你就能在一个可以接受的时间范围内得到结果。所以我说这个例子就是物理与计算机科学交叉的结果。

你可能觉得它仅仅是个游戏,但是其实它很有用。我要用一个问题来解释这点。1994年,西蒙提出了一个问题,并且他说如果有一间量子实验室的话,这个问题很快就能被解决。问题是这样的:假设有一个可以把一个n比特数转换为另一个n比特数的黑箱,例如把x转换成f(x)。对于这箱子每一个输出的字符串来说,都对应两个可能的输入。换句话说,这个n比特的字符串只有一半的可能实现。进一步来说,这种2对1的映射可以看做某种自然规律,即存在这样一个n比特的数串,使得当你做任何输出时,两个输入都可以由x和x+x联系在一起,而x+x是二进制的大数加法。现在我想让你找到这种对应关系,你可以输入一个数看它的输出,再输入一个再看……问题就在于对于一个很大的n(n=1000)来说,需要运算的时间十分庞大,因为你有太多可能的输入了,所以基本不太可能找到对应同一输出的两个输入字符串。如果什么已知条件都没有,那就更不可能发现这种对应关系。

但是假设你是一个很聪明的学生,而且在宿舍的地下室里有一间量子实验室,那么你就可以应用量子技术很快地解决这个问题了。我们复习一下已知的条件:你有一个单色光源,也就是只有一种波长,把它照向这个字符串。我们知道光线到达任意一点时,都会互相发生干涉。学过大学物理的人都知道这会产生一定的光强:有些地方很亮,有些地方很暗——因为光波可以互相叠加消失,所以你就什么都看不到。类比于晶体,你的光源可以穿过晶体并显示出衍射图像。这个晶体是如何构造的呢?它不是三维的,而是维度为n,所以它是有2n个顶点的一列原子,这2n个点将从光源处取光。你可以根据如下描述建立模型:存在一电子屏,在x,y,z轴上分别有2n个点;每一列点表示一个n比特的字符串。现在观察x轴上某一点的原子,它将产生一条通向水平线上的2n个点的路径,而z轴上的高度是由f(x)决定的。所以你用那个黑箱子来计算z轴坐标是多少。从x发射的光将全都落在这条水平线上的2n个点上面,并且光强相等。然而,输入值的符号可能为正也可能为负。

现在我们看看结果。在任意一条f(x)的水平线上,原子列通向的2n个点中都会有两点落在坐标轴上面。原子列的路线可叠加。如果输入符号相同——比如两点符号都为正——那么屏幕上的光强将是原本的四倍;如果一正一负,则它们相互抵消,这一点就变暗。这时打开所有东西,你会发现正好一半的点是亮的而另一半是暗的。有趣的是有一种很简单的方法来确定屏幕上的某点是亮或暗。对于任意一亮点的水平轴y,取x、y的内积xy并乘2,结果均为0。这是一个关于x的线性方程,y是观察所得。因此,对于任意亮点都可以得到关于x的线性方程;如果取n-1个互不相关的y值,就可以通过解线性方程求得这个数。

建立一个这样的模型能让你解决问题,这固然很好,但是不幸的是,所有数的量级都是2n,这在有限的空间内是很难实现的。那么怎么办呢?我们并不需要完整的算法,而只是找到一些亮点。令光源强度达到最强照亮屏幕,然后逐渐减弱光源强度,使得每次只有一个光子通过晶体,这样你就能观察到这个光子会落在屏幕的哪个位置。换句话说,我们并不需要建立坐标轴,而是对于每一个光子都模拟我之前提到的实验,这样我只要重复实验2n次,就会得到足够的线性无关的方程以确定f(x)。量子算法的神奇之处就在于它可以帮你实现这一过程。彼得·肖就创建了一种有效的因子分解算法。只要有1000个整数和一台量子计算机,你就可以进行分解了。原理就如我举的例子一样简单。通过使用这些整数建立某种晶体,通过某种方法射穿晶体并留下衍射图像,就可以弄清楚它们的分解因子是什么了。

我们刚才提到伟大的科学往往产生与学科交叉处,这个例子就是物理与计算机科学交叉而产生了新技术,而且要知道,当年薛定谔或海森伯格永远不可能发明这些算法,因为在几百年以前人类只会观察,而无法动手来操作。仅仅在最近的30年,已经有很多有趣的物理发现可以让我们操纵原子并使用它们进行计算。人们在很多年以来一直对于量子计算的可靠性有所怀疑。在过去的20年,量子计算有了很大的进展,它将以意想不到的速度投入使用。

一方面,在过去的10年里,各地量子信息中心逐渐建立起来;另一方面,各国政府也看到了量子技术的发展潜力并开始投资发展这项技术。一些主要的实验室如下:马里兰实验室、NIS实验室、NIC联合实验室以及29个教授,包括诺贝尔奖得主W.D.Phillips;哈佛-麻省理工中心,包括2001年诺贝尔奖得主Ketterle;以及欧洲、日本和中国的一些研究中心,比如清华大学的量子算法项目。

互联网是现代社会的重要组成部分,因此我们也可以发展量子互联网。传统互联网的基本功能是可以以非常便捷的方式从世界上任何一个地点向另一个地点发送电子信息。那么问题来了:量子信号可以从一个地点向另一个地点传输码?研究表明想要设计一条传送可靠的量子信号的路径还是有一定难度的。作为将量子计算与实际应用相结合的媒介,量子网络也是通向量子计算的一步。由于量子的特殊属性,我们需要克服很多困难,想出一种机智的算法来解决搜索问题。同样,我想要强调的是量子网络对于设计量子计算来说是至关重要的。

量子计算中一种最先进的技术叫做“离子阱”(Ion trap),是利用带电原子来进行计算的。这项技术很难,让所有带电粒子在原有位置发光并不是件容易的事情,因为原子间的相互作用力会使它们分开,所以需要用一种动态电磁场使这些粒子保持在势阱中——这项技术获得了诺贝尔奖。这并不是什么巧合,其实量子计算技术应用到了很多近年物理学方面的重大发现。那么为什么网络对于制造量子计算机来说如此重要呢?想想传统的计算机:怎样制造一台超级计算机?你需要先制造独立的组件,然后用网络把它们连在一起,因而可以逐渐扩散制造越来越大的计算机。量子计算亦然:你要先建立独立的量子内存和量子处理器,再用网络把它们连接起来,之后就可以进行量子计算了。

因此,我认为第一个让量子计算有希望发展下去的因素就是各国政府意识到这件事的重要性。除此之外,很多顶尖的物理学家们也希望在这方面有所建树。对于科学家来说,时间就是最宝贵的资源,只有这件事值得去做,他们才会花费大量的时间来研究这个。第二个因素就是量子计算已经吸引了众多目光,很多权威杂志如《自然》、《科学》都有关于量子计算最新进展的相关报道。这就说明科学界已经注意到了量子计算的重要,并愿意投身于这一领域的研究。因为一旦你投入该领域,你不需要等个10年、20年才能研究出面向市场的产品;每次你做出一点小的进展,你都会引起界内高度的重视,还会受到嘉奖。所以这也是人们愿意投身这个领域的原因。

说到制造量子计算机的进展程度,我们还停留在实验室阶段,并仍然在尝试制造其组件,至今还无人能将所有东西组装在一起制作一台完整的量子计算机。我们还需要继续研究——即使是仅仅将物质与光信号之间的存储位转化为通信位也需要研究。这并不容易,但是做出来的人必然声名大噪。所以说量子计算前景十分光明。

还记得一开始,我说我们先不要研究伟大科学的本质,而是看几个例子。现在我们知道了伟大的科学往往产生于学科交叉处,此时新的技术也将诞生。怎样才算是伟大的科学呢?个人认为,它一定要有巨大的影响力。量子计算不仅仅是建造一个1000量子位的计算机,而还要让我们发展一切拥有巨大影响力的量子技术。例如:量子计算中最难的课题在于量子模拟。当前我们还无法建造一台功能完善的量子计算机。然而我们可以创建一些程序,尤其是一些易于操作的量子系统,使得输入和输出变得更加简单。一旦我们掌握了如何控制这一系统,它就有大用途了。比如要研究另一个不是很便于操作的量子系统,虽已经掌握该系统的一个量子方程却还是不知道怎么去解。用传统的计算机进行传统模拟将花费很多时间。但是如果掌握了一个熟知的量子系统,我们就可以把目标系统代入这个已知的系统,然后通过使用已知系统进行模拟,就可以对那个复杂系统进行预测了。

我认为尤其对于年轻人来说,伟大的科学必须要与已知的经验相结合。当我们还是孩子时,我们都有很强的想象力和创造力,做一些喜欢的事情,虽然不知道为什么,但是乐在其中。随着年龄的增长,我们逐渐开始思考,我们做这件事情因为它能给我们带来某种好处、带来财富。渐渐地,我们的初心就被外物所蒙蔽。对于科学家来说,失去了一颗赤子之心是坏事。

我很小的时候喜欢看科幻小说,会想象有遥远而无人问津的一座岛,也许那里的人生活得和我们完全不同,使用着无法理解的语言。你难道不想去认识认识他们吗?这也是量子的世界里所发生着的,我们学习了量子的“语言”,一种物理学家们经过上百年的研究而发现的数学语言。在过去的日子里,我们只能远远地观察事物的变化,却不能接近它们、改造它们。然而就在最近的30年,我们找到了接近它们的方法。我们可以登上那座岛,与那里的人们见面,用他们的语言交谈;我们可以问他们:“这儿有某种舞蹈的编舞,能跳给我们看看吗?因为只有你们可以做到。”那么他们就会在沙滩上展示这种优美的舞蹈,他们离开后,我们还可以清晰地看到舞者们留下的足迹。这难道不是我们生命中最美妙的事情吗?