1.1 量子计算机是什么
量子计算机是一种不同于以往任何计算机的新型计算机。本书将从量子计算机的特点和定位讲起。
1.1.1 何为计算
大家可以回忆一下在小学一年级学习算术时的情景。我们先学习了0到9这 10个数字,然后学习了加减乘除四则运算。在日常生活中,我们可以利用这些知识来清点物品的数量、规划时间或者算账。
后来我们又学会了更加复杂的计算方法,知道了计算还可以运用到产品制造、建筑设计和地球环境测量等工作中。不过,上了高中后我们开始意识到,人类的计算能力并没有那么强:对于大数运算,用笔计算 5 位数的乘法已经比较吃力了;图形计算的话,顶多算算圆形或三角形等简单图形的周长和面积;至于位数更多的数或更加复杂的图形,恐怕脑袋里就会一团糟,更是无从下手了。
好在我们可以使用计算器。计算器的种类繁多,这里姑且将所有用于计算的机器统称为计算器。我们最熟悉的计算器当属电子计算器。在电子计算器发明之前,人们使用算盘进行计算。计算器出现后,多位数的运算速度实现了大幅提升。
更复杂的计算还可以使用计算机来完成。学习带有和等未知数的方程式后,我们可以在不使用具体数字的情况下列出计算公式,然后根据这些公式来编写程序。这样一来,很难通过笔算完成的复杂计算就可以交由计算机来处理了。无论是计算几千位的大数,还是计算复杂的三维图形,只要知道基本的方程式,就能借助计算机求出答案。
计算机是利用电能执行计算的机器,于 1960年前后开始实际投入使用。它拥有超越人类的计算能力,如今已融入我们的日常生活中。图1.1 展示了计算器的发展历程。
图1.1 计算器的发展历程
1.1.2 计算机的极限
即使是利用电能的计算机,能力也是有限的。在过去的 60年间,计算机不断发展,不但实现了高速计算,使用方法也变得越来越简单。然而,人类想要解决的问题也在以同样的速度变得更复杂、更烦琐。对于复杂的三维物体或具有量子力学行为的物质,就算使用当今最先进的计算机也无法轻松执行仿真计算。不可否认,有时候在计算方面,计算机仍力有未逮。近期备受关注的区块链技术正是基于这一事实产生的系统。另一门受到广泛关注的机器学习技术,同样致力于减少求解问题所花费的时间。
因此,突破当今计算机的极限就变得至关重要,人们认为世界将因此变得更加美好(图1.2)。那么,如何才能突破计算机的极限呢?量子计算机无疑是答案之一。
图1.2 借助量子计算机突破极限
1.1.3 量子计算机是什么
目前,研究人员正在积极研发作为下一代高速计算机的量子计算机。对于现代计算机所面临的重重难题,哪怕量子计算机只能解决其中的一小部分,也会给社会带来巨大冲击。
首先,笔者来简单介绍一下什么是量子计算机。本书将量子计算机定义为一种通过积极利用量子力学特有的物理状态来实现高速计算的计算机。量子计算机中的“量子”(quantum)正是量子力学中的“量子”。量子力学是在大学阶段开设的一门课程。作为物理学的分支之一,它是为了解释原子和电子等极小物质的运动而发展起来的理论。量子力学告诉我们,在原子、电子和光子(光的粒子)等极小的物质,以及超导物质等冷却至极低温度的物质上会发生不同寻常的神秘现象,而这些现象是可以通过实验证实的。例如,研究人员已经实现了叠加态和量子纠缠态等量子力学所特有的物理状态(相关内容会在后面的章节讲解)。那么,为什么不积极利用这些特有的物理状态来制造计算机呢?正是基于这一想法,量子计算机诞生了。量子计算机能够执行远超传统计算机计算能力的量子计算。随着研究的深入,与传统计算之间存在本质差别的量子计算的潜力渐渐显露出来。量子计算机的研发,即研发出一种能够通过精确控制量子来突破传统计算机极限的量子计算机,成了物理学和工程学上的一大挑战(图1.3)。
图1.3 什么是量子计算机
1.1.4 量子计算机与经典计算机
下面,我们总结一下量子计算机和普通计算机之间的区别。首先,计算可以大致分为两类:一类是基于同为物理学分支之一的经典物理学的经典计算,另一类就是基于量子力学(这里也可以说是量子物理学,本书后文将统一使用“量子力学”一词)的量子计算。
我们在初中和高中的物理课上学过物体的运动、力的作用和电磁场的特性等知识,这些都属于经典物理学的研究范畴。量子力学的研究内容则包括原子和电子的性质等,这些要在大学的某些专业课上才会学到。我们可以认为,经典计算和量子计算分别对应于这两种物理学。笔者会从第 3 章开始介绍二者的区别。本书中,我们把执行量子计算的设备称为量子计算机,把执行经典计算的设备,也就是那些常见的普通计算机称为经典计算机。
量子计算向下兼容经典计算,这就意味着任何可以用经典计算机求解的问题都可以用量子计算机求解。对应到物理学上,这就等同于任何可以由经典力学处理的现象(原则上)都可以由量子力学处理(即经典物理学是量子力学的近似)。
此外,人们已经发现,有时借助量子计算机可以快速求解经典计算机难以求解的问题。这一现象对应到物理学上就是量子力学甚至可以处理经典物理学无法处理的现象(图1.4)。
图1.4 物理学与计算之间的对应关系
量子计算机目前还没有公认的定义。本书对量子计算机的定义如上一页的图1.3所示。需要注意的是,虽然普通计算机的运转同样离不开利用了量子力学现象的半导体设备(如晶体管和闪存等),但在其上执行的计算其实还是对应于经典物理学的经典计算。我们需要明确“用于实现的物理现象”与“能够实际执行的计算”之间的区别,仅仅使用了可由量子力学解释的现象并不意味着可以执行量子计算。但是,要想执行量子计算,则需要精确控制可由量子力学解释的现象,并实现所谓的“量子力学特有的物理状态”这一特殊状态。
1.1.5 量子计算机的类型
本书将量子计算机分为以下三种类型(图1.5)。
通用量子计算机
通用量子计算机可以执行任意的量子计算。解释得更详细一点,就是通用量子计算机能够以足够高的精度将一种任意的量子态转换为另一种任意的量子态。所谓任意的量子态,是指任意多个量子比特(也称为量子位)的状态。若一种量子计算机能以足够高的精度——之所以这么说,是因为 100% 转化很困难——将任意的量子态转换为期望的状态,我们就可以把这种量子计算机称为通用量子计算机。另外,量子比特的数量增加后,所要执行的转换也会变得越来越复杂,噪声的影响也会变大,因此量子计算机必须能够纠正计算过程中出现的错误(具备容错能力)。能够容错的量子计算机称为“具备容错能力的量子计算机”。
非通用量子计算机
非通用量子计算机无法执行任意的量子计算,即只能执行部分量子计算,但它也表现出了优于经典计算机的一面。
名为 NISQ(Noisy Intermediate-Scale Quantum,嘈杂中型量子)的量子计算机就属于此类。这类量子计算机目前正处于研发阶段,尚不具备容错能力(或容错能力较弱)。具体内容会在 1.2.6节介绍。
非经典计算机
非经典计算机使用(或旨在使用)量子力学特有的物理状态执行计算,但尚未表现出优于经典计算机的一面。目前正在研发的量子退火计算机就属于此类。
图1.5 量子计算机的类型
表1.1 总结了上述三种量子计算机的特点。本书将这三种计算机统称为广义量子计算机,并就此展开详细讲解。
从表中可以看出,广义量子计算机与经典计算机的不同之处,在于计算时是否使用了量子力学特有的物理状态;而对于同属广义量子计算机的非通用量子计算机和非经典计算机,二者之间的区别体现在计算性能方面,即是否存在超越经典计算的量子优势;最后,非通用量子计算机与通用量子计算机之间的区别,在于量子计算是否具有通用性。
表1.1 量子计算机的类型和特点
1.1.6 量子计算模型的类型
上一小节从硬件角度介绍了量子计算机的分类。此外,计算也有类型之分——本书将量子计算模型分为通用型和专用型两类。这里所说的计算模型是指描述计算执行方式的模型。
通用型
通用型模型可以描述所有量子计算。量子电路模型就是一种典型的通用型模型。除此以外,还有多种在计算量上等效的模型尚处于研究阶段,比如基于测量的量子计算、绝热量子计算和拓扑量子计算等(请参考 6.5节专栏)。笔者会在后面的章节中就量子电路模型展开详细讲解。
量子电路模型
该模型在执行计算时使用的是量子电路和量子门,二者取代了经典计算机中使用的电路和逻辑门(logic gate)。1
该模型自量子计算机研究之初沿用至今,是能够描述通用量子计算的最标准的模型(图1.6)。
图1.6 量子电路模型
专用型
专用型模型可以描述特定的计算。本书将会讲解一种名为量子退火的计算模型,它是专门用于计算伊辛模型基态(第 7 章)的计算模型,解决问题的方式是将问题映射到伊辛模型(图1.7)。
图1.7 伊辛模型
量子退火
2011年,一家名为 D-Wave Systems 的加拿大风险投资公司将量子退火商业化。Google 和 NASA(National Aeronautics and Space Administration,美国国家航空航天局)也参与了相关研究,使得量子退火声名鹊起。东京工业大学的西森秀稔教授团队和麻省理工学院的爱德华·法尔希(Edward Farhi)团队先后提出了量子退火(门胁和西森,1998)和量子绝热计算(法尔希等,2001),这两种理论上的计算模型形成了量子退火的基础。基于这两种计算模型,人们就可以使用专为量子退火设计的机器——量子退火计算机来执行计算。
1因此该模型也常被称为量子门方式。