你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是量子计算?

量子计算有望解决我们星球上一些最大的挑战——在环境、农业、健康、能源、气候、材料科学等领域。 对于其中某些问题,随着系统规模的增长,经典计算受到越来越多的挑战。 设计为缩放时,量子系统可能具有超过当今最强大的超级计算机的功能。

本文介绍量子计算的原则、与经典计算的比较方式,以及它如何使用量子力学原理。

提示

若要加速量子计算之旅,请查看 Azure Quantum 代码,这是 Azure Quantum 网站的独特功能。 在这里,你可以运行内置Q#示例或你自己的Q#程序,通过提示生成新Q#代码,在 VS Code for the Web打开并运行代码,只需单击一下,并询问 Copilot 有关量子计算的任何问题。

为什么使用量子计算机?

由于在经典计算机上模拟量子系统比较困难,由此产生了量子计算机的想法。 在 20 世纪 80 年代,Richard Feynman 和 Yuri Manin 分别提出,基于量子现象的硬件在模拟量子系统方面可能比传统计算机更有效。

可以通过多种方法来了解量子力学难以模拟的原因。 最简单的就是看物质在量子层面上有多种可能的构型(称为状态)。

量子计算呈指数级增长

考虑一个电子系统,其中有 $40$ 个可能的位置。 因此,系统可能处于 2^{40}$ 配置中的任何$一个(因为每个位置都可以有或没有电子)。 若要将电子的量子状态存储在传统计算机内存中,需要超过 $130$ GB 的内存! 如果我们允许粒子位于 41$ 个位置中的任何$一个,那么在 2^{41}$ 处$会有两倍的配置,这反过来又需要 260$ GB 以上的$内存来存储量子状态。

这个增加位置数量的游戏不能无限地玩。 如果我们想要以传统方式存储状态,我们将很快超过世界上最强大的计算机的内存容量。 内存用来存储系统所需的数百个电子超出了宇宙中的粒子数;因此,传统计算机没有希望模拟其量子动力学。

将困难转化为机会

看到这种指数级的增长,人们提出了一个很有震撼力的问题:我们能否把这种困难转化为机会? 具体来说,如果量子动力学难以模拟,则在构建将量子效应作为基本运算的硬件时,会发生什么情况? 我们是否可以通过一台利用完全相同的物理定律的机器,模拟由相互作用的粒子组成的量子系统? 我们能否利用这些机器来研究量子粒子不存在但对我们至关重要的其他任务? 这些问题引出了量子计算的起源。

1985 年,David Deutsch 表明,量子计算机可以有效地模拟任何物理系统的行为。 此发现首次表明,量子计算机可以用来解决经典计算机难以解决的问题。

1994 年,Peter Shor 发现了一种用于整数因式分解的量子算法,其运行速度比已知最好的经典算法快得多。 因式分解使得破解当今为电子商务提供底层安全性的多种公钥加密系统成为可能,包括 RSA 和椭圆曲线加密。 这一发现引发了人们对量子计算的巨大兴趣,并导致为许多其他问题开发量子算法。

自那时起,人们为许多困难的传统任务开发了快速且高效的量子计算机算法:在化学、物理学和材料科学方面模拟物理系统、搜索无序数据库、求解线性方程组和机器学习。

什么是量子比特?

正如位是经典计算中信息的基础对象一样,量子比特(量子位)是量子计算中信息的基础对象

量子比特是量子计算中的基本信息单位。 量子比特在量子计算中发挥的作用与比特在传统计算中发挥的作用相似,但它们的行为方式却大相径庭。 经典位是二进制位,只能保留 0$ 或 $1$ 的位置$,但量子位可以容纳所有可能状态的叠加。 这意味着量子比特可以处于 0$、$1$ 或两者的任何量子叠加状态$。 0$ 和 $1$ 有无限可能的叠加$,每个叠加都是有效的量子比特状态。

在量子计算中,信息在状态 $0$ 和 $1$ 的叠加中编码。 例如,对于 $8$ 位,我们可以对 256$ 个不同的值进行编码$,但我们必须选择其中一个来对其进行编码。 使用 $8$ 个量子比特,我们可以同时对 256$ 个值进行编码$。 此行为是因为量子比特可以叠加所有可能的状态。

有关详细信息,请参阅 量子计算中的量子比特。

如何构建量子计算机

量子计算机是一种利用量子力学现象的计算机。 量子计算机使用物质的量子状态来存储和计算信息。 &他们可以引用:程序&商;量子干扰执行比传统计算机更快或更好的操作。

在构建量子计算机时,我们需要考虑如何创建量子位以及如何存储量子位。 我们还需要考虑如何操作它们以及如何读取计算结果。

最常用的量子位技术是离子阱量子位、超导量子位和拓扑量子位。 对于某些量子比特存储方法,存储量子比特的装置会存放在接近于绝对零度的地方,以最大限度地提高其相干性并减少干扰。 其他类型的量子比特装置使用真空室来帮助最大程度地减少振动并使量子比特保持稳定。 可以使用多种方法(包括微波、激光和电压)将信号发送到量子比特。

量子计算机的五个条件

良好的量子计算机应具有以下五个功能:

  1. 可缩放:它可以具有许多量子位。
  2. 可初始化: 它可以将量子比特设置为特定状态(通常为 $0$ 状态)。
  3. 可复原:它能让量子位长时间处于叠加状态。
  4. 通用:量子计算机不需要执行每个可能的操作,只需执行一组称为通用集的操作。 一组通用量子运算是指,任何其他运算都可以分解为它们的序列。
  5. 可靠:它可以准确测量量子位。

这五个条件通常称为量子计算的 Di Vincenzo 条件。

构建满足这五个条件的设备是人类面临的最苛刻的工程挑战之一。 Microsoft 与世界各地的一些一流的量子计算机制造商合作,以便你通过 Azure Quantum 访问最新的量子计算解决方案。 有关详细信息,请参阅 Azure Quantum 提供程序的完整列表

量子计算和 Azure Quantum 的用途是什么?

量子计算机不是可以更快地执行一切的超级计算机。 事实上,量子计算研究的目标之一是研究哪些问题可以用比传统计算机更快的量子计算机来解决,以及加速的幅度有多大。

量子计算机非常适用于需要计算大量可能组合的问题。 可以在许多领域(例如量子模拟、加密、量子机器学习以及搜索问题)中找到这些类型的问题。

有关 Microsoft 量子计算研究的最新信息,请参阅 Microsoft 量子计算研究页面。

资源估算

目前提供的量子计算机可实现有趣的实验和研究,但它们无法加速解决实际问题所需的计算。 虽然行业等待硬件进步,但量子软件创新者渴望取得进展,并为量子未来做好准备。 今天创建最终将在明天的容错缩放量子计算机上运行的算法是一项艰巨的任务。 这些创新者面临诸如哪些硬件资源需要的问题? 需要多少个物理和逻辑量子比特以及哪些类型? 运行时间有多长?

可以使用 Azure Quantum 资源估算器 来帮助回答这些问题。 因此,你将能够优化算法并生成解决方案,以便在量子计算机可用时利用缩放量子计算机的优势。

若要开始,请参阅 “运行第一个资源估算”。

量子模拟

量子力学是基础 &商;操作系统&商;我们的宇宙。 它描述了自然界的基本组成部分是如何运作的。 自然界的行为(例如化学反应、生物反应、物质形成)往往涉及到多体量子交互。 为了模拟内部量子机械系统(如分子),量子计算很有希望,因为 量子比特 (量子位)可用于表示相关自然状态。 我们可以建模的量子系统的示例包括光合作用、超导以及复杂的分子形成。

Azure Quantum Elements 旨在加速科学发现。 通过针对 Azure 高性能计算(HPC)群集、AI 加速计算、使用 AI 进行扩充推理、与量子工具集成、开始试验现有量子硬件的模拟工作流以及将来访问Microsoft量子超级计算机,重塑研发工作效率。 有关详细信息,请参阅 解锁 Azure for Molecular Dynamics 的强大功能。

量子加速

量子计算研究的目标之一是研究哪些问题可以用比传统计算机更快的量子计算机来解决,以及加速的幅度有多大。 两个众所周知的示例是 Grover 算法和 Shor 算法,它们分别在其经典对应项上产生多项式加速和指数加速。

在量子计算机上运行的 Shor 算法可打破经典加密方案,例如 Rivest–Shamir–Adleman (RSA) 方案,该方案在电子商务中广泛用于安全数据传输。 此方案基于使用经典算法对素数进行因式分解的实际困难。 量子加密通过利用基本物理原理而不是复杂性假设来保证信息安全。

Grover 算法加快了非结构化数据搜索解决方案的速度,与传统算法相比,其搜索步骤更少。 事实上,任何允许检查给定值 $x$ 是否为有效解决方案的问题(一个 "是或没有问题&商;)可以在搜索问题方面制定。 下面是一些示例:

  • 布尔可满足性问题:布尔值 $集 x$ 解释(值赋给变量)是否满足给定布尔公式?
  • 旅行推销员问题:x$ 描述连接所有城市的最短循环吗$?
  • 数据库搜索问题:数据库表是否包含记录 $x$?
  • 整数分解问题:固定数字 N$ 是否由数字 $$x$ 可见?

有关 Grover 算法的更深入的检查,请参阅本教程中的“实现 Grover 算法”。Q#

量子计算如何解决问题?

量子计算机是可控制的量子机械设备,它们利用量子物理的属性来执行计算。 对于某些计算任务,量子计算提供指数加速。 这些加速之所以成为可能,要归功于量子力学的三种现象:叠加、干涉和牵连。

叠加

假设你在客厅锻炼身体。 你一直向左转,然后一直向右转。 现在,同时向左转和向右转。 你无法做到这一点(至少要将自己一分为二)。 显然,你无法同时处于这两种状态,即无法同时向左和向右。

但如果你是量子粒子,由于一种称为叠加(也称为相干性)的现象,你可能具有一定的向左的概率和一定的向右的概率

与经典粒子不同,如果两种状态 A 和 B 是量子粒子的有效量子态,则状态的任何线性组合也是有效的量子状态:$\text{量子比特状态}=\alpha A + \beta B$。$ $$ $ 这种量子状态 $A$ 和 $B$ 的线性组合称为叠加。 $\alpha$ $\beta$此处是 A$ 和 $B$ 的$概率振幅,分别使 $|\alpha|^ + |\beta|^{2}={{2} 1。$

只有像离子、电子或超导电路这样的量子系统才能以叠加态存在,从而实现量子计算的能力。 电子等量子粒子具有自身的“朝左或朝右”属性,即 旋转,称为向上或向下,因此电子的量子状态是商的 &叠加:启动"和 "旋转引号&;。

通常,为了使其与经典二进制计算更相关,如果某个量子系统可以处于两种量子状态,则这些状态称为 0 状态和 1 状态。

量子比特和概率

经典计算机以比特为单位存储和处理信息,比特的状态可以为 1 或 0,但不能同时处于这两种状态。 量子计算中的等效概念是量子比特。 量子比特是可以处于两个量子状态(0 和 1)叠加的任何量子系统。 每种可能的量子状态具有一个关联的概率幅度。 只有在测量一个量子比特之后,它的状态才会根据关联的概率坍缩为 0 状态或 1 状态,因此,可能的状态之一是根据特定的概率获取的。

量子比特坍缩方式的概率取决于量子干扰。 量子干扰会影响量子比特的状态,从而在测量过程中影响特定结果的概率,而这种概率状态正是量子计算的优势。

例如,经典计算机中只有两个比特,其中每个比特都可以存储 1 或 0,因此,你可以同时存储四个可能的值(00、01、10 和 11),但一次只能存储一个值。 但在两个量子比特重叠的情况下,每个量子比特都可以是 1 和/或 0,因此你可以同时表示四个相同值。 如果是三个量子比特,则可表示八个值;如果是四个量子比特,可表示 16 个值,依此类推。

有关详细信息,请参阅 量子计算中的量子比特。

纠缠

量子力学中某个最有趣的现象是两个或多个量子系统彼此纠缠。 纠缠是量子系统之间的量子关联。 当量子比特纠缠时,它们会形成一个全局系统,因此无法相互独立地描述各个子系统的量子状态。 当不能将全局系统的状态作为子系统状态的组合写入时,两个系统会纠缠在一起,特别是当全局系统的状态不能作为 子系统状态的张量积 写入时,两个系统会纠缠在一起。 产品状态不包含任何关联。

纠缠的量子系统即使在大距离之间分离时也保持这种相关性。 这意味着,对一个子系统应用的任何操作或过程也会与其他子系统关联。 由于纠缠的量子比特之间存在相干性,因此测量一个量子比特的状态可以提供有关其他量子比特的状态的信息,这种特殊的属性在量子计算中非常有用。

注意

并非两个量子位的测量值之间的每个相关性都意味着两个量子位相互牵连。 除了量子相关性外,还存在经典相关性。 经典与量子相关性之间的差异是微妙的,但它对于量子计算机提供的加速至关重要。 有关详细信息,请参阅 了解经典相关性

若要了解详细信息,请参阅教程“探索量子纠缠”。Q#