量子计算机——释放无限可能
2022年诺贝尔物理学奖由Alain Aspect、John F. Clauser和Anton Zeilinger三位科学家共同获得,他们获奖的主要原因是通过量子纠缠实验进一步证实了量子力学的正确性,使得量子信息系统成为一门真正的科学,这将进一步推动量子计算机的发展。随着元宇宙时代来临,传统计算机的速度已经无法称心运算的需要,量子计算将成为主流。本期我们将深进介绍量子计算机的发展过程,以及量子纠缠理论在量子计算机中的作用。
文|安迪
○ 量子计算机发展简史
量子计算机是一种利用量子力学现象(如量子叠加和量子纠缠)对数据进行运算的计算机。传统计算机使用二进制数(位)来存储和处理信息,每个数位最多有1种状态(0或1),而量子计算机则使用的是量子比特(qubits),可以同时存在多种状态,这使得它能够比传统计算机处理和存储更多的信息,并更快地解决问题。
量子计算的历史可以追溯到20世纪80年代。1981年在麻省理工学院举办的第一届计算物理大会上,理查德·费曼(Richard Feynman)提出了一种新的计算方法,即量子计算。他认为,量子计算可以比传统的计算机更快地解决复杂的问题。他的想法引起了许多科学家的兴致,并开始研究量子计算的可能性。当时与会的还有物理学家保罗·贝尼奥夫(Paul Benioff),和费曼讨论能否在经典计算机中有效模拟量子系统不同,贝尼奥夫的关注点是能否构造出没有耗散、且遵循量子力学进行操作和运算的计算机模型。
接下来的几年里,研究人员开始了对量子计算潜力的探索。
1994年,美国贝尔实验室的科学家彼得·秀尔(Peter Shor)开发出分解大数质因子的量子算法,可以在数小时以内完成传统计算机需要数十年时间才能完成的运算量。这一算法被称为“Shor算法”,它使得量子计算变得更加可行,引起了许多科学家的兴致,陆续开发出其他量子算法,如Grover算法。
进进21世纪,量子计算研究陆续推进。2011年,世界上第一台商用量子计算机由加拿大D-Wave系统公司开发出来(图1、图2),其后IBM、谷歌等大公司也相继推出了自研的量子计算机产品。中国科研单位及各大公司也纷纷进进量子计算机的赛道,成果十分耀眼。
展开全文
图1 D-Wave One的宣扬广告
图2 D-Wave系统的内部结构
如今,量子计算已经是一个非常活跃的研究领域,量子计算机被使用于各种场景,比如被用来解决机器学习、人工智能和网络安全等领域的问题(图3)。
图3 2021年11月,IBM发布第一台封装100多个量子比特的量子计算机
○ 量子计算机的工作原理
量子计算机是基于量子力学的原理实现的,它利用量子比特来表达信息,并使用量子纠缠等技术实现复杂的量子算法。量子比特可以同时处于多种状态,这让它能够比传统计算机存储和处理更多的信息。而量子纠缠则是一种特殊的量子态,它使得多个量子比特之间的状态相互影响,从而实现复杂的量子算法(图4)。
图4 量子纠缠
小知识:什么是量子纠缠
量子纠缠是一种非常有意思的现象,在这种现象中,两个或多个粒子以一种特殊的方式连接在一起,以至于每个粒子的量子状态不能独立于其他粒子来描述,那怕粒子之间相隔很长一段距离。这意味着粒子之间可以说是“纠缠”的,一个粒子的量子态的任何转变都会反映到另一个粒子的量子态中。
量子纠缠可以用来构建量子计算机的量子门,量子门和经典逻辑门一样也操纵二进制输进,但它还要涉及到状态向量(图5、图6)。另外,量子纠缠还可以实现量子存储,用来存储量子算法的输进和输出。此外,量子纠缠也可以用来实现量子传输,用来在量子计算机的不同部分之间传输量子信息。
图5 传统计算机经典逻辑门列表
图6各种量子门
对于非物理专业的人来说,很轻易混杂量子这个概念。虽然量子通常是原子、光子、质子、中子、电子等基本粒子的统称,但量子不是粒子,它本质上是用来计量能量的最小单位的物理量。量子的概念最早由普朗克于1900年提出。普朗克认为黑体辐射中的辐射能量不是连续的,而是一份一份地进行,他将每一份的能量称之为能量子(a quantum of energy),意为最小的一份能量单元。这种按某个最小单位及其整数倍划分的方式被称为“量子化”。原子、光子等等之所以常被人们理解成量子,就因为它们是构成物质的最小单位(当然还可以陆续细分,图7),作为能量的最基本的携带者,它们可以在不同的状态之间进行转换,从而影响物质的性质。
图7 基本粒子的结构关系与尺寸关系
传统计算机依靠掌握集成电路对信息进行笔录和运算,而量子计算机则通过掌握原子或其他小粒子的状态进行信息的笔录和运算。传统计算机摘用二进制编码,通过单个电路的开关之分(或者高电平与低电平的区别)来确定该比特位(bit)的状态,每个比特只能取一种状态,要么是0要么是1。在这种设计下,假如我们想表达4种不同的符号,就需要2个比特,它们可以组合成4种不同的形态:00、01、10、11。假如想要表达256种可能的符号(比如经典的扩展ASCII码),就需要8个比特(2的8次方等于256,图8)。不过,8比特虽然能够表达出256种状态,但在同一时间它只能存储其中的1种状态。假如我们想要把256个扩展ASCII字符全都存储下来,就需要256个这样的8比特存储单元。1比特称之为1个字位(bit,简写为1b),8比特则称之为字节(Byte,简写为1B),也就是想要完全存储扩展ASCII码表,至少需要256B大的存储器。
图8 二进制扩展ASCII码表
到了量子计算机中,这一情状大为改看。量子计算机的基本信息单位是量子比特(qubit),具有量子叠加的特性,同一个量子比特的状态既可以是0也可以是1(图9)。虽然要表达一个ASCII码字符依然需要8个量子比特,但不同的是,只需要这样1个8量子比特存储器就可以包含所有256个字符(2的8次方)。
图9 传统计算机1比特有2种状态(0和1),1量子比特则有2个基态——“|0?” 和 “|1?” ,每个基态是0和1的叠加
量子叠加的特性使得量子存储器有着超高的存储量。印度民间有这样一个故事:一个棋手陪国王下棋,国王问他想要什么奖励,棋手答说,只要在棋盘的第1个小格里放1粒麦子,第2个小格里放2粒,第3小格放4粒,以此类推,下一格都是上一格的倍数即可。国王一开始不以为然,输了之后兑现承诺,才发现取全世界500年生产的麦子,也填不满第64个棋盘格子(2的64次方)。量子存储正如这个棋盘的格子,是呈指数级增长的,假设有一个100量子比特的寄存器,理论上它的容量相当于1.26×10的21次方个1TB的硬盘那么大,远远超出了普通人的想象。当然这只是理论上的一种可能,真正实现量子存储需要非常复杂的技术(图10)。
图10 中国科学家实现的多自由度复用量子存储实验装置
量子计算机不仅容量浩大,它的运算速度也是传统计算机难以超越的。假设我们有一个100万条的成员大数据,要想找出其中某个特定的成员,传统计算机一般摘用逐条搜索的方式,可以想象其工作量之大。即使有各种优化算法,这个搜索过程消耗的资源也是惊人的。而量子计算机最大的特色就是它摘用的并行计算的方式,比如同时对100万条笔录进行检索、验证,瞬间即可以完成操作,传统计算机的速度根本难看其项背(图11)。
图11 量子计算摘用并行计算方式
提示:以上我们仅从便于普通用户理解的角度出发,分析了量子计算机的工作原理,只是一种形象的阐明,它实际上和专业量子计算机概念有着不小的差距(因为会涉及到很多专业物理学和数学知识),这点还请大家注重。
○ 量子计算机的硬件结构
量子计算机硬件架构基于量子比特网络构建,量子比特是量子信息的基本单位。这些量子比特通过量子电路相互连接,其电路是一组量子门,掌握量子比特之间的信息流。另外,量子电路还要连接到经典计算机上,用于掌握量子电路并读取计算结果。
量子计算机的硬件结构主要有:
量子比特单元(qubits)
量子掌握器(quantum controller)
量子纠缠源(quantum entanglement source)
量子操作器(quantum operator)
量子探测器(quantum detector)
量子比特是量子计算机的基本构成单元,它可以同时表达两种状态:0和1。量子掌握器是用来掌握量子比特的,它可以掌握量子比特的状态,以及量子比特之间的相互作用。量子纠缠源则是用来产生量子纠缠的,它可以使量子比特之间产生纠缠,从而使量子计算机的性能更加强大。量子操作器用来操作量子比特。最后,量子探测器用来检测量子比特的状态。
图12 量子计算机机房
○量子计算机的软件结构
量子计算机架构由三个主要组件组成:量子处理器、经典处理器和量子编程语言。量子处理器负责执行量子算法,而经典处理器负责治理量子处理器并为用户提供接口(图13)。量子编程语言用于编写可以在量子处理器上执行的程序。
量子编程语言:用于编写量子程序的高级编程语言,如Q#、Qiskit、OpenQASM等。
量子编译器:将量子程序编译成量子指令,以便在量子计算机上执行。
量子模拟器:用于模拟量子程序的软件,可以模拟量子程序的执行过程,以及量子程序的结果。
量子调试器:用于调试量子程序的软件,可以检查量子程序的正确性,以及量子程序的性能。
量子库:提供量子程序的可重用组件,可以提高量子程序的开发效率。
图13 量子计算机架构
○量子计算机的局限和挑战
稳定性是量子计算机当前面临的最大挑战。量子计算机的运行依靠于量子比特,而量子比特的稳定性是非常脆弱的,它们很轻易受到外界环境的影响而发生转变,这就导致了量子计算机的运行结果不可推测。因此,要想让量子计算机发扬出最大的作用,就必须解决量子稳定性的问题。
目前量子计算机的局限性有:
1、量子计算机的硬件设备仍然处于发展初期,其可用的量子比特数量有限,而且轻易受到外界环境的骚乱,使得量子计算机的可靠性和稳定性受到限制。
2、目前量子计算机的编程语言和编程模型仍然处于发展初期,短缺统一的编程模型和编程语言,使得量子计算机的使用受到限制。
3、目前量子计算机的算法研究刚刚起步,仍然短缺有效的量子算法。
4、量子计算机所能纠缠的量子位的数量有限。
○量子计算机的使用领域
目前量子计算机的主要用途是解决各种复杂系统的问题,如模拟物理系统、搜索大型数据库、解决密码学问题等等。它还可以用于机器学习、人工智能、量子力学等领域(图14)。
图14 量子计算机的使用领域
搜索引擎优化:量子计算机可以更快地搜索大量数据,提高搜索引擎的性能。
模拟:量子计算机可以模拟复杂的物理系统,从而更好地理解它们的运行原理。
机器学习:量子计算机可以更快地练习机器学习模型,提高机器学习的性能。
密码学:量子计算机可以更快地破解密码,提高安全性。
金融:量子计算机可以更快地分析金融数据,提高金融分析的正确性。
医疗:量子计算机可以更快地分析医疗数据,提高医疗诊断的正确性。
无人驾驶:量子计算机可以更快地分析车辆数据,提高无人驾驶的安全性。
结束语:
量子计算机的发展前景非常乐看。随着量子计算机技术的不断发展,它将能够解决传统计算机无法解决的复杂问题,比如量子力学模拟、金融风险分析、机器学习等。量子计算机的发展必将改变我们的生活方式,改良我们的工作效率,提高我们的生活质量。
原文刊登于2022 年 12月 27 日出版《电脑爱好者》第 22 期
END
更多出色,敬请期待……