
表面码:迈向实用的大规模量子计算
Surface codes: Towards practical large-scale quantum computation
原文日期:2012年10月26日
arXiv: 1208.0928
摘要
本文为表面码量子计算提供入门介绍。我们首先估计表面码量子计算机的规模和速度。然后利用两个量子比特引入稳定子(stabilizer)的概念,并将此概念扩展到作用于二维物理量子比特阵列上的稳定子,我们在该阵列上实现表面码。接着描述逻辑量子比特如何在表面码阵列中形成,并给出其容错性的数值估计。我们概述逻辑量子比特如何在阵列上物理移动,如何构造量子比特编织(braid)变换,以及两个逻辑量子比特之间的编织如何等价于受控非门(controlled-NOT)。然后描述单量子比特的 Hadamard、 S ^ \hat{S} S^ 和 T ^ \hat{T} T^ 算符,完成通用量子计算机所需门操作的集合。最后简要讨论表面码的物理实现。我们在多个附录中提供对正文的补充信息。
I. 背景
量子计算机提供了一种手段,可以解决某些使用传统经典计算机在合理时间内无法解决的问题。这些问题包括将非常大的数分解为它们的质因数,这在量子计算机上可以使用 Shor 算法 3 相对快速地完成,以及在大型非结构化数据集中进行搜索,这可以在量子计算机上使用 Grover 搜索算法 4, 5 完成。许多物理系统正在被探索用于量子计算,包括离子、半导体中的自旋和超导电路 6, 7。然而,这些系统中没有一个表现得足够好,可以直接作为计算量子比特使用。
然而,可以从一组物理量子比特构造出一个逻辑量子比特(logical qubit),使得逻辑量子比特的性能远优于单个物理量子比特。
构建量子计算机的一种方法是基于表面码(surface codes) 8, 9,作为稳定子码(stabilizer codes) 10 来操作。表面码 evolved from Alexei Kitaev 的一项发明,称为环面码(toric codes)11--14,这源于他开发拓扑序简单模型的努力,使用分布在环面表面的量子比特。Kitaev 采用的环面几何后来被证明是不必要的,平面版本(因此称为"表面码")由 Bravyi 和 Kitaev 以及 Freedman 和 Meyer 发展出来 8, 15。
表面码的显著优势之一是它们对局部错误的相对容忍度,这首先由 Preskill 及其合作者描述 16。在该出版物中,关键的逻辑 CNOT 操作使用堆叠的表面层实现,这是一种三维结构,显著复杂化了潜在的物理实现,但表面码承受高错误率的能力是显而易见的:这些作者表明,表面码可以处理几乎每个表面码时钟周期 3% 的错误率,假设能够测量一个四量子比特算符。
Raussendorf 及其合作者随后发现,逻辑 CNOT 操作可以通过在单个表面上的**编织变换(braid transformations)**实现,这是一个高度重要的简化 17--19。这些作者还评估了仅使用一量子比特和两量子比特最近邻门的完全平面实现的错误容忍度,得出每个操作 0.75% 的错误阈值。
关于表面码的文献有些晦涩。更易懂的描述出现在更近的出版物中 20, 21,包括对错误及其传播的 thorough 分析 21, 22 以及高效经典控制软件的开发 23。许多作者正在致力于改进与表面码相关的经典处理 24--28,以及其他二维拓扑码 29--32。
表面码对错误的容忍度,每个操作错误率高达约 1% 22, 23,远不像其他量子计算方法那样严格。例如,在具有最近邻耦合的二维晶格上实现的 Steane 码和 Bacon-Shor 码的错误容忍度计算发现,每步阈值约为 2 × 10 − 5 2 \times 10^{-5} 2×10−5 33, 34,因此需要比表面码低三个数量级的错误率。表面码的错误容忍度,以及简单的二维物理布局和仅最近邻耦合,使表面码架构成为构建固态量子计算机的最现实方法之一。
正如读者将发现的,为高错误容忍度付出的代价是表面码的实现涉及大量的物理量子比特------就像大多数其他量子计算方法一样 33, 34。实现单个逻辑量子比特至少需要十三个物理量子比特。一个可以在表面码中有效使用的、合理容错的逻辑量子比特需要约 10 3 10^3 103 到 10 4 10^4 104 个物理量子比特 [1](#1)。使用 Shor 算法 3 找到一个数的质因数所需的物理量子比特数量取决于物理规模和计算时间之间的权衡。这些权衡在表 I 中显而易见,我们展示了对于不同类型的分解电路,分解一个 N N N 位数字所需的近似计算逻辑量子比特数、顺序 Toffoli 门数和总 Toffoli 门数 [2](#2)。
一般来说,虽然在表中向下移动时计算时间变小,但电路的空间范围变大,因为逻辑量子比特数(电路"足迹")与 Toffoli 门总数与顺序 Toffoli 门数之比成比例缩放。
我们可以粗略估计分解一个 N = 2,000 N = 2{,}000 N=2,000 位(600 位十进制数字)的数所需的时间和电路大小,使用表 I 第一行的电路大小缩放,并对物理量子比特错误率和门时间做出假设;关于此估计的更多细节在附录 M 中提供 [3](#3)。这个 Shor 算法实现是基于参考文献 35--37 中的思想构建的,涉及一个资源密集型的模指数运算,需要约 40 N 3 ≈ 3 × 10 11 40N^3 \approx 3 \times 10^{11} 40N3≈3×1011 个顺序 Toffoli 门。模指数运算因此决定了分解算法的总执行时间。该电路的高度优化版本 41 可以在约三个物理量子比特测量周期内完成每个 Toffoli 门。如果我们假设物理量子比特测量时间为 100 ns,完成指数运算将需要约 26.7 小时。
电路的空间范围部分由计算逻辑量子比特数决定,对于此电路约为 2 N = 4,000 2N = 4{,}000 2N=4,000。然而,表面码的更大一部分需要用于生成和纯化 Toffoli 门中使用的特殊 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 辅助态。每个 Toffoli 门消耗七个 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 态 37。总共,指数运算电路因此需要约 280 N 3 ≈ 2.2 × 10 12 280N^3 \approx 2.2 \times 10^{12} 280N3≈2.2×1012 个 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 态。表面码必须能够以足够快的速率生成这些态,以跟上指数运算电路。
定义逻辑量子比特所需的物理量子比特数量强烈依赖于物理量子比特中的错误率。刚好低于阈值的错误率需要每个逻辑量子比特更多的物理量子比特,而远低于阈值的错误率允许每个逻辑量子比特使用更少的物理量子比特。这里我们假设错误率约为阈值的十分之一,这意味着我们需要约 14,500 个物理量子比特 per 逻辑量子比特,以给出足够低的逻辑错误率来成功执行算法。
我们现在可以估计我们的分解问题所需的物理量子比特数量。4,000 个计算逻辑量子比特总共需要约 4000 × 14,500 = 5,800 4000 \times 14{,}500 = 5{,}800 4000×14,500=5,800 万个物理量子比特。如附录 M 中所讨论的,生成和纯化一个 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 态需要一个约 800,000 个物理量子比特的表面码区域,耗时约 100 μ \mu μs。在 26.7 小时的执行时间内生成全部 2.2 × 10 12 2.2 \times 10^{12} 2.2×1012 个 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 态需要约 10 亿个物理量子比特。与用于生成 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 态的量子比特分开的计算量子比特占量子计算机足迹的不到 6%,因此总的来说我们看到,在假设的错误率下,完整的量子计算机需要约 10 亿个物理量子比特,运行约一天。
量子计算机的规模对物理量子比特中的错误率相当敏感。例如,将整体错误率提高约十倍,如附录 M 中详述,可以将物理量子比特数量减少约一个数量级,降至约 1.3 亿,但执行时间不变。原则上可以通过加快表面码操作来进一步减少量子比特开销。更快的操作意味着需要更少的量子比特以必要的速率生成 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 态。然而请注意,算法执行时间由模指数运算设定,只能通过减少测量时间来减少。然而,正如后面将清楚的,操作基于表面码的量子计算机需要经典控制系统对物理量子比特进行密切监控和控制,控制电路由经典逻辑驱动。减少逻辑门时间将对这个经典控制硬件提出严格要求。鉴于当前数字逻辑的速度,量子计算机的逻辑门时间在 0.1-10 微秒范围内可能是现实的。可以使用更长的逻辑门时间,但这需要更多的量子比特以保持总体执行时间不变。量子比特的数量可以通过减慢模指数运算来减少,因为那时 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 消耗速率降低,导致 ∣ A L ⟩ |A_L\rangle ∣AL⟩ 生产的足迹更小。然而,这可能导致不可接受的长时间分解。我们将在本文末尾的讨论中回到这个问题,以及物理实现的问题。
表 I. 使用 Shor 算法将 N N N 位数字分解为其质因数时,计算逻辑量子比特数与顺序和总 Toffoli 门操作数之间的权衡。表中的每一行对应实现该算法的不同量子电路。电路的物理大小与 Toffoli 门总数与顺序 Toffoli 门数之比成比例缩放。
| 计算逻辑量子比特数 | 顺序 Toffoli 门数 | 总 Toffoli 门数 | 参考文献 |
|---|---|---|---|
| 2 N 2N 2N | 40 N 3 40N^3 40N3 | 40 N 3 40N^3 40N3 | 35 |
| 5 N 5N 5N | 600 N 2 600N^2 600N2 | O ( N 3 log N ) O(N^3 \log N) O(N3logN) | 38 |
| 2 N 2 2N^2 2N2 | 15 N log 2 N 15N \log^2 N 15Nlog2N | O ( N 3 log 2 N ) O(N^3 \log^2 N) O(N3log2N) | 39 |
| O ( N 3 ) O(N^3) O(N3) | O ( log 3 N ) O(\log^3 N) O(log3N) | O ( N 3 log 3 N ) O(N^3 \log^3 N) O(N3log3N) | 40 |
II. 引言
量子计算依赖于**量子比特(qubits)**的使用,量子比特是两能级量子系统。原型的两能级系统是磁场中的电子自旋,大部分术语来源于此;电子自旋的所有量子性质都由 Pauli 算符 σ ^ x \hat{\sigma}_x σ^x, σ ^ y \hat{\sigma}_y σ^y, σ ^ z \hat{\sigma}_z σ^z 和恒等算符 I ^ \hat{I} I^ 的代数所捕获。按照量子计算文献的惯例,我们将使用量子比特算符 X ^ \hat{X} X^, Y ^ \hat{Y} Y^ 和 Z ^ \hat{Z} Z^,它们通过与 Pauli 算符的关系定义为 X ^ = σ ^ x \hat{X} = \hat{\sigma}_x X^=σ^x, Y ^ = i σ ^ y \hat{Y} = i\hat{\sigma}_y Y^=iσ^y, 和 Z ^ = σ ^ z \hat{Z} = \hat{\sigma}_z Z^=σ^z(见附录 A)。量子比特算符的代数与 Pauli 算符的代数几乎完全相同:
X ^ 2 = Y ^ 2 = Z ^ 2 = I ^ , X ^ Z ^ = − Z ^ X ^ (1) \hat{X}^2 = \hat{Y}^2 = \hat{Z}^2 = \hat{I}, \quad \hat{X}\hat{Z} = -\hat{Z}\hat{X} \tag{1} X^2=Y^2=Z^2=I^,X^Z^=−Z^X^(1)
X ^ \hat{X} X^, Y ^ \hat{Y} Y^ 和 Z ^ \hat{Z} Z^ 的循环置换满足 X ^ Y ^ = i Z ^ \hat{X}\hat{Y} = i\hat{Z} X^Y^=iZ^,其中最后一个关系对 X ^ \hat{X} X^, Y ^ \hat{Y} Y^ 和 Z ^ \hat{Z} Z^ 的循环置换成立,除了 Z \^ , X \^ = + 2 i Y ^ \\hat{Z}, \\hat{X} = +2i\hat{Y} Z\^,X\^=+2iY^。
任何满足关系 (1) 的两能级量子系统原则上都可以用作量子比特。事实上,任何可以定义满足关系 (1) 的 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 算符的系统都可以用作量子比特,即使该系统有两个以上的自由度 [4](#4)。仅仅在量子比特上拥有 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 算符是不够的,因为量子计算机还需要一些额外的单量子比特门以及一个纠缠的两量子比特门。Solovay-Kitaev 定理 2, 12 意味着一组足以实现任意量子算法的算符包括单量子比特算符 X ^ \hat{X} X^, Z ^ \hat{Z} Z^, Hadamard H ^ \hat{H} H^, S ^ \hat{S} S^ 和 S ^ † \hat{S}^\dagger S^† 相位门,以及 T ^ \hat{T} T^ 和 T ^ † \hat{T}^\dagger T^† 门,加上一个两量子比特受控非(CNOT)门(任何可以从中构造 CNOT 的两量子比特门当然也可以接受)[5](#5)。这些算符的矩阵表示在附录 A 中给出。
在表面码中,物理量子比特通过一系列物理量子比特 CNOT 操作纠缠在一起,随后对纠缠态的测量提供了纠错和错误检测的手段。以这种方式纠缠的一组物理量子比特用于定义一个逻辑量子比特(logical qubit),由于纠缠和测量,其性能远优于底层物理量子比特。我们将描述逻辑量子比特如何在表面码中构造,还将展示如何构造完整的单逻辑量子比特门集合和两逻辑量子比特 CNOT,使我们能够基于这些逻辑量子比特实现量子算法。
量子比特的 Z ^ \hat{Z} Z^ 本征态称为基态(ground state) ∣ g ⟩ |g\rangle ∣g⟩ 和激发态(excited state) ∣ e ⟩ |e\rangle ∣e⟩。基态是 Z ^ \hat{Z} Z^ 的 + 1 +1 +1 本征态,满足 Z ^ ∣ g ⟩ = + ∣ g ⟩ \hat{Z}|g\rangle = +|g\rangle Z^∣g⟩=+∣g⟩,激发态是 − 1 -1 −1 本征态,满足 Z ^ ∣ e ⟩ = − ∣ e ⟩ \hat{Z}|e\rangle = -|e\rangle Z^∣e⟩=−∣e⟩ [6](#6)。将量子比特想象成一种量子晶体管是很有诱惑力的,基态对应"关",激发态对应"开"。然而,与经典逻辑元件形成鲜明对比的是,量子比特可以存在于其本征态的叠加态(superposition)中, ∣ ψ ⟩ = α ∣ g ⟩ + β ∣ e ⟩ |\psi\rangle = \alpha|g\rangle + \beta|e\rangle ∣ψ⟩=α∣g⟩+β∣e⟩,因此量子比特可以同时处于"关"和"开"的状态。然而,对量子比特的 Z ^ \hat{Z} Z^ 测量 M Z M_Z MZ 只会返回两个可能的测量结果之一, + 1 +1 +1 且量子比特态投影到 ∣ g ⟩ |g\rangle ∣g⟩,或 − 1 -1 −1 且量子比特态投影到 ∣ e ⟩ |e\rangle ∣e⟩。量子态 furthermore 相对脆弱,容易被与外界的相互作用所扰动。这些相互作用可以是有意的,也可以来自错误、从 ∣ e ⟩ |e\rangle ∣e⟩ 到 ∣ g ⟩ |g\rangle ∣g⟩ 的能量衰减,或量子比特本征态之间能量差的波动,即量子比特跃迁频率的波动。当非有意时,这些对量子比特态的改变构成量子错误(quantum errors),是量子计算中最大的挑战之一。
量子比特错误可以通过在量子比特态演化中引入随机的 X ^ \hat{X} X^ 比特翻转和 Z ^ \hat{Z} Z^ 相位翻转算符来建模(我们注意 Y ^ \hat{Y} Y^ 算符是 Y ^ = i Z ^ X ^ \hat{Y} = i\hat{Z}\hat{X} Y^=iZ^X^ 的组合,因此是联合的比特和相位翻转)。如果这些错误很少,这些算符的振幅将相应很小。这种错误建模可以描述相当广泛的单量子比特错误;参见例如参考文献 42。
单量子比特错误的算符模型意味着这些错误原则上可以通过量子纠错门来撤销:一个错误的 Z ^ \hat{Z} Z^ 可以通过随后施加一个有意的 Z ^ \hat{Z} Z^ 来取消,因为 Z ^ 2 = I ^ \hat{Z}^2 = \hat{I} Z^2=I^。如果我们检测到所有错误,我们可以通过重复施加量子纠错门来纠正它们。然而,表面码的一个特征是错误只需要在它们影响测量结果时进行纠正,因此只需识别错误,然后纠正受这些错误影响的任何测量。这可以完全在用于控制表面码的经典系统中完成,如我们在第 IX 节中描述的。
例如,检测到的 Z ^ \hat{Z} Z^ 相位翻转错误可以通过改变任何后续 X ^ \hat{X} X^ 测量的符号来纠正,而 X ^ \hat{X} X^ 错误对相同的 X ^ \hat{X} X^ 测量没有影响;对于 X ^ \hat{X} X^ 错误,任何后续的 Z ^ \hat{Z} Z^ 测量同样需要纠正,但对于 Z ^ \hat{Z} Z^ 错误则不需要。这意味着只要错误能被及时检测到,它们就可以在经典软件中撤销。表面码的一个重要方面因此是关注**错误检测(error detection)**而非错误纠正。
由于错误来自 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 操作的随机和不可预测的出现,它们必须通过重复测量每个量子比特来检测,这可以用联合的 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 测量来完成。然而,因为 X \^ , Z \^ = 0 \\hat{X}, \\hat{Z} = 0 X\^,Z\^=0,在同一量子比特上对 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 的顺序测量相互冲突,导致量子比特态随机投影到这些算符各自的本征态上,完全破坏量子态。具体来说, Z ^ \hat{Z} Z^ 测量 M Z M_Z MZ 以概率将量子比特态投影到 ∣ g ⟩ |g\rangle ∣g⟩ 或 ∣ e ⟩ |e\rangle ∣e⟩,产生相应的 + 1 +1 +1 或 − 1 -1 −1 本征值,在此过程中完全破坏了态的振幅和相位。这再次与经典逻辑形成对比,在经典逻辑中,逻辑元件只有"关"和"开"之间的比特翻转错误,测量逻辑态不会扰动该态。
然而,如果同时测量多个量子比特,投影测量问题是可以避免的,使非破坏性量子错误检测成为可能。考虑一个两量子比特系统,量子比特 a a a 和 b b b,我们使用两量子比特算符 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 和 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 来测量。这些算符,即使它们代表单独的 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 测量,实际上是对易的:
X \^ a X \^ b , Z \^ a Z \^ b = X ^ a X ^ b Z ^ a Z ^ b − Z ^ a Z ^ b X ^ a X ^ b = 0 (2) \\hat{X}_a\\hat{X}_b, \\hat{Z}_a\\hat{Z}_b = \hat{X}_a\hat{X}_b\hat{Z}_a\hat{Z}_b - \hat{Z}_a\hat{Z}_b\hat{X}_a\hat{X}_b = 0 \tag{2} X\^aX\^b,Z\^aZ\^b=X^aX^bZ^aZ^b−Z^aZ^bX^aX^b=0(2)
我们使用了不同量子比特上的算符总是对易的事实,因此例如 X \^ a , Z \^ b = 0 \\hat{X}_a, \\hat{Z}_b = 0 X\^a,Z\^b=0。因此这些两量子比特算符的测量是兼容的,所以一个两量子比特态实际上可以同时是 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 和 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 的本征态 [7](#7)。
在表 II 中,我们展示了 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 和 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 的四个同时本征态及其相应的本征值。我们看到这些态实际上就是这个系统的四个贝尔态(Bell states) 。我们注意每个量子比特有两个自由度(忽略整体相位),因此该对有四个自由度。指定两个算符本征值,根据定义是实数,因此对量子比特施加两个约束,将系统限制在只有一个量子态。算符 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 和 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 因此构成这个两量子比特系统的完备集(complete set)。
表 II. 两量子比特算符 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 和 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 的本征态。四个本征态是该系统的贝尔态。
| Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b | X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b | ∣ ψ i ⟩ |\psi_i\rangle ∣ψi⟩ |
|---|---|---|
| + 1 +1 +1 | + 1 +1 +1 | ( ∣ g g ⟩ + ∣ e e ⟩ ) / 2 (|gg\rangle + |ee\rangle)/\sqrt{2} (∣gg⟩+∣ee⟩)/2 |
| + 1 +1 +1 | − 1 -1 −1 | ( ∣ g g ⟩ − ∣ e e ⟩ ) / 2 (|gg\rangle - |ee\rangle)/\sqrt{2} (∣gg⟩−∣ee⟩)/2 |
| − 1 -1 −1 | + 1 +1 +1 | ( ∣ g e ⟩ + ∣ e g ⟩ ) / 2 (|ge\rangle + |eg\rangle)/\sqrt{2} (∣ge⟩+∣eg⟩)/2 |
| − 1 -1 −1 | − 1 -1 −1 | ( ∣ g e ⟩ − ∣ e g ⟩ ) / 2 (|ge\rangle - |eg\rangle)/\sqrt{2} (∣ge⟩−∣eg⟩)/2 |
表 II 中的任何本征态都可以被 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 和 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 重复测量,而这些测量不会改变态。如果在一个量子比特上发生外部诱导的 X ^ \hat{X} X^ 或 Z ^ \hat{Z} Z^ 错误,那么两量子比特测量会将量子比特态投影到其他两量子比特本征态之一,测量本征值将改变,发出错误发生的信号。例如,考虑表 II 第一行中的态 ( ∣ g g ⟩ + ∣ e e ⟩ ) / 2 (|gg\rangle + |ee\rangle)/\sqrt{2} (∣gg⟩+∣ee⟩)/2 ,本征值为 ( + 1 , + 1 ) (+1, +1) (+1,+1)。在第二个量子比特上的 X ^ \hat{X} X^ 错误会将此态变换为 ( ∣ g e ⟩ + ∣ e g ⟩ ) / 2 (|ge\rangle + |eg\rangle)/\sqrt{2} (∣ge⟩+∣eg⟩)/2 ,这也是本征态,但第一个本征值变为 ( − 1 , + 1 ) (-1, +1) (−1,+1);第一个本征值的改变将发出此错误的信号。注意, X ^ a \hat{X}_a X^a 错误会产生相同的最终态和最终本征值。因此,虽然错误总是可以被检测到,但它们不能被唯一地识别:需要更复杂的系统来实现这一点,表面码就是一个例子。
Z ^ a \hat{Z}_a Z^a 错误会将 ( ∣ g g ⟩ + ∣ e e ⟩ ) / 2 (|gg\rangle + |ee\rangle)/\sqrt{2} (∣gg⟩+∣ee⟩)/2 变换为 ( ∣ g g ⟩ − ∣ e e ⟩ ) / 2 (|gg\rangle - |ee\rangle)/\sqrt{2} (∣gg⟩−∣ee⟩)/2 ,本征值为 ( + 1 , − 1 ) (+1, -1) (+1,−1),改变第二个本征值。相比之下, X ^ a \hat{X}_a X^a 错误也会产生相同的最终态和最终本征值。因此,虽然错误总是可以被检测到,但它们不能被唯一地识别:需要更复杂的系统来实现这一点,表面码就是一个例子。
算符乘积 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b 和 Z ^ a Z ^ b \hat{Z}_a\hat{Z}_b Z^aZ^b 称为稳定子(stabilizers)。稳定子在保持量子态方面非常重要:通过使用一组完备的对易稳定子重复测量量子系统,系统被迫进入所有稳定子的同时唯一本征态。可以在不扰动系统的情况下测量稳定子;当测量结果改变时,这对应于一个或多个量子比特错误,量子态被投影到不同的稳定子本征态。
III. 表面码
两量子比特稳定子示例演示了一种简单的错误检测形式。更复杂的电路可以检测和精确识别更大量子比特集合中的错误;表面码就是这样一个例子。我们在二维物理量子比特阵列上实现表面码,如图 1 所示。
(图片说明:图 1.(彩色在线)(a) 表面码的二维阵列实现。数据量子比特是空心圆( ∘ \circ ∘),测量量子比特是实心圆( ∙ \bullet ∙),测量- Z Z Z 量子比特为绿色(深色),测量- X X X 量子比特为橙色(浅色)。远离边界处,每个数据量子比特接触四个测量量子比特,每个测量量子比特接触四个数据量子比特;测量量子比特执行四端测量。在边界上,测量量子比特只接触三个数据量子比特并执行三端测量,数据量子比特接触两个或三个测量量子比特。包围阵列的实线表示阵列边界。(b) 一个表面码周期的操作几何序列(左)和量子电路(右),用于一个测量- Z Z Z 量子比特,它稳定 Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d。© 一个测量- X X X 量子比特的几何和量子电路,它稳定 X ^ a X ^ b X ^ c X ^ d \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d X^aX^bX^cX^d。测量- Z Z Z 过程中的两个恒等 I ^ \hat{I} I^ 算符,通过简单等待执行,确保测量- X X X 量子比特的时序与测量- Z Z Z 量子比特匹配,前者经历两个 Hadamard H ^ \hat{H} H^ 操作。恒等算符出现在序列的开头和结尾,减少这些步骤期间任何错误的影响。)
量子比特要么是数据量子比特(data qubits) ,由图 1a 中的空心圆表示,计算量子态存储在其中,要么是测量量子比特(measurement qubits) ,由实心圆表示。所有数据量子比特和测量量子比特必须满足量子计算的基本要求:初始化、单量子比特旋转,以及最近邻之间的两量子比特受控非(CNOT)。此外,为了执行拓扑版本的 Hadamard 变换,数据量子比特和测量量子比特必须能够交换它们的量子态(SWAP 操作)。还需要一种方法来测量每个量子比特的 X ^ \hat{X} X^ 或 Z ^ \hat{Z} Z^ 算符。
测量量子比特用于稳定和操控数据量子比特的量子态。有两种类型的测量量子比特:"测量- Z Z Z"量子比特 ,在图 1a 中着色为绿色(深色),和**"测量- X X X"量子比特**,着色为橙色(浅色);这些在表面码文献中分别称为 Z Z Z 综合征和 X X X 综合征量子比特;参见例如参考文献 20。每个数据量子比特耦合到两个测量- Z Z Z 量子比特和两个测量- X X X 量子比特,每个测量量子比特耦合到四个数据量子比特。一个测量- Z Z Z 量子比特用于强制其相邻的数据量子比特 a , b , c a, b, c a,b,c 和 d d d 进入算符乘积 Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d 的本征态:每个测量- Z Z Z 量子比特因此测量一个 Z ^ \hat{Z} Z^ 稳定子 。类似地,一个测量- X X X 量子比特强制其相邻的数据量子比特进入 X ^ a X ^ b X ^ c X ^ d \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d X^aX^bX^cX^d 的本征态,因此测量一个 X ^ \hat{X} X^ 稳定子。
IV. 表面码的静态状态
稳定化表面码的测量- Z Z Z 和测量- X X X 量子比特以非常特定的序列操作,在图 1b 和 c 中分别显示了一个完整的周期,用于单个测量- Z Z Z 和测量- X X X 量子比特。在将每个测量量子比特初始化到其基态 ∣ g ⟩ |g\rangle ∣g⟩ 后,序列的核心包括四个 CNOT 操作,随后是一个投影测量。对于测量- Z Z Z 量子比特,CNOT 以四个最近邻数据量子比特为目标,测量量子比特作为控制,投影测量产生 Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d 的本征态(见附录 B,以及 2;本征态列在表 III 中)。对于测量- X X X 量子比特,序列类似,但 CNOT 以最近邻数据量子比特为目标,使用测量量子比特作为控制,序列还包括在 CNOT 前后应用的 Hadamard,投影测量产生 X ^ a X ^ b X ^ c X ^ d \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d X^aX^bX^cX^d 的本征态。因此,在所有测量量子比特的投影测量之后,阵列中所有数据量子比特的态 ψ \psi ψ 同时满足:
\\hat{Z}_a\\hat{Z}_b\\hat{Z}_c\\hat{Z}*d \|\\psi\\rangle = \\hat{Z}* {abcd} \|\\psi\\rangle, \\quad \\hat{X}_a\\hat{X}_b\\hat{X}_c\\hat{X}*d \|\\psi\\rangle = \\hat{X}*{abcd} \|\\psi\\rangle \\tag{3}
其中本征值 Z ^ a b c d = ± 1 \hat{Z}{abcd} = \pm 1 Z^abcd=±1 和 X ^ a b c d = ± 1 \hat{X}{abcd} = \pm 1 X^abcd=±1。在一个完整的测量周期之后,周期重复 [8](#8)。
图 1b 和 c 中的所有测量量子比特以锁步方式操作,因此在整个 2D 阵列上完成图中所示周期的每个步骤后,下一步才开始。我们注意,图中所示的锯齿序列不能轻易修改,同时保持稳定子性质(见附录 B)。
表 III. 四量子比特稳定子 Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d 和 X ^ a X ^ b X ^ c X ^ d \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d X^aX^bX^cX^d 的本征态。
| Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d | X ^ a X ^ b X ^ c X ^ d \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d X^aX^bX^cX^d | 态 |
|---|---|---|
| + 1 +1 +1 | + 1 +1 +1 | $ |
| + 1 +1 +1 | − 1 -1 −1 | $ |
| − 1 -1 −1 | + 1 +1 +1 | $ |
| − 1 -1 −1 | − 1 -1 −1 | $ |
稳定子码具有一个显著的性质,即它们不是从系统基态开始运行,而是从所有稳定子同时测量的结果产生的态 ψ \psi ψ 开始运行;我们称之为静态状态(quiescent state) 。静态状态 ψ \psi ψ 是通过完成一个完整的表面码周期随机选择的,即图 1b 和 c 中显示的序列,例如从所有数据量子比特和测量量子比特都处于基态 ∣ g ⟩ |g\rangle ∣g⟩ 开始 [9](#9)。
一旦选定,在没有错误的情况下,序列的每个后续周期都会保持相同的状态 ψ \psi ψ,每个测量量子比特产生等于前一周期的测量结果 X ^ a b c d \hat{X}{abcd} X^abcd 或 Z ^ a b c d \hat{Z}{abcd} Z^abcd。这是因为所有 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 稳定子彼此对易。对于没有任何共同量子比特的稳定子,这是显然的,因为不同量子比特上的 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 算符总是对易。有共同量子比特的稳定子总是共享两个这样的量子比特,因此每个 X ^ \hat{X} X^ 稳定子与其两个相邻的 Z ^ \hat{Z} Z^ 稳定子共享两个数据量子比特,反之亦然。因此,对于测量数据量子比特 a a a 和 b b b 的共同 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 稳定子,我们有:
X \^ a X \^ b X \^ c X \^ d , Z \^ a Z \^ b Z \^ e Z \^ f = 0 (4) \\hat{X}_a\\hat{X}_b\\hat{X}_c\\hat{X}_d, \\hat{Z}_a\\hat{Z}_b\\hat{Z}_e\\hat{Z}_f = 0 \tag{4} X\^aX\^bX\^cX\^d,Z\^aZ\^bZ\^eZ\^f=0(4)
我们得到从 X ^ a \hat{X}_a X^a 通过 Z ^ a \hat{Z}_a Z^a 对易的负号,以及从 X ^ b \hat{X}_b X^b 通过 Z ^ b \hat{Z}_b Z^b 对易的另一个负号。注意这个四量子比特稳定子对易子与式 (2) 中的两量子比特稳定子示例的相似性。
静态状态的数量极其庞大:如果阵列中有 N N N 个测量量子比特,就有 2 N 2^N 2N 个测量结果。每个表面码周期结束时的测量将数据量子比特随机投影到这些静态状态之一。对于图 1 中的阵列,有 N = 38 N = 38 N=38 个测量量子比特,就有 2 38 ≈ 3 × 10 11 2^{38} \approx 3 \times 10^{11} 238≈3×1011 个可能的静态状态。我们还注意到,快速的单周期投影到静态状态意味着静态状态不是整个阵列的完全纠缠态,而是包含高度纠缠数据量子比特的局部集合,较远量子比特组之间的纠缠度较小。这在某种程度上类似于超导体的基态,Cooper 对电子在远小于超导关联长度的尺寸上强关联,在较大长度尺度上关联较弱,但仍由单个宏观序参量描述。
V. 单量子比特错误
一旦选定,静态状态仅在受到错误扰动时才会改变,例如错误的单量子比特 X ^ \hat{X} X^ 比特翻转或 Z ^ \hat{Z} Z^ 相位翻转操作。这些错误将通过测量结果的变化来指示。例如考虑一个单数据量子比特错误,由数据量子比特 a a a 上的错误 I ^ a + ϵ Z ^ a \hat{I}_a + \epsilon\hat{Z}_a I^a+ϵZ^a 表示; ∣ ϵ ∣ ≪ 1 |\epsilon| \ll 1 ∣ϵ∣≪1 是 Z ^ \hat{Z} Z^ 相位翻转的概率振幅,我们忽略归一化。此错误将波函数 ψ \psi ψ 变换为 ψ ′ = ( I ^ a + ϵ Z ^ a ) ∣ ψ ⟩ \psi' = (\hat{I}_a + \epsilon\hat{Z}_a)|\psi\rangle ψ′=(I^a+ϵZ^a)∣ψ⟩。在此错误之后,当下一个表面码测量周期完成时,态 ψ ′ \psi' ψ′ 将被投影到所有 X ^ a X ^ b X ^ c X ^ d \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d X^aX^bX^cX^d 和 Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d 算符乘积的本征态。这以接近单位的概率将 ψ ′ \psi' ψ′ 投影回原始态 ψ \psi ψ,擦除错误,或以概率 ϵ 2 \epsilon^2 ϵ2 将其投影到 Z ^ a ∣ ψ ⟩ \hat{Z}_a|\psi\rangle Z^a∣ψ⟩;后一态是所有稳定子的本征态,正如我们即将看到的。在第一种情况下,错误前后的测量结果相同,而在第二种情况下,数据量子比特 a a a 相邻的两个测量- X X X 量子比特的符号将改变。这从以下推导显而易见:
X ^ a X ^ b X ^ c X ^ d Z ^ a ∣ ψ ⟩ = − Z ^ a X ^ a X ^ b X ^ c X ^ d ∣ ψ ⟩ = − Z ^ a b c d Z ^ a ∣ ψ ⟩ (5) \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}_d \hat{Z}_a |\psi\rangle = -\hat{Z}_a \hat{X}_a\hat{X}_b\hat{X}_c\hat{X}d |\psi\rangle = -\hat{Z}{abcd} \hat{Z}_a |\psi\rangle \tag{5} X^aX^bX^cX^dZ^a∣ψ⟩=−Z^aX^aX^bX^cX^d∣ψ⟩=−Z^abcdZ^a∣ψ⟩(5)
(回想 X ^ a b c d \hat{X}_{abcd} X^abcd 是测量- X X X 量子比特的测量结果)。这表明 Z ^ a ∣ ψ ⟩ \hat{Z}_a|\psi\rangle Z^a∣ψ⟩ 是此 X ^ \hat{X} X^ 稳定子的本征态,但符号与 ψ \psi ψ 相反。同样的结果适用于 a a a 相邻的另一个测量- X X X 量子比特: Z ^ a ∣ ψ ⟩ \hat{Z}_a|\psi\rangle Z^a∣ψ⟩ 是该稳定子的本征态,与 ψ \psi ψ 相比符号相反。数据量子比特错误不会改变两个相邻测量- Z Z Z 量子比特的结果,因为 Z ^ \hat{Z} Z^ 算符全部对易: Z \^ a Z \^ b Z \^ c Z \^ d , Z \^ a = 0 \\hat{Z}_a\\hat{Z}_b\\hat{Z}_c\\hat{Z}_d, \\hat{Z}_a = 0 Z\^aZ\^bZ\^cZ\^d,Z\^a=0。就静态状态而言:
Z ^ a Z ^ b Z ^ c Z ^ d Z ^ a ∣ ψ ⟩ = Z ^ a Z ^ a Z ^ b Z ^ c Z ^ d ∣ ψ ⟩ = Z ^ a b c d Z ^ a ∣ ψ ⟩ (6) \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d \hat{Z}_a |\psi\rangle = \hat{Z}_a \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}d |\psi\rangle = \hat{Z}{abcd} \hat{Z}_a |\psi\rangle \tag{6} Z^aZ^bZ^cZ^dZ^a∣ψ⟩=Z^aZ^aZ^bZ^cZ^d∣ψ⟩=Z^abcdZ^a∣ψ⟩(6)
再次是一个本征态,但符号不变。因此,在这第二种情况下,由测量结果报告的错误是 ψ Z = Z ^ a ∣ ψ ⟩ \psi_Z = \hat{Z}_a|\psi\rangle ψZ=Z^a∣ψ⟩,这是阵列中所有稳定子的不同本征态。
Z ^ a \hat{Z}_a Z^a 错误导致 a a a 相邻的两个测量- X X X 量子比特的测量结果符号改变,使我们能够检测和定位相位翻转错误。我们可以然后对该量子比特施加第二个 Z ^ a \hat{Z}_a Z^a 算符来纠正错误(使用 Z ^ a 2 = I ^ a \hat{Z}_a^2 = \hat{I}_a Z^a2=I^a);然而这不能 100% 保真地施加,因此这可能向表面码态引入更多错误。更安全的方法是在软件中处理这个相位翻转错误,通过记录相位翻转错误发生在哪个量子比特上。经典控制软件只需改变该数据量子比特两个相邻测量- X X X 量子比特的每次后续测量的符号,从而纠正错误的影响。两个相邻的测量- Z Z Z 量子比特不受错误影响,因此它们的测量结果不需要纠正。比特和相位翻转错误都以这种方式处理,比特翻转错误通过改变受影响量子比特相邻测量- Z Z Z 量子比特的符号来纠正,测量- X X X 结果不变。第二个比特翻转错误会取消第一个比特翻转错误,第二个相位翻转错误会取消第一个相位翻转错误,任何测量纠正都会随之结束。
错误检测要求我们定位和识别错误。单个数据量子比特 Z ^ \hat{Z} Z^ 错误由受影响数据量子比特相邻的两个测量- X X X 量子比特的测量结果变化发出信号,变化发生在一个表面码周期内。单量子比特 X ^ a \hat{X}_a X^a 错误,投影到态 X ^ a ∣ ψ ⟩ \hat{X}_a|\psi\rangle X^a∣ψ⟩,将在相邻数据量子比特的两个测量- Z Z Z 结果中产生符号变化,而两个相邻测量- X X X 结果不变。 Y ^ a = Z ^ a X ^ a \hat{Y}_a = \hat{Z}_a\hat{X}_a Y^a=Z^aX^a 错误,投影到本征态 Z ^ a X ^ a ∣ ψ ⟩ \hat{Z}_a\hat{X}_a|\psi\rangle Z^aX^a∣ψ⟩,将在相邻的测量- X X X 和测量- Z Z Z 量子比特中都发出符号变化的信号。这些错误类型及其相关信号如图 2 所示。一旦这样的错误发生,投影测量产生的态再次成为静态状态,与原始 ψ \psi ψ 的差异由测量结果报告。
测量过程中本身发生的错误也必须考虑;一个这样的错误将只产生该测量量子比特的符号变化。在下一个周期,这个测量错误可能会消失,因此这个错误通常由单个测量量子比特上连续两次测量变化的信号来表示。注意测量错误当然可能在后续测量中再次发生,概率较低,在接下来的测量中概率更低,依此类推。因此,确定特定测量的值需要几个表面码周期,以便捕获单次以及连续的测量错误。
测量错误的信号,因为它通常孤立在单个测量量子比特上,与数据量子比特错误的信号不同,后者由两个或多个空间上分离的测量报告。
VI. 逻辑算符
如何在表面码中执行量子逻辑?看起来表面码完全稳定了二维阵列,因此它将量子系统锁定在特定状态,就像我们之前的两量子比特示例一样。然而,表面码稳定子集合实际上并不总是完备的,因此阵列可以有额外的自由度。这些额外的自由度可用于定义逻辑算符(logical operators),这是定义逻辑量子比特的第一步。
我们可以通过考虑图 3 所示的小二维阵列来看到这一点。这个阵列用两种类型的边界绘制,右边和左边以测量- X X X 量子比特终止,我们称之为 X X X 边界 ,顶部和底部以测量- Z Z Z 量子比特终止,我们称之为 Z Z Z 边界 。 X X X 边界在表面码文献中称为平滑边界(smooth boundaries) ,而 Z Z Z 边界称为粗糙边界(rough boundaries)20。
如果计算阵列中数据量子比特和测量量子比特的数量,我们发现 41 个数据量子比特和 40 个测量量子比特,因此数据量子比特有 2 × 41 2 \times 41 2×41 个自由度,稳定子测量有 2 × 40 2 \times 40 2×40 个约束(每个测量是实值的,因此因子为二)。此阵列中的稳定子都是线性独立的,没有稳定子可以写成其他稳定子的乘积 [10](#10)。这两个不受约束的自由度表明这个小阵列可以作为一个(单个)逻辑量子比特;我们仍然需要定义操控这些自由度的逻辑算符。
我们如何找到允许我们操控阵列中额外自由度而不影响稳定子的算符?一个线索由稳定子测量对易是因为稳定子共享成对数据量子比特这一事实提供。如果我们将数据量子比特上的操作配对,我们可以创建与稳定子对易的多量子比特算符乘积;这就是我们构建逻辑算符 的方法,我们将它们记为 X ^ L \hat{X}_L X^L 和 Z ^ L \hat{Z}_L Z^L。
我们提醒读者,单个数据量子比特 X ^ \hat{X} X^ 操作改变数据量子比特两侧测量- Z Z Z 结果。然而考虑两个同时的 X ^ \hat{X} X^ 操作,分别在都邻接一个测量- Z Z Z 量子比特的数据量子比特 a a a 和 b b b 上。那么我们有:
Z ^ a Z ^ b Z ^ c Z ^ d X ^ a X ^ b ∣ ψ ⟩ = ( − 1 ) 2 X ^ a X ^ b Z ^ a Z ^ b Z ^ c Z ^ d ∣ ψ ⟩ = Z ^ a b c d X ^ a X ^ b ∣ ψ ⟩ (7) \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d \hat{X}_a\hat{X}_b |\psi\rangle = (-1)^2 \hat{X}_a\hat{X}_b \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}d |\psi\rangle = \hat{Z}{abcd} \hat{X}_a\hat{X}_b |\psi\rangle \tag{7} Z^aZ^bZ^cZ^dX^aX^b∣ψ⟩=(−1)2X^aX^bZ^aZ^bZ^cZ^d∣ψ⟩=Z^abcdX^aX^b∣ψ⟩(7)
换句话说,两个 X ^ \hat{X} X^ 操作的乘积与单个 Z ^ \hat{Z} Z^ 稳定子对易: Z \^ a Z \^ b Z \^ c Z \^ d , X \^ a X \^ b = 0 \\hat{Z}_a\\hat{Z}_b\\hat{Z}_c\\hat{Z}_d, \\hat{X}_a\\hat{X}_b = 0 Z\^aZ\^bZ\^cZ\^d,X\^aX\^b=0。现在考虑图 3,特别是左边界上的操作 X ^ 1 \hat{X}_1 X^1。此操作被右侧的测量- Z Z Z 量子比特检测到,但我们可以同时在那个测量- Z Z Z 的另一侧对数据量子比特执行 X ^ 2 \hat{X}_2 X^2 操作。第一个 Z ^ \hat{Z} Z^ 稳定子现在与这两个操作的乘积对易,但 X ^ 2 \hat{X}_2 X^2 右侧的测量量子比特仍然报告变化;因此我们向集合中添加第三个操作 X ^ 3 \hat{X}_3 X^3,依此类推,直到我们创建了一个连接阵列左右两侧 X X X 边界的并发 X ^ \hat{X} X^ 操作乘积 X ^ L = X ^ 1 X ^ 2 X ^ 3 X ^ 4 X ^ 5 \hat{X}_L = \hat{X}_1\hat{X}_2\hat{X}_3\hat{X}_4\hat{X}_5 X^L=X^1X^2X^3X^4X^5。每个测量- Z Z Z 量子比特现在与出现在 X ^ L \hat{X}_L X^L 算符中的数据量子比特对相互作用,因此根据构造,乘积链 X ^ L \hat{X}_L X^L 与所有 Z ^ \hat{Z} Z^ 稳定子(在阵列中)对易。如果 X ^ L \hat{X}_L X^L 真正与所有稳定子对易,当应用于静态状态时,它生成的新静态状态 ψ X = X ^ L ∣ ψ ⟩ \psi_X = \hat{X}_L|\psi\rangle ψX=X^L∣ψ⟩ 与 ψ \psi ψ 有相同的测量结果。状态 ψ X \psi_X ψX 显然不同于 ψ \psi ψ,因为我们翻转了五个数据量子比特,且由于 X ^ L \hat{X}_L X^L 不能写成稳定子的乘积, ψ X \psi_X ψX 与 ψ \psi ψ 不是平凡相关的; X ^ L \hat{X}_L X^L 因此操控阵列中的一个自由度。
阵列中的另一个自由度可以通过构建完全类似的 Z ^ \hat{Z} Z^ 数据量子比特操作乘积来操控:我们再次构建跨越整个阵列的操作链,且必须起止于 Z Z Z 边界(而非 X ^ \hat{X} X^ 链两端的 X X X 边界)。这样一个链的例子是图 3 中的 Z ^ L = Z ^ 6 Z ^ 7 Z ^ 3 Z ^ 8 Z ^ 9 \hat{Z}_L = \hat{Z}_6\hat{Z}_7\hat{Z}_3\hat{Z}_8\hat{Z}_9 Z^L=Z^6Z^7Z^3Z^8Z^9。此 Z ^ L \hat{Z}_L Z^L 算符链与阵列中的所有稳定子对易,因此当作用于静态状态时,生成具有与 ψ \psi ψ 相同测量结果的新静态状态 ψ Z = Z ^ L ∣ ψ ⟩ \psi_Z = \hat{Z}_L|\psi\rangle ψZ=Z^L∣ψ⟩。状态 ψ Z \psi_Z ψZ 显然不同于 ψ \psi ψ,且由于 Z ^ L \hat{Z}_L Z^L 不能写成稳定子的乘积, ψ Z \psi_Z ψZ 与 ψ \psi ψ 不是平凡相关的; Z ^ L \hat{Z}_L Z^L 因此操控阵列中的第二个自由度。
我们下面展示 X ^ L \hat{X}_L X^L 和 Z ^ L \hat{Z}_L Z^L 不对易,因此它们操控两个独立的自由度,就像物理量子比特一样。
看起来我们可以选择其他单量子比特算符乘积链来定义不同的 X ^ L \hat{X}_L X^L 或 Z ^ L \hat{Z}L Z^L 算符。例如考虑链 X ^ L ′ = X ^ 1 X ^ 10 X ^ 11 X ^ 12 X ^ 3 X ^ 4 X ^ 5 \hat{X}'L = \hat{X}1\hat{X}{10}\hat{X}{11}\hat{X}{12}\hat{X}_3\hat{X}_4\hat{X}_5 X^L′=X^1X^10X^11X^12X^3X^4X^5。此 X ^ \hat{X} X^ 算符链满足与 X ^ L \hat{X}_L X^L 相同的条件,因为 X ^ \hat{X} X^ 数据量子比特算符被配对以包围每个测量- Z Z Z 量子比特。因此 X ^ L ′ \hat{X}'L X^L′ 与所有稳定子对易,并将生成具有与 ψ \psi ψ 和 ψ X \psi_X ψX 相同测量结果的静态状态 ψ X ′ = X ^ L ′ ∣ ψ ⟩ \psi{X'} = \hat{X}'L|\psi\rangle ψX′=X^L′∣ψ⟩。然而状态 ψ X ′ \psi{X'} ψX′ 实际上与 ψ X \psi_X ψX 线性相关:首先,注意我们可以操纵 X ^ L ′ \hat{X}'_L X^L′ 中出现的算符集合:
X ^ L ′ = X ^ 1 X ^ 10 X ^ 11 X ^ 12 X ^ 3 X ^ 4 X ^ 5 = ( X ^ 2 X ^ 10 X ^ 11 X ^ 12 ) ( X ^ 1 X ^ 2 X ^ 3 X ^ 4 X ^ 5 ) = ( X ^ 2 X ^ 10 X ^ 11 X ^ 12 ) X ^ L (8) \hat{X}'L = \hat{X}1\hat{X}{10}\hat{X}{11}\hat{X}_{12}\hat{X}_3\hat{X}4\hat{X}5 = (\hat{X}2\hat{X}{10}\hat{X}{11}\hat{X}{12})(\hat{X}_1\hat{X}_2\hat{X}_3\hat{X}4\hat{X}5) = (\hat{X}2\hat{X}{10}\hat{X}{11}\hat{X}{12}) \hat{X}_L \tag{8} X^L′=X^1X^10X^11X^12X^3X^4X^5=(X^2X^10X^11X^12)(X^1X^2X^3X^4X^5)=(X^2X^10X^11X^12)X^L(8)
其中我们从式 (8) 的第一行到第二行使用了 X ^ 2 2 = I ^ \hat{X}_2^2 = \hat{I} X^22=I^。现在,式 (8) 第三行括号中的算符乘积正是图 3 中用黑色轮廓勾勒的稳定子:换句话说,我们只是将 X ^ L \hat{X}_L X^L 乘以被表面码稳定到 ± 1 \pm 1 ±1 本征值的算符乘积。如果我们在静态状态 ψ \psi ψ 上操作 X ^ L ′ \hat{X}'_L X^L′,我们可以简单地用这个本征值替换此算符乘积:
X ^ L ′ ∣ ψ ⟩ = X ^ 2 , 10 , 11 , 12 X ^ L ∣ ψ ⟩ = ± X ^ L ∣ ψ ⟩ = ± ∣ ψ X ⟩ (9) \hat{X}'L |\psi\rangle = \hat{X}{2,10,11,12} \hat{X}_L |\psi\rangle = \pm \hat{X}_L |\psi\rangle = \pm |\psi_X\rangle \tag{9} X^L′∣ψ⟩=X^2,10,11,12X^L∣ψ⟩=±X^L∣ψ⟩=±∣ψX⟩(9)
其中 X ^ 2 , 10 , 11 , 12 = ± 1 \hat{X}{2,10,11,12} = \pm 1 X^2,10,11,12=±1 是稳定子 X ^ 2 X ^ 10 X ^ 11 X ^ 12 \hat{X}2\hat{X}{10}\hat{X}{11}\hat{X}_{12} X^2X^10X^11X^12 的测量结果。这适用于任何可以写成稳定化算符乘积乘以 X ^ L \hat{X}_L X^L 的 X ^ L ′ \hat{X}'_L X^L′ 链。事实上,任何跨越图 3 阵列的 X ^ L ′ \hat{X}'_L X^L′ 链都可以写成 X ^ L \hat{X}_L X^L 乘以 X ^ \hat{X} X^ 稳定子的乘积,这很容易验证。因此这个阵列只有一个线性独立的 X ^ L \hat{X}_L X^L 算符。
Z ^ \hat{Z} Z^ 算符的同样论证:任何这样的算符等于原始 Z ^ L \hat{Z}_L Z^L 乘以 Z ^ \hat{Z} Z^ 稳定子的乘积,因此任何 Z ^ L ′ \hat{Z}'_L Z^L′ 与由 Z ^ L \hat{Z}_L Z^L 操控的自由度线性相关,最多相差 ± 1 \pm 1 ±1。我们现在展示两个算符 X ^ L \hat{X}_L X^L 和 Z ^ L \hat{Z}_L Z^L 满足式 (1) 中的关键反对易关系。我们有:
X ^ L Z ^ L = X ^ 1 X ^ 2 X ^ 3 X ^ 4 X ^ 5 Z ^ 6 Z ^ 7 Z ^ 3 Z ^ 8 Z ^ 9 = X ^ 3 Z ^ 3 X ^ 1 X ^ 2 X ^ 4 X ^ 5 Z ^ 6 Z ^ 7 Z ^ 8 Z ^ 9 = − Z ^ 3 X ^ 3 ( ⋯ ) = − Z ^ L X ^ L (10) \hat{X}_L \hat{Z}_L = \hat{X}_1\hat{X}_2\hat{X}_3\hat{X}_4\hat{X}_5 \hat{Z}_6\hat{Z}_7\hat{Z}_3\hat{Z}_8\hat{Z}_9 = \hat{X}_3\hat{Z}_3 \hat{X}_1\hat{X}_2\hat{X}_4\hat{X}_5 \hat{Z}_6\hat{Z}_7\hat{Z}_8\hat{Z}_9 = -\hat{Z}_3\hat{X}_3 (\cdots) = -\hat{Z}_L \hat{X}_L \tag{10} X^LZ^L=X^1X^2X^3X^4X^5Z^6Z^7Z^3Z^8Z^9=X^3Z^3X^1X^2X^4X^5Z^6Z^7Z^8Z^9=−Z^3X^3(⋯)=−Z^LX^L(10)
其中所有单量子比特操作都在不同量子比特上,因此对易,除了 X ^ 3 \hat{X}_3 X^3 和 Z ^ 3 \hat{Z}_3 Z^3 反对易, X ^ 3 Z ^ 3 = − Z ^ 3 X ^ 3 \hat{X}_3\hat{Z}_3 = -\hat{Z}_3\hat{X}_3 X^3Z^3=−Z^3X^3。这使得 X ^ L \hat{X}_L X^L 和 Z ^ L \hat{Z}_L Z^L 反对易。逻辑算符 X ^ L \hat{X}_L X^L 和 Z ^ L \hat{Z}_L Z^L 因此具有与物理量子比特算符 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 完全相同的对易关系。你可以展示 X ^ L 2 = Z ^ L 2 = I ^ \hat{X}_L^2 = \hat{Z}_L^2 = \hat{I} X^L2=Z^L2=I^。我们还可以构造逻辑算符 Y ^ L = Z ^ L X ^ L \hat{Y}_L = \hat{Z}_L \hat{X}_L Y^L=Z^LX^L,包含 Z ^ \hat{Z} Z^ 和 X ^ \hat{X} X^ 的两条链。
VII. 错误检测
既然我们能够构造表面码逻辑算符,我们再次转向表面码中错误的考虑。我们在这里考虑的错误是在物理量子比特上,要么是数据量子比特,要么是测量量子比特。错误由单量子比特错误(错误的 X ^ \hat{X} X^, Y ^ \hat{Y} Y^ 或 Z ^ \hat{Z} Z^ 操作)、测量错误(报告错误结果并投影到错误态)、初始化错误(将量子比特设置到错误态)、Hadamard 错误(执行 Hadamard 但额外执行错误的 X ^ \hat{X} X^, Y ^ \hat{Y} Y^ 或 Z ^ \hat{Z} Z^)以及 CNOT 错误引起。当然,这些类型的单个错误最有可能发生,但串联错误也可能发生,例如两个、三个或更多相邻数据量子比特在一个表面码周期内遭受 X ^ \hat{X} X^ 错误,形成所谓的错误链(error chains)。
表面码可以处理所有这些错误,只要每个表面码周期发生的错误可以被识别(即解码哪个特定错误发生在哪个特定量子比特上)[11](#11)。一旦识别,这些错误可以被跟踪,信息用于使用经典控制软件纠正任何后续测量结果。Edmonds 的**最小权重完美匹配(minimum-weight perfect matching)**算法 43, 44 提供了一种自动化的方法来实现这一点,对于足够稀疏的错误工作完美,但随着错误密度增加和错误链长度增加而开始失效。使用这种算法的数值模拟因此可以提供表面码对不同错误类型容忍度的估计。图 4 显示了一个这样的模拟结果,展示了算法在尝试识别错误源时出错的比例,即它错误识别特定错误报告的来源,显示为 P L P_L PL,每个表面码周期出现在阵列中任何位置的 X ^ \hat{X} X^ 错误数 [12](#12)。此错误率作为每步错误率 p p p 的函数绘制。
P L P_L PL 与 p p p 之间的关系非常强地依赖于一个非常重要的数,阵列大小 d d d ,我们也称之为阵列的距离(distance) : d d d 是定义 X ^ L \hat{X}_L X^L 或 Z ^ L \hat{Z}_L Z^L 算符所需的物理量子比特比特翻转或相位翻转的最小数量。例如在图 3 中,我们需要最少五个物理算符来定义一个逻辑算符,因此该阵列的距离为 d = 5 d = 5 d=5。在距离 d = 55 d = 55 d=55 时,图 4 模拟中出现的最大等效阵列在水平和垂直方向上都有 55 个数据量子比特。
(图片说明:图 4. 在距离 d = 5 , 10 , 15 , ... , 55 d = 5, 10, 15, \ldots, 55 d=5,10,15,...,55 的阵列上,使用 10 6 10^6 106 次运行,对独立 X ^ \hat{X} X^ 和 Z ^ \hat{Z} Z^ 错误进行表面码错误检测模拟。显示了错误检测失败概率 P L P_L PL 作为每步物理错误概率 p p p 的函数。 p p p 的阈值约为 1%。显示了 p = 0.1 % p = 0.1\% p=0.1% 和 p = 1 % p = 1\% p=1% 的垂直虚线。)
VIII. 创建逻辑量子比特
到目前为止,我们只展示了如何在阵列中定义单个逻辑量子比特;稍后我们将展示如何在阵列中制造更多的逻辑量子比特,这是通过在阵列中创建更多的自由度来完成的。我们创建的每个逻辑量子比特将使 q L q_L qL 的逻辑希尔伯特空间增加两倍,并同时使 Q Q Q 的稳定子希尔伯特空间减少两倍。有 2 n 2n 2n 个逻辑量子比特, ∣ q L ⟩ |q_L\rangle ∣qL⟩ 的希尔伯特空间维度为 2 2 n 2^{2n} 22n。
到目前为止,我们只展示了如何在阵列中定义单个逻辑量子比特;我们还需要展示如何在表面码阵列中创建 逻辑量子比特。创建逻辑量子比特的标准方法是在阵列中引入一个缺陷(defect),即一个其稳定子不被测量的区域。最简单的方法是关闭测量量子比特,停止其测量周期。当测量量子比特被停用时,其四个相邻的数据量子比特不再被该稳定子约束,获得一个自由度。
为了理解这一点,考虑停用单个测量- Z Z Z 量子比特。该测量量子比特对应的稳定子 Z ^ a Z ^ b Z ^ c Z ^ d \hat{Z}_a\hat{Z}_b\hat{Z}_c\hat{Z}_d Z^aZ^bZ^cZ^d 不再被测量,因此这四个数据量子比特不再受此约束。然而,这四个数据量子比特仍然参与其他稳定子的测量(因为它们每个还邻接其他三个测量量子比特)。停用单个测量量子比特释放的自由度不足以创建完整的逻辑量子比特;我们需要停用一个区域的测量量子比特来创建一个有用的缺陷。
更具体地说,要创建一个**双缺陷(double defect)**逻辑量子比特,我们需要在阵列中创建两个分离的缺陷区域。每个缺陷通过停用多个测量量子比特形成。两个缺陷之间的路径定义了逻辑算符。这是表面码中创建逻辑量子比特的标准方法。
缺陷可以有两种类型:X X X 缺陷 (通过停用测量- Z Z Z 量子比特创建)和** Z Z Z 缺陷**(通过停用测量- X X X 量子比特创建)。
一个双缺陷逻辑量子比特由两个相同类型的缺陷组成。例如,两个 Z Z Z 缺陷定义一个逻辑量子比特,其逻辑 Z ^ L \hat{Z}_L Z^L 算符是连接两个缺陷的 Z ^ \hat{Z} Z^ 算符链,逻辑 X ^ L \hat{X}_L X^L 算符是环绕其中一个(或两个)缺陷的 X ^ \hat{X} X^ 算符环。
(图片说明:图 5.(彩色在线)在表面码阵列中创建的逻辑量子比特。(a) 两个 Z Z Z 缺陷(通过停用测量- Z Z Z 量子比特创建)定义一个逻辑量子比特。逻辑 Z ^ L \hat{Z}_L Z^L 算符是连接两个缺陷的 Z ^ \hat{Z} Z^ 算符链(粗线),逻辑 X ^ L \hat{X}_L X^L 是环绕一个缺陷的 X ^ \hat{X} X^ 算符环。(b) 通过移动缺陷的边界来移动缺陷。© 通过扩展和收缩缺陷来移动缺陷。)
IX. 软件实现的控制
操作基于表面码的量子计算机需要经典控制系统对物理量子比特进行密切监控和控制。这个经典控制系统执行以下关键任务:
- 测量处理:收集每个表面码周期的所有测量结果。
- 错误检测:比较当前和前一周期的测量结果,识别变化的测量结果(综合征)。
- 错误解码:使用最小权重完美匹配(MWPM)算法确定最可能的错误链。
- 逻辑跟踪:跟踪检测到的错误对逻辑算符的影响。
- 逻辑操作:根据量子算法的要求,实施逻辑量子比特的操作。
这些任务大多可以在经典软件中实现,使表面码具有很强的灵活性。经典处理的速度是限制逻辑门时间的关键因素之一。
X. 逻辑量子比特的初始化和测量
为了使用逻辑量子比特进行量子计算,我们需要能够初始化逻辑量子比特到已知状态,并在计算结束时测量逻辑量子比特的状态。
逻辑初始化
逻辑量子比特可以通过以下方式初始化到已知状态:
-
∣ g L ⟩ |g_L\rangle ∣gL⟩ 态初始化 :将逻辑量子比特初始化到 Z ^ L \hat{Z}_L Z^L 的 + 1 +1 +1 本征态。这可以通过确保所有物理数据量子比特都处于 ∣ g ⟩ |g\rangle ∣g⟩ 态,然后执行正常的表面码周期来实现。稳定子测量将阵列投影到一个静态状态,这将是 Z ^ L \hat{Z}_L Z^L 的 + 1 +1 +1 本征态之一。
-
∣ e L ⟩ |e_L\rangle ∣eL⟩ 态初始化 :类似地,可以通过首先将适当的物理量子比特设置为 ∣ e ⟩ |e\rangle ∣e⟩ 态来初始化到 Z ^ L \hat{Z}_L Z^L 的 − 1 -1 −1 本征态。
-
∣ + L ⟩ |+_L\rangle ∣+L⟩ 态初始化 : X ^ L \hat{X}_L X^L 的 + 1 +1 +1 本征态可以通过在 ∣ g L ⟩ |g_L\rangle ∣gL⟩ 态上执行逻辑 Hadamard 来获得。
逻辑测量
逻辑量子比特的测量通过测量缺陷来实现:
-
Z ^ L \hat{Z}_L Z^L 测量 :通过将两个缺陷拉远到边界并测量它们之间的 Z ^ \hat{Z} Z^ 链来实现。或者,通过创建一个连接缺陷和 Z Z Z 边界的 Z ^ \hat{Z} Z^ 链,然后测量该链上的物理量子比特。
-
X ^ L \hat{X}_L X^L 测量 :通过创建一个环绕缺陷的 X ^ \hat{X} X^ 环,然后测量该环上的物理量子比特来实现。
逻辑测量的结果给出了逻辑算符的本征值,从而确定了逻辑量子比特的状态。
XI. 稳定子操作期间的错误
在稳定子测量操作期间发生的错误需要特别考虑。CNOT 门本身可能引入错误,这些错误会传播到多个量子比特。例如,CNOT 门中的控制位错误会传播到目标位,而目标位错误则不会传播到控制位。
考虑一个 CNOT 门,控制位为 c c c,目标位为 t t t:
- 控制位上的 X ^ \hat{X} X^ 错误:传播到目标位,因此两者都有 X ^ \hat{X} X^ 错误。
- 目标位上的 X ^ \hat{X} X^ 错误:不传播,只影响目标位。
- 控制位上的 Z ^ \hat{Z} Z^ 错误:不传播,只影响控制位。
- 目标位上的 Z ^ \hat{Z} Z^ 错误:传播到控制位,因此两者都有 Z ^ \hat{Z} Z^ 错误。
这种不对称的错误传播意味着 CNOT 错误会在综合征图中产生特定的模式,解码器必须能够识别这些模式。
在表面码中,CNOT 序列的时序(图 1b 和 c)被精心设计以最小化错误传播的影响。特别是,测量- Z Z Z 和测量- X X X 量子比特的 CNOT 序列是不同的,这确保了错误不会轻易地沿着阵列传播。
XII. 更大的逻辑量子比特
我们可以通过增加缺陷之间的距离来创建更大的逻辑量子比特。更大的逻辑量子比特具有更好的容错性,因为需要更多的物理错误才能引起逻辑错误。
逻辑量子比特的距离 d d d 是定义 X ^ L \hat{X}_L X^L 或 Z ^ L \hat{Z}_L Z^L 算符所需的最少物理量子比特操作数。对于双缺陷逻辑量子比特,距离由两个缺陷之间的最短路径决定。
随着距离 d d d 的增加,逻辑错误率 P L P_L PL 呈指数下降:
P L ∼ ( p p t h ) d / 2 (11) P_L \sim \left(\frac{p}{p_{th}}\right)^{d/2} \tag{11} PL∼(pthp)d/2(11)
其中 p p p 是物理错误率, p t h p_{th} pth 是阈值错误率(约 1%)。
这意味着,要将逻辑错误率降低一个数量级,大约需要将距离增加 2。
-
此数强烈依赖于物理量子比特上发生错误的速率。 ↩︎
-
Toffoli 门是一个三量子比特门,两个控制位决定一个目标位的结果。Toffoli 可以描述为"受控受控非":如果两个控制都为"真",目标被翻转,"假" → \to →"真"或"真" → \to →"假",否则目标不变。这个可逆门可以使用两量子比特受控非和单量子比特门的组合在量子逻辑中实现,并可用于构造任何算术操作。Toffoli 是实现 Shor 算法所必需的;参见参考文献 1, 2。 ↩︎
-
我们详细研究这个电路,因为它有最小的足迹,尽管分解时间最长。 ↩︎
-
注意我们将量子比特定义为有两个实自由度。 ↩︎
-
注意这不是一个最小集合,即 T ^ \hat{T} T^, H ^ \hat{H} H^ 和 CNOT,因为我们有恒等式 T ^ 2 = S ^ \hat{T}^2 = \hat{S} T^2=S^, T ^ 4 = Z ^ \hat{T}^4 = \hat{Z} T^4=Z^, H ^ Z ^ H ^ = X ^ \hat{H}\hat{Z}\hat{H} = \hat{X} H^Z^H^=X^, Z ^ S ^ = S ^ † \hat{Z}\hat{S} = \hat{S}^\dagger Z^S^=S^†, 和 T ^ 7 = T ^ † \hat{T}^7 = \hat{T}^\dagger T^7=T^†。 ↩︎
-
通常 Z ^ \hat{Z} Z^ 作为能量量子化轴,由此得名;基态相对于激发态的较大本征值是因为哈密顿量正比于 − Z ^ -\hat{Z} −Z^。 ↩︎
-
细心的读者可能对我们的符号感到困惑:当我们使用诸如 X ^ Z ^ \hat{X}\hat{Z} X^Z^ 的量子比特算符乘积而没有算符上的下标时,两个算符作用于同一个量子比特;每个算符的 2 × 2 2 \times 2 2×2 矩阵表示相乘给出乘积的 2 × 2 2 \times 2 2×2 矩阵表示。当我们有下标时,例如 X ^ a X ^ b \hat{X}_a\hat{X}_b X^aX^b,算符作用于不同的量子比特,因此形式上我们应该将其写为张量积 X ^ a ⊗ X ^ b \hat{X}_a \otimes \hat{X}_b X^a⊗X^b;矩阵表示是两个 2 × 2 2 \times 2 2×2 表示的外积形成的 4 × 4 4 \times 4 4×4 矩阵。 ↩︎
-
大写罗马字母带"帽子",例如 X ^ \hat{X} X^,表示算符,而大写罗马字母本身, X X X,表示该算符的测量结果,必须是该算符的本征值。 ↩︎
-
注意这对阵列内部和边界上的量子比特都成立。 ↩︎
-
这对几乎所有阵列都成立:有 N N N 个测量量子比特,就有 2 N 2^N 2N 个线性独立的约束加在阵列波函数 ψ \psi ψ 上。两个例外是唯一具有 X X X 边界或唯一具有 Z Z Z 边界的阵列。在这些情况下,其中一个 X ^ \hat{X} X^( Z ^ \hat{Z} Z^)稳定子可以写成所有其他 X ^ \hat{X} X^( Z ^ \hat{Z} Z^)稳定子的乘积。由于所有稳定子都对易,这反过来意味着这一个稳定子不施加额外的约束,因此有 N N N 个测量量子比特时只有 2 N − 2 2N-2 2N−2 个约束。然而,在这些阵列中只有 N − 1 N-1 N−1 个数据量子比特,因此在这种情况下静态状态完全由稳定子确定,没有额外的自由度。 ↩︎
-
当然,多个错误的组合也可能产生相同的症状。 ↩︎
-
注意我们只显示 X ^ \hat{X} X^ 错误的结果,因为 Z ^ \hat{Z} Z^ 错误的表现方式相同。 ↩︎