量子纠错最强大的应用,不仅仅是用来保护存储或传递的量子信息,更用来保护计算中动态变化的量子信息。一个非常了不起的事实是,即使逻辑门是有珢疵的,只要每个逻辑门的错误概率低于某个阈值,那么原则上任意精确的量子计算都可以被实现。
在接下来几节,我们将介绍容错量子计算的技术,正是它们实现了上述的非凡成就。具体地,在 10.6.1 节,我们先描述一个宏观的图景,然后在 10.6.2节和10.6.3节将详细介绍容错量子计算的各种技术细节,最后在 10.6 .4 节做一个总结,一方面介绍容错量子计算构造的一些局限,同时也讨论它可能的拓展。值得注意的是,容错量子计算很多微妙的细节超出了我们讨论的范围,有兴趣的读者可以参考章末的"背景资料与延伸阅读"做进一步的了解。
容错量子计算理论,融合了许多不同的想法,最终将给出阈值条件。我们现在依次介绍这些想法。首先,我们将介绍基于编码后数据的计算,在这里一个基本问题是由于错误的传播和错误的积累,编码后数据上执行的计算所对应的量子电路必须要满足某些容错计算的准则。接着,我们将介绍量子电路的基本噪声模型。通过容错受控非门这个容错操作的具体例子,我们将解释如何阻止错误的传递和积累。最后,我们将介绍如何通过将容错操作与编码级联的技术结合起来,最终得到量子计算的阈值定理,同时我们也会对阈值做一个简单估计。
容错量子计算的基本想法是,在合理编码后的量子态上直接进行量子计算,以至于完全不需要做解码操作。假设我们有一个图 10-18 所示的简单量子电路,但不幸的是噪声影响着这个电路的每一个元件,包括量子态的制备,量子逻辑门,对输出的测量,甚至量子信息在电路中的简单传递。为了对抗噪声的影响,我们利用类似七量子比特 Steane 码的纠错码编码方式,将原电路中的每一个量子比特用一个量子比特区块来替代,同时将原电路中的每一个逻辑门用作用在逻辑量子比特上的编码逻辑门替代,如图 10-19 所示。通过周期性地在编码后的量子态上进行纠错操作,我们能够阻止错误在量子态中的积累。当然,即使在每个编码逻辑门后都实施,仅仅是周期性纠错还是不足以阻止噪声的出现。原因是两方面的,首先也是最重要的,编码逻辑门可能会导致错误的传播。例如,图 10-20 所示的编码受控非门可能会导致一个编码控制量子比特中的错误传播到编码目标量子比特上,因此前者中的错误可能会变成后者中的错误。所以,编码逻辑门需要被小心地设计成这样,为了让纠错能有效地消除噪声,在编码逻辑门执行过程中任何位置的错误,只能传播到编码数据中每个区块的少数位置。这种实现编码逻辑门的程序,被称为容错程序。我们将证实,有可能用容错程序实现一组通用逻辑门——包括阿达玛门,相位门,受控非门和 $\pi / 8$门。量子纠错第二个需要处理的问题是,纠错程序自己也会引人错误,因此我们必须小心地设计纠错程序,使它不会在编码后数据中引入过多错误。这可以通过类似编码逻辑门中阻止错误传播的技术来实现,以防止纠错过程产生的错误过多地传播到编码数据中。
图 10-18 一个简单的量子电路。如果电路中每个组成部分以 $p$ 概率失败,则输出发生错误的概率是 $O(p)$
图 10-19 用编码量子比特和编码逻辑操作对图 10-18 中电路的一个模拟实现。如果所有的操作都是容错实现的,则输出的错误概率是 $O\left(p^{2}\right)$ ,这里 $p$ 是单个器件的失败概率。一个有趣的地方是第二个量子比特上的第二步纠错,似乎它纠正的操作是平凡的:这个量子比特什么操作都没有发生。但是,将一个量子比特储存一段时间也会引人错误,因此为了防止错误的积累,需要周期性地纠错
图 10-20 在受控非门中,一个错误能传播导致两个量子比特错误,而且当使用编码量子比特时也如此。正文介绍了编码受控非门的一种实现方法
我们现在来为一个编码逻辑门的实现是容错的给出一个更精确的描述。我们将一个过程是容错的定义为,如果这个过程中的一个组成部分发生错误,那么这个错误在过程最后输出的每一个编码量子比特区块中,至多产生一个错误。
例如,在量子纠错的容错信息恢复程序中,单个组成部分的错误最终将被完美恢复,输出中至多有一个量子比特的错误。这里,"组成部分"是指编码逻辑门中的任何基本操作,可能包括有噪声逻辑门,有噪声测量,有噪声量子传输线,以及有噪声的量子态制备。量子逻辑门中容错程序的这种定义在有些文献中被推广到其他一些微妙问题的处理上,但对我们来说,这种程度的细节已经够了。
当然,编码逻辑门并不是我们在量子计算中希望实现的所有操作,定义容错测量和容错量子态制备的概念也是非常有用的。在一组逻辑量子比特上实现的对某个可观测量的测量是容错的,是指测量过程中任何一个单组成部分的错误,在输出的任何一个编码量子比特区块中最多造成一个量子比特的错误。并且,我们要求如果只有一个单组成部分发生错误,则测量结果发生错误的概率是 $O\left(p^{2}\right)$ ,这里 $p$ 是测量程序中任何一个单组成部分发生错误的最大概率。类似地,制备一个给定编码量子态的过程是容错的,是指如果过程中任何一个单组成部分发生错误,则在最后的输出中,任何一个编码量子比特区块中至多有一个量子比特发生错误。
为了让容错程序的定义更准确,我们需要对错误模型做一些具体要求。在我们的分析中,对错误的类型做了一个很大程度的简化,我们将错误描述为四种类型,$I, X, Y, Z$ ,并且以适当的概率随机发生。当执行类似受控非门这样的操作时,我们也允许相关的错误同时发生在两个量子比特上,但我们要求它们以泡利算子乘积的形式以一定概率出现。这种概率性的分析,使得我们有机会用比较熟悉的经典概率论来确定电路的输出是否正确。在容错程序更复杂的分析中(见"背景资料与延伸阅读"),更加一般性的噪声模型可以被考虑进来。例如,可以允许相关的错误以任意的形式同时发生在多个量子比特上。但是,分析这些复杂情形所使用的技术,本质上都是我们在这里描述的技术的推广,同时也需要借助于我们在本章早些时候所洞察到的一个关键事实,那就是只要能纠正某一个离散集合的错误,就有可能足以纠正连续分布的任意错误。
有了上面的噪声模型,我们就可以更准确地描述什么叫作错误在量子电路中传播。例如,考虑图 10-20 中的受控非门,假设一个 $X$ 错误发生在受控非门作用前的第一个量子比特上。如果我们将受控非门的西变换记作 $U$ ,则这个电路的等效作用为 $U X_{1}=U X_{1} U^{\dagger} U=X_{1} X_{2} U$ ,也就是说,上述电路的效果如同受控非门首先被完美实现,然后 $X$ 错误同时作用在两个量子比特上。在本章后面的篇幅中,我们将反复利用这种错误和逻辑门配合的技巧,来研究错误在电路中的传播。一个更复杂的例子是假设受控非门自己发生了错误,这时候会发生什么呢?假设这个有噪声受控非门的效果是量子操作 $\mathcal{E}$ ,则它可能可以写成 $\mathcal{E}=\mathcal{E} \circ \mathcal{U}^{-1} \circ \mathcal{U}$ ,这里 $\mathcal{U}$ 是一个完美受控非门的作用。因此,有噪声受控非门的效果,等效于首先实现一个完美的受控非门,然后再作用一个量子操作 $\mathcal{E} \circ \mathcal{U}^{-1}$ 。后者在有噪声受控非门整体效果较好的时候,基本就是一个单位阵,在我们常用的噪声模型下可以理解为以一个很小的概率作用了类似 $X \otimes Z$ 的泡利乘积。
在接下来几节,我们将详细介绍每一个上面已描述的容错操作——构成一个通用逻辑门集合
的容错逻辑门,容错测量,以及容错量子态制备。我们的构造都将基于 Steane 编码,但这些构造很容易被推广到其他稳定子编码上。假设所有这些步骤我们都可以随意操作,我们如何将它们装配起来完成量子计算呢?
我们现在来仔细考察一个实现容错受控非门,以及容错纠错步骤的程序,如图 10-21 所示。我们对这个电路的分析分为四步。第一步是进人电路的输人时刻,第二步是编码受控非门作用后的时刻,第三步是征状测量之后的时刻,第四步是恢复操作完成之后的时刻。我们的目标是指出,这个电路在第一个编码区块引入两个或多个错误的概率大概是 $O\left(p^{2}\right)$ ,这里 $p$ 是电路中单组成部分发生错误的概率。因为一个作用在第一个量子比特区块上的(假想的)完美解码程序,只有在该区块发生两个或多个错误时才会失败。因此,在上述电路完成之后,一个完美解码的量子态依然包含错误的概率,跟电路作用之前相比至多大 $O\left(p^{2}\right)$ 。
图 10-21 容错程序的分块构造,这里包含了纠错过程 为了证明这个程序在第一个量子比特区块中引人两个错误的概率是 $O\left(p^{2}\right)$ ,我们来确定引人两个错误的所有可能性:
1.在第一步,在每个编码量子比特区块中都有一个已存在错误进人电路。这种情况有可能在输出的第一个量子比特区块中造成两个错误,因为,比如说第二区块中的错误可能会通过编码受控非门传播到第一个区块中来。假设到这步为止的所有操作都是容错的,我们可以认为,这种错误进人第一个区块的概率最多是 $c_{0} p$ ,这里 $c_{0}$ 是一个常数,原因是在量子电路之前的阶段,肯定有类似的错误发生在征状测量或信息恢复步骤。 $c_{0}$ 是在电路前一阶段的征状测量或信息恢复步骤里可能发生错误的位置的总数。如果为了简单起见,我们假设在第一步某个已存在单量子比特错误进人第二区块的概率也是 $c_{0} p_{\circ}$ 而且,这两个错误独立发生,那么它们同时发生的概率是 $c_{0}^{2} p^{2}$ 。对下面描述的 Steane 编码构造来说,有 6 个不同的征状测量对 $c_{0}$ 有贡献,每一个都大概有 $10^{1}$ 个位置可能发生错误。再结合信息恢复操作涉及 7 个组成部分的事实,我们可以估计出 $c_{0} \approx 70$ 。
2.一个已存在错误进人第一个或第二个量子比特区块,同时在容错受控非门执行期间发生一个错误。这种情况发生的概率是 $c_{1} p^{2}$ ,这里 $c_{1}$ 是类似错误可能发生的所有不同位置对的数量。就基于 Steane 编码的构造来说,之前我们提到过,两个区块中的每个有大概 70 个可能的位置发生问题,导致一个错误进入电路,这样总共是 140 个位置。同时,有其他 7 个可能的位置在电路执行期间发生错误。因此,总共有 $c_{1} \approx 7 \times 140 \approx 10^{3}$ 个可能的位置组合发生一对错误。
3.在容错受控非门执行期间发生两个错误,这种情况发生的概率是 $c_{2} p^{2}$ 。这里,$c_{2}$ 是可能发生错误的位置对的数量,对 Steane 编码,$c_{2} \approx 10^{2}$ 。
4.在受控非门执行阶段和征状测量中各发生一个错误。在输出中发生两个或多个错误的唯一可能是征状测量给出错误结果,其发生的概率是 $c_{3} p^{2}$ ,这里 $c_{3}$ 是一个常数(对 Steane 编码来说 $c_{3} \approx 10^{2}$ )。另外一种有意思,但其实无关紧要的情况是征状测量给出正确结果,此时受控非门引人的错误被正确诊断及纠正,因此输出中只剩下征状测量中引人的错误。
5.征状测量中发生两个甚至多个错误,这种情况发生的概率是 $c_{4} p^{2}$ ,这里 $c_{4}$ 是错误可能发生的位置对的数量。对 Steane 编码来说,$c_{4} \approx 70^{2} \approx 5 \times 10^{3}$ 。
6.征状测量和信息恢复阶段各发生一个错误,这种情况发生的概率是 $c_{5} p^{2}$ ,这里 $c_{5}$ 是错误可能发生的位置对的数量。对 Steane 编码来说,$c_{5} \approx 70 \times 7 \approx 500$ 。
7.信息恢复阶段发生两个甚至多个错误,这种情况发生的概率是 $c_{6} p^{2}$ ,这里 $c_{6}$ 是错误可能发生的位置对的数量。对 Steane 编码来说,$c_{6} \approx 7^{2} \approx 50$ 。
因此,电路中在第一个量子比特区块中引人两个或多个错误的概率是 $c p^{2}$ ,这里 $c=c_{0}^{2}+c_{1}+$ $c_{2}+c_{3}+c_{4}+c_{5}+c_{6}$ 。对 Steane 编码来说 $c$ 大概是 $10^{4}$ 。如果后面的解码可以完美实现,则最终结果发生错误的概率是 $c p^{2}$ 。这是一个了不起的结果:我们实现了一个受控非门,其中单个组成部分失败的概率是 $p$ ,但最终编码后操作的成功概率高达 $1-c p^{2}$ 。因此,如果 $p$ 非常小,比如 $p < 10^{-4}$ ,则编码操作可以实质性地提升成功率。对量子计算所需要的其他基本操作,我们也有类似的结论。于是,通过将所有操作设计成容错的模式,我们可以将失败的概率从 $p$ 减小到 $c p^{2}$ ,这里 $c$ 是一个常数。我们估计了受控非门中 $c$ 的规模,但对量子计算的其他操作这个常数大小相近,因此我们在数值估计中统一使用 $c \approx 10^{4}$ 。
基于级联编码的想法,我们可以通过实现一个漂亮的构造来进一步降低等效的错误率。其大致的思路是将上述以编码的方式实现逻辑电路的方案重复执行,以分层的形式构造出一系列量子电路,$C_{0}$(原本我们希望实现的电路),$C_{1}, C_{2}, \cdots$ 。在构造的第一阶段,原电路中的每个量子比特被编码成量子编码,而编码中的每个量子比特又被进一步编码,如图 10-22 所示可以无休止地重复这个过程。在构造的第二阶段,原电路 $C_{0}$ 中的每个逻辑门,例如阿达玛门,在 $C_{1}$ 电路中被容错实现的编码阿达玛门及对应的纠错电路替代。然后,$C_{1}$ 中的每个基本组成部分在 $C_{2}$ 中又被容错实现的部件和对应的纠错电路替代,如此反复。假设我们如此实现两层级联编码,而底层 ——即实际的物理量子比特层——组成部分的错误率是 $p$ ,那么中间层(一层编码)的错误率将是 $c p^{2}$ ,而最高层(二层编码)的错误率是 $c\left(c p^{2}\right)^{2}$ 。注意为了保证计算的结果正确,最高层的功能实现必须完全正确。因此,如果编码的级联层数是 $k$ ,则最高层的错误率是 $(c p)^{2^{k}} / c$ ,而整个电路的尺寸将是 $d^{k}$ 乘以原电路的尺寸,这里 $d$ 是一个常数,代表着容错实现编码逻辑门和对应纠错所需基本操作的最大数目。
如果我们希望如此实现一个包含 $p(n)$ 个逻辑门的量子电路,这里 $n$ 是问题的规模,$p(n)$ 是一个关于 $n$ 的多项式。例如,这个电路可能是量子质因数分解算法的对应电路。假设我们希望最
后以 $\epsilon$ 的精度实现这个算法,那么算法中每个逻辑门的精度需要至少是 $\epsilon / p(n)$ 。因此,我们要让级联编码的层数满足
$$ \begin{equation*} \frac{(c p)^{2^{k}}}{c} \leqslant \frac{\epsilon}{p(n)} \tag{10.113} \end{equation*} $$
才能实现目标。如果 $p < p_{\mathrm{th}} \equiv 1 / c$ ,这样的 $k$ 显然可以找到。条件 $p < p_{\mathrm{th}}$ 被称为量子计算的阈值条件,因为只有这个条件满足了我们才能实现任意精度的量子计算。那么为了达到这种精度,电路的规模会是多大呢?选取满足式(10.113)的最小 $k$ ,于是式(10.113)接近等号,再重写式(10.113),可得:
$$ \begin{equation*} d^{k} \approx\left(\frac{\log (p(n) / c \epsilon)}{\log (1 / p c)}\right)^{\log d}=O(\operatorname{poly}(\log p(n) / \epsilon)) \tag{10.114} \end{equation*} $$
这里 poly 代表某个固定阶数的多项式,于是通过简单计算可以得到最终电路将包含
$$ \begin{equation*} O(\operatorname{poly}(\log p(n) / \epsilon) p(n)) \tag{10.115} \end{equation*} $$
个逻辑门,只比原电路的尺寸大多项式倍。总结下来,我们成功得到了量子计算的阈值定理:
图 10-22 一个两层级联编码,将 1 个量子比特编码成 9 个。为了简单,我们使用的是三量子比特编码。在实际应用中,我们看到的往往是像 Steane 纠错码这样能纠正一个或多个量子比特上任意错误的编码
量子计算的阈值定理:一个逻辑门数量为 $p(n)$ 的量子电路可以被一个包含
$$ \begin{equation*} O(\operatorname{poly}(\log p(n) / \epsilon) p(n)) \tag{10.116} \end{equation*} $$
个逻辑门的电路以至多为 $\epsilon$ 的整体失败概率模拟实现,只要后者中单个组成部分的最大错误率 $p$低于某个常数阈值,即 $p < p_{\mathrm{th}}$ ,同时相关硬件中的噪声满足一些合理的要求。 $p_{\mathrm{th}}$ 的值是多少呢?对 Steane 编码来说,根据我们的计数 $c \approx 10^{4}$ ,非常粗略的估计显示 $p_{\mathrm{th}} \approx 10^{-4}$ 。应该强调的是,我们的估计与严格但复杂得多的计算结果之间,有着不小的差别,后者一般在 $10^{-5} \sim 10^{-6}$ 范围。同时也要注意到,國值的精确值也非常依赖我们对计算能力的假设。例如,如果并行操作不可行,那么阈值条件就不可能被满足,因为电路中的噪声累计得太快,纠错机制不足以处理。同时,为了处理测量的征状及决定使用何种逻辑门去校正信息,除了量子
操作,经典计算也是必不可少的。关于國值估计极限的一些讨论,可以在 10.6.4 节中见到。 习题10.62 通过完整构造出稳定子的生成子,证明将一个 $\left[n_{1}, 1\right]$ 稳定子编码和一个 $\left[n_{2}, 1\right]$ 稳定子编码级联起来,可以得到一个 $\left[n_{1} n_{2}, 1\right]$ 稳定子编码。
构建容错量子电路的一个关键技术是构建容错操作的方法,以实现编码量子态上的逻辑操作。在 4.5.3 节中,我们知道阿达玛门,相位门,受控非门和 $\pi / 8$ 门构成一个通用逻辑门集合,使得任何量子计算都能被它们表示。我们现在解释,如何以容错的方式实现这些操作。
我们首先考虑规范子操作——阿达玛门,相位门和受控非门——基于 Steane 编码的容错实现。理解了这个具体构造的基本原理之后,很容易将其推广到稳定子编码的一般情形。如前所述,根据式(10.107),对 Steane 编码来说,编码量子态上的泡利矩阵 $\bar{Z}$ 和 $\bar{X}$ 可以用未编码量子比特上的算子表示为
$$ \begin{equation*} \bar{Z}=Z_{1} Z_{2} Z_{3} Z_{4} Z_{5} Z_{6} Z_{7} ; \quad \bar{X}=X_{1} X_{2} X_{3} X_{4} X_{5} X_{6} X_{7} \tag{10.117} \end{equation*} $$
如同普通阿达玛门跟 $Z$ 和 $X$ 在共轭意义下可交换一样,编码阿达玛门跟 $\bar{Z}$ 和 $\bar{X}$ 在共轭意义下也可交换。由于 $\bar{H}=H_{1} H_{2} H_{3} H_{4} H_{5} H_{6} H_{7}$ 就可以满足此要求,所以编码量子比特上的阿达玛门可以用图 10-23 所示的方式实现。
$$ a\left|0_{L}\right\rangle+b\left|1_{L}\right\rangle\left\{\begin{array}{l} -\sqrt{H}- \\ -\sqrt{H}- \\ -\sqrt{H}- \\ -\sqrt{H}- \\ -\sqrt{H}- \\ -\sqrt{H} \\ -\sqrt{H} \end{array}\right\} $$
图 10-23 用 Steane 纠错码编码的量子比特上的横向性阿达玛门 习题10.63 假设 $U$ 是一个将 Steane 编码映射到它自己的西变换,且 $U \bar{Z} U^{\dagger}=\bar{X}, U \bar{X} U^{\dagger}=\bar{Z}$ 。证明 $U$ 在编码状态 $\left|0_{L}\right\rangle$ 和 $\left|1_{L}\right\rangle$ 上的作用效果是 $\left|0_{L}\right\rangle \rightarrow\left(\left|0_{L}\right\rangle+\left|1_{L}\right\rangle\right) / \sqrt{2}$ 和 $\left|1_{L}\right\rangle \rightarrow\left(\left|0_{L}\right\rangle-\left|1_{L}\right\rangle\right) / \sqrt{2}$ ,此外可能差一个全局相位。
虽然这是很好的起步,但仅仅实现逻辑量子态上的逻辑操作不一定表示它就满足容错的要求,我们还需要理解错误是如何传递的。由于实现 $\bar{H}=H^{\otimes 7}$ 的量子电路在任何一个相关联的编码区块中涉及最多一个量子比特,似乎可以很合理地假设本电路中任何一个单独组成部分的错误,最终在输出的每个区块中将导致最多一个错误。
为了说明这一点确实符合事实,假设在编码 $H$ 门执行之前,第一个量子比特发生了一个错误。为了保证确定性,假设这个错误是一个 $Z$ 错误,因此作用在这个量子比特上的联合操作是 $H Z$ 。跟我们早前对受控非门中错误传递的分析一样,插入单位阵 $H^{\dagger} H=I$ 得到 $H Z=H Z H^{\dagger} H=X H$ ,因此,这个错误相当于首先作用 $H$ 门,然后发生一个 $X$ 错误。类似地,逻辑门执行期间发生的错误相当于首先逻辑门完美执行,然后少量的噪声作用在这个量子比特上,这里少量噪声可以理解成我们通常的噪声 $X, Y, Z$ 均以一个很小的概率发生。图 10-23 中的电路是一个货真价实的容错电路,因为过程中任何位置发生的单量子比特错误不会传递到其他量子比特上,于是在输出的量子比特区块中至多造成一个错误。
在图 10-23 所示的电路中,我们可否提取出一般性原则?一个有用的观察角度是,如果编码逻辑门是以逐位完成操作的方式实现,那么它自动就是容错的,因为这种特征保证了任何位置发生的单个错误,在纠错码的任何区块都将造成至多一个错误,于是出错概率不会失去纠错码的控制。如果编码逻辑门可以逐位完成操作,我们称它们具有横向性(transversality)的特点。横向性是一个有趣的特点,因为它提供了一个寻找容错量子电路的一般性设计原则。我们下面会看到,除了阿达玛门,许多逻辑门都有满足横向性的实现方式。当然,我们也可以实现没有横向性的容错机制设计,例如下面将要介绍的容错 $\pi / 8$ 门。
使用 Steane 编码,除阿达玛门外的许多逻辑门都存在横向性(因此也是容错的)实现。除了阿达玛门,三个最有趣的例子是相位门,泡利 $X$ 和 $Z$ 门。例如,假设我们基于 Steane 编码,对七量子比特逐位实现 $X$ 操作,则在共轭作用下 $Z$ 算子将被作用成 $-Z$ 算子,因此 $\bar{Z} \rightarrow(-1)^{7} \bar{Z}=-\bar{Z}$ ,而且逐位执行的 $X$ 操作在共轭作用下也有 $\bar{X} \rightarrow \bar{X}$ 。所以这个电路在效果上相当于 Steane 编码上的逻辑 $X$ 操作。这个电路具有横向性,因此也自动是容错的。类似地,基于 Steane 编码逐位实现 $Z$ 操作也将给出一个容错的编码 $Z$ 逻辑门实现方案。相位门的横向性实现稍微有些挑战。在共轭作用下, $\bar{S}$ 必须将 $\bar{Z}$ 映射到 $\bar{Z}, \bar{X}$ 映射到 $\bar{Y}=\mathrm{i} \bar{X} \bar{Z}$ 。但是,利用前面的直观猜测,在共轭作用下 $\bar{S}=S_{1} S_{2} S_{3} S_{4} S_{5} S_{6} S_{7}$ 将 $\bar{Z}$ 映射到 $\bar{Z}, \bar{X}$ 映射到 $-\bar{Y} 。 \bar{Y}$ 前面的负号可以被作用一个 $\bar{Z}$修复。所以,对编码中每个量子比特逐位作用一个 $Z S$ 操作等价于一个编码相位门,而且它具有横向性,因此是容错的。
与阿达玛门,泡利门和相位门不同,容错实现受控非门看起来很有挑战性,因为这个逻辑门涉及两个七量子比特区块。如何实现受控非门,以至于在编码的每一个区块不会引入超过一个错误呢?幸运的是,如果使用 Steane 编码,正如图 10-24 所示,这实际上是非常容易做到的:只需要 7 个受控非门,分别作用在两个区块对应的量子比特对上!你可能会担心这种实现会不会违反我们的设计原则,毕竟,难道单个错误不能在受控非门中被传播到多个量子比特上吗?这种说法虽然正确,但在我们关心的问题上无关紧要,因为错误的传递只会影响到其他区块中最多一个量子比特,而不会在同一个区块中同时妨碍两个量子比特。仅仅影响其他区块中的一个量子比特是不会造成麻烦的,因为我们的纠错码能纠正每个给定区块中的单量子比特错误。
更精确地说,假设在涉及每个区块第一个量子比特(我们将它们标记为量子比特 1 和 8 )的受控非门作用之前,第一个量子比特发生一个 $X$ 错误。假设受控非门被记作 $U$ ,则整体的等价操作为 $U X_{1}=U X_{1} U^{\dagger} U=X_{1} X_{8} U$ ,也就是说,整体效果如同首先完美作用一个受控非门,随后两个区块的首个量子比特均被作用一个 $X$ 门。再稍微麻烦一些的状况是,假设某个受控非门失败
了,这会发生什么呢?假设有噪声受控非门实现的是量子操作 $\mathcal{E}$ ,则它可以写作 $\mathcal{E}=\mathcal{E} \circ \mathcal{U}^{-1} \circ \mathcal{U}$ ,这里 $U$ 是完美受控非门对应的量子操作。因此,有噪声受控非门相当于首先作用一个完美的受控非门,然后再执行操作 $\mathcal{E} \circ \mathcal{U}^{-1}$ 。后者在有噪声受控非门整体效果较好的时候,基本就是一个单位阵,在我们常用的噪声模型下可以理解为以一个很小的概率作用了类似 $X \otimes Z$ 的泡利乘积。幸运的是,虽然这些错误涉及两个量子比特,但它们在每个区块内部只涉及一个量子比特,而且类似的结论也适用于其他位置错误的传播。因此,任何位置单个组成部分的错误,在传播过程中都不会造成任何量子比特区块内部的多个错误,所以编码受控非门的上述实现方案是容错的。
图 10-24 在 Steane 编码下,位于不同区块的两个逻辑量子比特之间的横向性受控非门 我们已经知道阿达玛门,相位门和受控非门都可以以容错的形式实现,所以根据定理 10.6 ,规范子中的任意操作都可以被容错实现。当然,规范子操作并不足以形成一组量子计算所需要的通用逻辑门,但这是一个有希望的开端。 习题10.64(错误的反向传播)可以明确的是,受控非门中控制量子比特上的 $X$ 噪声,会传播到目标量子比特上。此外,目标量子比特上的 $Z$ 噪声,也会反向传播到控制量子比特上。分别利用稳定子形式及量子电路的等价性证明这一点。你可能会发现习题 4.20 是有用的。
为了完成一组通用量子逻辑门,剩下需要考虑的就是 $\pi / 8$ 门。当然,还有一个替代的办法就是如 4.5.3 节提到的,在当前的容错阿达玛门,相位门和受控非门中再增加一个容错的 Toffoli 门,也可以构成一组通用逻辑门,并且以容错的方式实现量子计算所需要的所有操作。但事实表明,容错 $\pi / 8$ 门很容易实现,而且使用类似的技术和复杂一些的构造,容错 Toffoli 门也可以被实现出来。
我们构造容错 $\pi / 8$ 门的基本策略是将整个任务分成三个部分。构造的第一个部分是使用我们已经知道如何实现容错的操作,例如受控非门,相位门和 $X$ 门,去搭建一个模拟 $\pi / 8$ 门的简单电路。但是,这个电路中有两个部分我们还不知道如何实现容错功能。第一个部分是作为电路输人的辅助量子态的制备,并且为了恰当地制备辅助量子态,我们要求制备过程中任何组成部分的错误,将在最终制备的量子比特区块中导致最多一个错误。这种辅助量子态的容错制备如何实现,将在本节的稍后部分介绍。第二个需要考虑的操作是测量,为了让测量也能实现容错,我们要求测量过程中任何一个组成部分的错误将不影响最后测量的结果。否则,产生的错误将会传播,造成第一区块很多量子比特出错,因为正式测量的结果决定是否完成编码 $S X$ 门的操作。如
何实现容错测量,将在下一节中介绍。(严格地说,我们描述的容错测量,将有 $O\left(p^{2}\right)$ 的概率给出错误结果,这里 $p$ 是单个组成部分的错误率。在目前的讨论中,我们将忽略这个因素,其实使用稍微复杂一点的类似分析,处理这个因素也并不困难。)
图 10-25 展示了一个实现 $\pi / 8$ 门的电路。电路中所有的构成元素都可以容错实现,除了虚线框中的部分和量子测量有可能无法完全做到。电路的开始是两个编码量子比特,其中一个是我们希望在上面实现操作的 $|\psi\rangle=a|0\rangle+b|1\rangle$(这里 $|0\rangle$ 和 $|1\rangle$ 代表逻辑量子态),另一个量子比特的状态是
$$ \begin{equation*} |\Theta\rangle=\frac{|0\rangle+\exp (\mathrm{i} \pi / 4)|1\rangle}{\sqrt{2}} \tag{10.118} \end{equation*} $$
这是图中虚线框中电路所产生的状态,我们一会儿就会解释这种辅助量子态是如何容错制备的。接着,作用一个容错量子非门操作,得到
$$ \begin{align*} \frac{1}{\sqrt{2}} & {[|0\rangle(a|0\rangle+b|1\rangle)+\exp (\mathrm{i} \pi / 4)|1\rangle(a|1\rangle+b|0\rangle)] } \\ & =\frac{1}{\sqrt{2}}[(a|0\rangle+b \exp (\mathrm{i} \pi / 4)|1\rangle)|0\rangle+(b|0\rangle+a \exp (\mathrm{i} \pi / 4)|1\rangle)|1\rangle] \tag{10.119} \end{align*} $$
最后,测量第二个量子比特,如果结果是 0 则任务完成;否则,再在剩下的量子比特上实施下面的操作
$$ S X=\left[\begin{array}{ll} 1 & 0 \tag{10.120}\\ 0 & \mathrm{i} \end{array}\right]\left[\begin{array}{ll} 0 & 1 \\ 1 & 0 \end{array}\right] $$
不论结果如何,我们将得到量子态 $a|0\rangle+b \exp (\mathrm{i} \pi / 4)|1\rangle$ ,最多相差一个无关的全局相位,这跟 $\pi / 8$ 门的要求一致。这个漂亮的结果看起来没有什么来由,其实这反映了一种系统的构造方法,见下面的习题。在习题 10.68 中,相同的构造方法也被用来实现容错的 Toffoli 门。
图 10-25 容错实现 $\pi / 8$ 门的量子电路。虚线框里是辅助态 $(|0\rangle+\exp (i \pi / 4)|1\rangle) / \sqrt{2}$ 的一个(非容错)制备程序,如何容错地实现这个部分在正文里介绍了。传输线上的斜杜代表这是 7 个量子比特,双传输线代表这是测量得到的经典结果。注意 $S X$ 操作被测量的结果控制 $\pi / 8$ 门的容错构造需要制备辅助量子态 $|\Theta\rangle$ 的容错方案,它可以通过容错测量的技术实现,细节将在下一节中介绍,这里我们先介绍容错测量。如图 10-25 所示,$|\Theta\rangle$ 可以如下制备,首先在 $|0\rangle$ 上作用一个阿达玛门,然后再作用一个 $\pi / 8$ 门。量子态 $|0\rangle$ 是 $Z$ 特征值为 1 的特征向量,因此,$|\Theta\rangle$ 是 $T H Z H T^{\dagger}=T X T^{\dagger}=\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 特征值为 1 的特征向量。所以,$|\Theta\rangle$ 也可以如下制备,首先制备一个编码 $|0\rangle$ ,然后容错地测量 $\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 。如果结果是 1 ,则任务完成,否则我们有两个选择:要么我们可以重新来过,直到测量 $\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 给出结果 1 ;要么我们借助一个更简洁有效的观察,即因为 $Z S X Z=-S X$ ,作用一个容错 $Z$ 门将把量子态从 $\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 特征值为 -1的特征向量,改变为 $\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 特征值为 1 的特征向量。不管采用哪个选择,过程中任何位置的单一错误,将在制备的辅助量子态 $|\Theta\rangle$ 中造成至多一个错误。
不难看出,我们描述的过程整体来说是容错的。但是,我们还是通过一个具体的例子来理解这件事情。假设在辅助构建阶段有一个组成部件发生错误,使得辅助位的某个量子比特上出错。这个错误将通过编码受控非门传播开来,导致第一个和第二个量子比特区块都发生一个错误。幸运的是,第二个逻辑量子比特上的单量子比特错误不影响我们容错测量过程的结果,所以 $S X$ 可以视情况决定是否执行,而第一个区块的错误会传递出去,造成编码逻辑门输出中的一个错误。同理,不难验证,编码 $\pi / 8$ 门中任何位置的单量子比特错误,在输出的量子比特编码区块中将至多导致一个单量子比特的错误。
习题10.65 状态 $|\psi\rangle$ 中的一个未知量子比特,可以与制备成 $|0\rangle$ 的第二个量子比特用两个受控非门进行交换,对应的电路如下
证明下面的两个电路能完成一样的功能,它们只用到一个受控非门,外加一个测量和一个经典控制的单量子比特操作。
习题10.66(容错 $\pi / 8$ 门构造)实现 $\pi / 8$ 门的一个办法是,先将希望变换的目标量子比特 $|\psi\rangle$和另一个已知量子比特 $|0\rangle$ 交换,然后再在输出的量子比特上施加一个 $\pi / 8$ 门。对应的电路如下。
这么做似乎没有什么特别的用处,但其实不然。证明利用关系 $T X T^{\dagger}=\exp (-\mathrm{i} \pi / 4) S X$ 和 $T U=U T$( $U$ 是受控非门,$T$ 作用在控制量子比特上)可以得到图 10-25 所示电路。
习题10.67 证明下面的电路等价成立。
(a)
习题10.68(Toffoli 门的容错构造)基于上面关于 $\pi / 8$ 门的系列习题,稍做调整可以实现 Toffoli门的容错构造。
1.首先将希望变换的三量子比特状态 $|x y z\rangle$ 和另外 3 个已知的量子比特 $|000\rangle$ 做交换,然后再在输出的量子比特上作用一个 Toffoli 门。证明下面的电路能完成这个任务。
2.利用习题 10.67 中的交换法则,证明将最后的 Toffoli 门一致移到最左边将得到下面的电路。
3.假设最左边虚线框内的辅助状态制备可以容错实现,证明此电路可以完成 Toffoli 门基于 Steane 编码的容错实现。
在容错电路的构造中,一个极端重要的有用工具是完成测量 $M$ 的能力。测量被应用在编码中,读出量子计算的结果,诊断纠错中的征状,以及为构建容错 $\pi / 8$ 和 Toffoli 逻辑门制备辅助状态,因此对容错量子计算来说无比关键。为了保证针对编码后量子态的测量也是容错的,我们一般需要保证两点来阻止错误的传播。第一,过程中的任意单一错误,在过程结束时,在任何量子比特的区块中应该造成至多一个错误。第二,过程中即使只有一个错误发生,我们要求测量以 $1-O\left(p^{2}\right)$ 概率给出正确结果。其中第二点至关重要,因为测量结果可能被用来控制量子计算机的其他操作,因此如果结果错误,错误可能会影响到编码量子比特中其他区块的很多量子比特。
如前所述,单量子比特上可观测量 $M$ 对应的测量可以用图 10-26 所示的电路实现。假设 $M$可以在一个量子编码上以横向方式实现,即在编码的每个量子比特上逐位作用量子门 $M^{\prime}$ 。例如,对 Steane 编码来说,$M=H$ 可以用逐位作用的 $M^{\prime}=H$ 来完成横向性实现,而 $M=S$ 的横向性实现则需要逐位的 $M^{\prime}=Z S$ 操作。这意味着,我们可能可以用图 10-27 所示的电路来在编码数据上完成编码 $M$ 测量。不过需要注意的是,实际的量子编码,例如 steane 编码,需要更多的量子比特。不幸的是,图 10-27 所示的电路不是容错的。为了看出这一点,想象一个单个错误在电路开始的辅助量子比特上发生,则这个错误会传播到所有的量子比特上,因此该电路并不容错。
图 10-26 测量特征值为 $\pm 1$ 的单量子比特算子 $M$ 的量子电路。上面的量子比特是测量需要的辅助态,下面是被测量的数据量子比特
但是,我们可以用图 10-28 所示的好办法来实现容错的测量电路。为了简单起见,这里待测量的编码数据只包含 3 个量子比特,实际上会类似 Steane 编码,涉及更多的量子比特。在这里,为了让电路更具体我们可以想象所涉及的编码就是 Steane纠错码。除了编码数据,该电路为每个数据量子比特引进一个辅助的量子比特,且初态为 $|0\rangle$ 。制备辅助量子态的第一步是制备一个猫态,$|00 \cdots 0\rangle+|11 \cdots 1\rangle$ 。(注意不对猫态做任何编码。)这里,用来完成态制备的电路自然并不是容错的,因为电路中的单个错误可能会导致猫态中多个量子比特上的错误。然而,这并不影响整个过程的容错特征,因为在完成态制备之后我们会完成一些验证步骤(图中只显示了验证中的一步)。
图 10-27 对编码可观测量 $M$ 的测量,实现方法是用横向性的方式逐位实现 $M^{\prime}$ 测量。此电路并不容错,注意真正的编码将需要不止 3 个量子比特
图 10-28 对编码数据的可观测量 $M$ 实现容错测量的程序。重复该步骤 3 次,然后取测量的多数结果作为输出。测量结果错误的概率是 $O\left(p^{2}\right)$ ,这里 $p$ 是单个器件的失败概率。而且,电路中任意地方发生的单个错误,最终造成数据中至多一处错误
验证的工作原理如下。其实,将采用的基本思路是,如果想验证该状态确实是猫态,验证测量 $Z_{i} Z_{j}$ 在所有量子比特对 $i$ 和 $j$ 上的结果总是 1 就足够了,也就是说,猫态上任何量子比特对的配对总是偶数。为了对一个特定配对 $Z_{i} Z_{j}$(图中是 $Z_{2} Z_{3}$ )实现验证,我们引人一个初态为 $|0\rangle$的额外量子比特。为了计算一对辅助量子比特的配对,我们将作用两个受控非门,其中这两个辅
助量子比特都是控制位,而两个额外量子比特是目标位,而且作用发生在测量额外量子比特之前。如果测得的配对是 1 ,我们就知道辅助量子态不是猫态,就放弃它,并且重新制备。如果在这一系列奇偶校验中发生了某单个组成部分的错误,那么这个过程就不是容错的,因为不难看出存在单个组成部分的错误,导致辅助状态中不止一处的相位翻转错误。例如,如果在受控非门之间的额外量子比特上发生了 $Z$ 错误,则这个错误可以向前传播,然后导致两个辅助量子比特上的 $Z$ 错误。幸运的是,辅助量子比特上的多个 $Z$ 错误,并不会传播到编码数据中,虽然它们可能会导致最终测量结果的错误。为了解决这个问题(下面会有更多细节描述),我们重复测量过程 3 次并取其中的多数结果,于是测量结果错误两次或多次的概率至多是 $O\left(p^{2}\right)$ 。这里,$p$ 是单个组成部分发生错误的概率。 $X$ 或 $Y$ 错误又如何处理呢?虽然它们确实可以传播开来导致编码数据的错误,但很幸运的是,猫态制备和验证时的单个错误,只会导致辅助状态在验证后至多产生一个 $X$ 或 $Y$ 错误,因此编码数据上最多存在一个错误,从而确认了容错特性。
习题10.69 证明辅助态制备和验证时任意位置的单个错误,在输出的辅助态中最多造成一个 $X$或 $Y$ 错误。
习题10.70 证明辅助态中的 $Z$ 错误不会传播到编码数据中,但会造成测量结果的错误。 在猫态被验证之后,受控 $M^{\prime}$ 门就被作用在辅助量子态和数据量子态构成的量子比特对之间,并且每个辅助量子比特将只被使用一次。因此,如果辅助量子态是 $|00 \cdots 0\rangle$ ,编码数据将保持不变,但如果辅助量子态是 $|11 \cdots 1\rangle$ ,则编码 $M$ 算子将被作用在数据上。猫态的价值在于它保证错误不会从一个受控 $M^{\prime}$ 门传播到另一个,所以状态验证阶段或作用受控 $M^{\prime}$ 门期间的单个错误,只会造成编码数据中的至多单个错误。最后,测量结果将由通过一系列受控非门和 $H$ 门解码得到,而输出量子比特的值是 0 还是 1 将取决于数据状态的特征值。这些最后阶段的逻辑门并不涉及数据,所以这些逻辑门中的错误不会传播到数据中。但如果最后阶段逻辑门中的错误给出错误的测量结果会怎么样呢?通过重复测量 3 次,并取多数结果作为输出,我们可以确保测量结果发生错误的概率是 $O\left(p^{2}\right)$ ,这里 $p$ 是单个组成部分发生错误的概率。
我们已经描述的实现容错测量的方法,可做到如下效果,即测量结果错误的概率是 $O\left(p^{2}\right)$ ,这里 $p$ 是单个组成部分发生错误的概率,并且整个过程任何位置的单个错误,将最多导致编码数据中的单个错误。这种构造可以推广到可横向性实现的单量子比特可观测量 $M$ 上来。对 Steane编码来说,这包括阿达玛门,相位门,泡利门,以及稍微调整后的可观测量 $M=\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 。对于 $M$ 的这种选择和 Steane 编码,受控 $M$ 门可以通过在辅助量子比特和数据量子比特之间横向性地作用 $Z S X$ 逻辑门,然后再在辅助量子比特上横向性地施加 7 个 $T$ 门来实现。如 10.6 .2 节中描述的那样,这个观测算子对应的容错测量,可以用来制备在 $\pi / 8$ 逻辑门的容错构造中所需要的辅助量子态。
习题 10.71 当 $M=\mathrm{e}^{-\mathrm{i} \pi / 4} S X$ 时,验证我们上面描述的过程实现了 $M$ 对应的容错测量。 习题10.72(Toffoli 辅助态的容错构造)指出如何容错地制备习题 10.68 中虚线框内的电路所输出的状态,即
$$ \begin{equation*} \frac{|000\rangle+|010\rangle+|100\rangle+|111\rangle}{2} \tag{10.121} \end{equation*} $$
你会发现,先找到此状态所对应稳定子的生成子会很有帮助。
我们已经描述了当 $M$ 是单量子比特上的编码可观测量时,对应容错测量过程的实现,其实该技术可以很自然地推广到其他情形。对我们的要求来说,能实现涉及稳定子的生成子所对应的测量就足够了,它们具有泡利矩阵张量积的形式。这些测量让我们有机会实现容错的错误纠正,量子计算机的初态编码,以及计算最终结果读取阶段所需的编码 $Z$ 算子测量。
作为一个简单例子,在一个 Steane 编码相关的七量子比特区块上,假设我们需要对前 3 个量子比特完成算子 $X_{1} Z_{2} X_{3}$ 对应的测量。则图 10-28 的一个直接推广就可以完成这个任务,如图 10-29 所示。跟之前一样,为了实现算子 $X_{1} Z_{2} X_{3}$ 对应的容错测量,我们在对编码数据上作用横向性受控非门之前也对所制备的猫态做验证。在以容错的方式成功实现这些测量之后,我们就自动具备能力完成下列量子计算所需要的步骤,即编码,征状测量,以及逻辑计算基下的测量。例如,为了实现数据编码,只需要完成制备编码 $|0\rangle$ 态的量子计算就够了。对于类似 Steane 编码的稳定子编码来说,能以容错的方式完成对稳定子涉及的所有生成子,以及编码 $\bar{Z}$ 算子的测量,上述的状态制备就可以实现,当然可能还需要 10.5 . 1 节中命题 10.4 的证明所给出的适当容错操作来修正这些生成子和编码 $Z$ 算子的符号。在习题 10.73 中,可以看到一个例子解释如何容错制备 Steane 编码对应的逻辑 $|0\rangle$ 态。其他操作的容错实现,例如纠错所需要的征状测量,以及量子计算最终结果在编码计算基下的测量,也可以由类似的方法完成。
图 10-29 对 3 个量子比特做 $X Z X$ 算子容错测量的程序 习题10.73(编码状态的容错构造)证明基于 Steane 编码的逻辑 $|0\rangle$ 可以用下面的方式容错构造出来。
1.利用图 10-16 中的电路,用图 10-30 所示的方法替换对生成子的测量,每个辅助量子比特将变成猫态 $|00 \cdots 0\rangle+|11 \cdots 1\rangle$ ,重新组织各个操作使得控制作用在不同的量子比特上,于是错误就不会在同一个编码区块中传播。
2.增加一步,实现容错测量 $Z$ 。
3.计算此电路,以及将生成子测量重复 3 遍并取出多数结果输出的错误概率。
4.列举根据测量结果不同需要完成的操作,并证明它们可以被以容错的方式实现。
习题10.74 构造一个能以容错方式制备的,并且用五量子比特纠错码(10.5.6节)编码的逻辑状态 $|0\rangle$ 的电路。
图 10-30 容错制备 Steane 编码中逻辑 $|0\rangle$ 的一步
量子纠错码理论最突出的成就——量子计算阈值定理——指出,如果每个量子逻辑门的噪声低于某个阈值,那么任意大规模的量子计算都可以被有效地实现。换句话说,噪声并不是量子计算的原则性障碍。正如 10.6.1 节所述,证明阈值定理的基本思路,是在编码后的量子态上实现容错操作,同时结合纠错步骤,这样就可以将错误概率从 $p$ 量级降低到 $O\left(p^{2}\right)$ 量级。然后通过将量子纠错码进行多次级联,我们可以实现分层的容错过程,这样可以进一步将错误概率降低到 $O\left(p^{4}\right)$ 量级,$O\left(p^{8}\right)$ 量级,如此反复。最终,只要 $p$ 低于某个阈值 $p_{\mathrm{th}}$ ,整体的错误概率将低到预期水平。通过这种思路,我们完成了一种阈值的估计方案,大概在 $p_{\mathrm{th}} \sim 10^{-5}-10^{-6}$ 水平。
像阈值定理这样的结论,很明显需要小心地处理前提条件。量子计算并不能对抗任意噪声,实际上,阈值定理的成立有赖于少数几个具有物理合理性的假设,这些假设涉及量子计算机中噪声的类型和量子计算机的架构。我们考虑的噪声模型其实比较简单,真正的量子计算机当然会遇到比我们考虑的模型更复杂的噪声。但是,我们有理由相信,结合更复杂的量子纠错码和分析工具,利用我们在这里发展的技术,可以在比这里考虑的模型更广泛的量子计算场景上,类似地建立阈值定理。
我们没有篇幅做更深人的分析,但我们在此指出几件值得思考的事情。首先,一件有趣的事情是,阈值定理的结果需要量子电路有高度的并行性。即使我们只是希望将量子信息存储在量子记忆体中,也需要涉及高度并行性的周期性量子纠错来实现。因此,对量子计算机的设计者来说,为了更好地应用容错量子计算,将计算机的架构设计成可并行的是一个有利的目标。其次,在我们关于阈值定理的叙述中,我们完全忽略了诸如状态制备,征状测量及信息恢复等操作中经典计算和通信的代价。实际上,这些代价可能非常高。例如,在多层级联的量子编码中,最高层的信息恢复需要量子计算机系统所有部分之间的通信。与错误发生的速度相比,如果这些通信不能迅速完成,则错误就会累积,导致纠错的效果丧失。但是,我们可以通过更复杂的分析来处理这种问题,以及其他类似的状况,从而建立更严格的阈值定理。再次,我们的涉及测量及 $\pi / 8$ 门的容错构造,使用了初态为 $|0\rangle$ 的辅助量子比特,可能会引入额外的噪声。实际上,可以证明,为了应用阈值定理,引人常数个拷贝的辅助量子比特是必不可少的。因此,量子计算机的设计者,不但要提供并行的架构,也要能稳定提供初态被设定的辅助量子比特。
我们将主要精力用在对基本原理的论述上,并没有试图最优化我们用到的方法。实际上,完全有可能使用比我们所介绍的更高效的构造方法。一个简单但重要的指导原则是,选择合适的编码。我们集中介绍 Steane 编码,因为它容易使用,而且很好地展示了纠错码的基本原理,但实际上其他的纠错码可能性能好得多。例如,在级联编码的第一层选用已经针对硬件实现中的具体噪声而实现最优化的量子编码,所花费的资源可能好看得多。
虽然阈值定理理论上的思路可以根据量子计算物理实现中主要噪声的特征,以不同的方式做调整,怀疑论者可能依然声称,在证明阈值定理的过程中,对所依赖的噪声模型的限制可能过于严格,以至于这些模型在任何量子系统中都无法实现。这些怀疑论的观点,只有通过大规模量子计算的成功建造才能最终回应。人们目前所达到的结论的了不起之处在于,证明了就人类所掌握的知识而言最终实现量子计算没有实质性的障碍。
总结本章的内容,我们通过量子计算的具体例子,介绍了可复原地实现量子信息处理方案的基本原理。同样的技术也可以应用到其他类型的量子信息处理任务中,例如完成量子密码学任务的量子通信信道。因为量子信息的极度脆弱,实际应用的量子信息处理任务很可能必须要实现某种形式的纠错。但让人意外的是,我们介绍的技术效果很好,以至于基于有珢疪的量子器件或量子操作,只要错误率低到某种程度,我们就可以实现任意可靠的量子计算。 问题10.1 如果存在西信道 $\mathcal{U}$ 和 $\mathcal{V}$ ,使得 $\mathcal{E}_{2}=\mathcal{U} \circ \mathcal{E}_{1} \circ \mathcal{V}$ 成立,则称信道 $\mathcal{E}_{1}$ 和 $\mathcal{E}_{2}$ 是相等的。 1.证明信道相等的关系是一种等价关系。 2.指出如何将针对信道 $\mathcal{E}_{1}$ 的纠错码,转换成针对信道 $\mathcal{E}_{2}$ 的纠错码。假设 $\mathcal{E}_{1}$ 的纠错过程是通过先做一个投影测量,然后再做一个条件西变换来实现,解释 $\mathcal{E}_{2}$ 的纠错过程如何通过类似的过程实现。 问题10.2(Gilbert-Varshamov 界限)证明 CSS 编码的 Gilbert-Varshamov 界限,即对给定的 $k$ ,存在一个能纠正 $t$ 个错误的 $[n, k] \operatorname{CSS}$ 编码,使得下式成立:
$$ \begin{equation*} \frac{k}{n} \geqslant 1-2 H\left(\frac{2 t}{n}\right) \tag{10.122} \end{equation*} $$
一个更具挑战性的任务是,证明针对一般稳定子编码的 Gilbert-Varshamov 界限,即存在能纠正 $t$个错误的 $[n, k]$ 稳定子编码,使得
$$ \begin{equation*} \frac{k}{n} \geqslant 1-\frac{2 \log (3) t}{n}-H\left(\frac{2 t}{n}\right) \tag{10.123} \end{equation*} $$
问题10.3(编码稳定子纠错码)假设纠错码的生成元是标准形式,编码 $Z$ 和 $X$ 算子也是在标准形式下构造出来的。给出一个电路,使其能够将生成元和编码 $Z$ 算子构成的 $n \times 2 n$ 校验矩阵,即
$$ G=\left[\begin{array}{lll|lll} 0 & 0 & 0 & I & 0 & 0 \tag{10.124}\\ 0 & 0 & 0 & 0 & I & 0 \\ 0 & 0 & 0 & 0 & 0 & I \end{array}\right] $$
变换到标准形式
$$ \left[\begin{array}{ccc|ccc} I & A_{1} & A_{2} & B & 0 & C_{2} \tag{10.125}\\ 0 & 0 & 0 & D & I & E \\ 0 & 0 & 0 & A_{2}^{T} & 0 & I \end{array}\right] $$
问题10.4(通过隐形传态来编码)假设你有个量子态 $|\psi\rangle$ ,希望实现它的某种稳定子编码。但你不知道 $|\psi\rangle$ 是如何构造的,也就是说它是未知态。用下面的方式构造一个能实现编码的电路。
1.解释如何通过将其写成稳定子状态的办法,以容错的方式构造出部分编码态
$$ \begin{equation*} \frac{|0\rangle\left|0_{L}\right\rangle+|1\rangle\left|1_{L}\right\rangle}{\sqrt{2}} \tag{10.126} \end{equation*} $$
因而这个状态可以通过测量生成元的方式制备出来。 2.使用 $|\psi\rangle$ 和上述状态的未编码量子比特,如何容错地实现贝尔基测量? 3.测量完成后,给出修正剩下编码量子比特所需要的泡利操作,使得状态成为 $|\psi\rangle$ ,因此这跟通常的量子隐形传态很类似。
计算电路的错误概率。解释如何修改电路使其可以实现容错解码。 问题10.5 假设 $C(S)$ 是一个可以纠正单个量子比特错误的 $[n, 1]$ 稳定子编码。仅仅使用容错稳定子状态制备,稳定子元素的容错测量和横向性作用的规范子逻辑门,解释如何在用 $C(S)$ 编码的两个逻辑量子比特之间,实现一个容错的受控非门。
-量子纠错码:一个 $[n, k, d]$ 量子纠错码用 $n$ 个物理量子比特编码 $k$ 个逻辑量子比特,并且距离为 $d$ 。 -量子纠错条件:$C$ 为一个量子纠错码,$P$ 是映射到 $C$ 上的投影算子。该纠错码能纠正错误集 $\left\{E_{i}\right\}$ 当且仅当
$$ \begin{equation*} P E_{i}^{\dagger} E_{j} P=\alpha_{i j} P \tag{10.127} \end{equation*} $$
对某个复数构成的厄米矩阵 $\alpha$ 成立。 -稳定子编码:令 $S$ 是稳定子编码 $C(S)$ 的稳定子,$\left\{E_{j}\right\}$ 是一组噪声,它们是泡利群元素,而且对所有的 $j$ 和 $k$ 有 $E_{j}^{\dagger} E_{k} \notin N(S)-S$ 成立。那么对 $C(S)$ 来说,$\left\{E_{j}\right\}$ 是一组可纠正噪声。 -容错量子计算:编码量子态上的一组通用逻辑操作,可以按下面的要求实现出来,即如果所有逻辑门的错误概率是 $p$ ,编码数据中的等效错误概率将是 $O\left(p^{2}\right)$ 量级。 -阈值定理:假设单个量子门上的噪声低于某个常数阈值,并且满足某些物理上合理的假设,则可以可靠地实现任意长的量子计算,并且为了确保可靠性,多出的代价跟电路的规模比起来很小。
关于经典信息论的纠错码,有许多极好的教科书,我们特别推荐 MacWilliams 和 Sloane 的著作 ${ }^{[\mathrm{MS} 77]}$ 。这本书从非常基础的部分开始,迅速而流畅地进入高级专题,并且涵盖的内容非常丰富。Welsh 也写了一本更新,同样也很好的的教材 ${ }^{[W e l 88]}$ 。
量子纠错由 Shor 和 Steane 独立地发展出来,前者发现了 10.2 节中介绍的九量子比特编码 ${ }^{[S h o 95]}$ ,后者以不同的思路研究了多粒子量子纠缠态的干扰特征。量子纠错条件,则由 Ben- nett,DiVincenzo,Smolin 和 Wootters ${ }^{[B D S W 96]}$ ,以及 Knill 和 Laflamme ${ }^{[K L 97]}$ 独立地基于 Ekert 和 Macchiavello ${ }^{[\text {EM96]}}$ 的工作建立。五量子比特编码由 Bennett,DiVincenzo,Smolin 和 Wootters ${ }^{[B D S W 96]}$以及 Laflamme,Miquel,Paz 和 Zurek ${ }^{[\text {[LMPZ96]独立发现。 }}$
Calderbank 和 Shor ${ }^{[\text {CS96]}}$ 及 Steane ${ }^{[\text {Ste96]}}$ 基于经典纠错的思想发展出 CSS(Calderbank-Shor- Steane)编码。Calderbank 和 Shor 也给出并证明了 CSS 编码的 Gilbert-Varshamov 界限。Gottesman发明了稳定子形式 ${ }^{[G o t 96]}$ ,并用它定义了稳定子编码,同时研究了一些具体编码的性质。Calder- bank,Rains,Shor 和 Sloane 也独立地发明了等价的量子纠错方法,它基于经典编码理论的一些想法 ${ }^{[C R S S 97]}$ 。使用 $G F(4)$ 正交几何方法 ${ }^{[C R S S 98]}$ ,他们归类出几乎所有已知的量子编码,也给出了适用于一般稳定子编码的量子 Gilbert-Varshamov 界限的第一个证明,该界限稍早时候被 Ekert和 Macchiavello 给出 ${ }^{[E M 96]}$ 。Gottesman-Knill 定理似乎由 Gottesman 首先给出 ${ }^{[G o t 97]}$ ,他的证明基于他自己发明的稳定子形式,但他将结果归功于 Knill。Gottesman 将他的稳定子形式应用在许多问题上,取得了可观的成功,具体可以参见[Got97]。我们对稳定子形式的介绍也是基于[Got97],在那里可以找到大部分我们介绍过的结果,比如阿达玛门,相位门和受控非门可以生成规范子 $N\left(G_{n}\right)$ 。
许多针对特定纠错码的构造方法已经被发现,我们在这里只列举一部分。Rains,Hardin,Shor和 Sloane 构造了一些不属于我们讨论过的稳定子编码的有趣例子[RHSS97]。许多人也考虑了量子比特之外的系统上的量子纠错码,我们特别提到 Gottesman ${ }^{[G o t 98 a]}$ 和 Rains ${ }^{[R a i 99 b]}$ 的工作,他们考虑了非二元编码,并且考虑了基于这些编码的容错量子计算。Aharonov 和 Ben-Or ${ }^{[A B O 99]}$ 也基于与有限域上多项式相关的有趣技术构造了非二元编码,并且调研了基于这些编码的容错量子计算。近似量子纠错是我们没有涉及的另一个问题,Leung,Nielsen,Chuang 和 Yamamoto 指出,允许近似可以导致一些更好的量子编码[LNCY97]。
无噪声量子编码和消相干自由子空间是一大类有趣的量子编码(也超出了本章的范围),有许多涉及这两个方面的工作(包括澄清它们之间的关系)。为了了解这些工作,一个好的切人点是下列著作:Zanardi 和 Rasetti ${ }^{[\text {ZR98,Zan99]}}$ ,Lidar,Chuang 和 Whaley ${ }^{[\text {LLCW98]}}$ ,Bacon,Kempe,Lidar和 Whaley ${ }^{[B K L W 99, ~ L B W 99]}$ ,以及 Knill,Laflamme 和 Viola ${ }^{[K L V 99]}$ 。
许多关于量子纠错码的界限已经被发现,经常是由对应的经典界限调整而来。Ekert 和 Mac- chiavello ${ }^{[E M 96]}$ 指出了证明汉明界量子对应的可能性,构造方法和"简并"量子编码扮演的角色由 Gottesman 澄清[Got96]。Shor 和 Laflamme 证明了经典编码理论中 MacWilliams 等式的量子对应 ${ }^{[S L 97]}$ 。这个工作激发了一系列研究工作,例如涉及与量子编码有关的某些多项式的特性(权
重枚举器),或者涉及量子编码界限的更一般性的工作。后者包括下列工作:Ashikhmin ${ }^{[A s h 97]}$ , Ashikhmin 和 Lytsins ${ }^{[\text {[AL99]}}$ ,Rains ${ }^{[R a i 98, ~ R a i 99 c, ~ R a i 99 a] ~}$
经典计算机的容错计算理论由冯•诺依曼建立 ${ }^{[v o n 56]}$ ,并在 Winograd 和 Cowan 的专著中被讨论 ${ }^{[\mathrm{WC} 67]}$ 。Shor 将容错计算的思想介绍到量子计算中来 ${ }^{[\text {Sho96]}}$ ,并展示了如何容错实现所有的计算步骤(状态制备,量子逻辑,纠错及测量)。Kitaev 独立地发展了许多类似的思想 ${ }^{[K i t 97 b, ~ K i t 97 c]}$ ,包
量子计算的发展做出了早期贡献。DiVincenzo 和 Shor 对 Shor 早期的构造做了推广,实现了对稳
实现容错量子计算的方案 ${ }^{[G 0 t 98 b]}$ 。在[Got97]中,可以看到对此工作及许多其他材料的介绍,其中包括一个能解决问题 10.5 的构造。容错 $\pi / 8$ 门和 Toffoli 门的构造基于 Gottesman 和 Chuang ${ }^{[G C 99]}$ ,以及 Zhou 和 Chuang ${ }^{[Z L C O 0]}$ 发展出来的一系列想法;习题 10.68 中容错 Toffoli 门的构造实际上最早来自 Shor ${ }^{[\text {Sho96]}}$ 。Steane 也发展了许多巧妙的容错程序构造方法 ${ }^{[5 t e 99]}$ 。
Kitaev 介绍了一个用拓扑方法协助纠错,从而实现容错计算的漂亮思想 ${ }^{[K i t 97 a, ~ K i t 97 b]}$ 。大概的想法是,将信息储存在系统的拓扑结构中,于是信息就自然地获得了对噪声影响的免疫。包括这些在内的许多漂亮想法后来被 Bravyi 和 Kitaev ${ }^{[\mathrm{BK} 986]}$ ,以及 Freedman 和 Meyer ${ }^{[F M 98]}$ 进一步发展。针对量子纠错这整个领域,Preskill 完成了一个极好的综述 ${ }^{[P r e 97]}$ 。特别是,该综述不但对拓扑量子纠错做了一个漂亮的描述,而且还包含一些非常有启发性的讨论,涉及拓扑纠错的思想能否对黑洞和量子重力这些基本问题提供新的视角。
许多不同的研究组证明了量子计算的阈值结果。这些结果对许多不同的假设成立,所以实质上给出了许多不同的阈值定理。Aharonov 和 Ben-Or ${ }^{[A B O 97, A B O 99]}$ 以及 Kitaev ${ }^{[K i t 97 c, ~ K i t 97 b] ~}$ 的阈值证明不需要快速或可靠的经典计算。Aharonov 和 Ben-Or 也证明了,为了让阈值结果成立,在每个步骤上量子计算机必须有常数程度的并行性 ${ }^{[A B O 97]}$ 。在阈值证明中,Gottesman ${ }^{[\text {GGot97]}}$ 和 Preskill ${ }^{[P r e 98 c, ~ G P 10]}$ 实际上已经对阈值做了非常仔细的优化。Knill,Laflamme 和 Zurek 的结果将精力集中在为一大类错误模型证明阈值定理上 ${ }^{[K L Z 98 a, ~ K L Z 98 b]}$ 。Aharonov,Ben-Or,Impagliazzo 和 Nisan 证明了,为了让阈值定理成立,提供新制备的量子比特是必不可少的 ${ }^{[A B O I N 96]}$ 。进一步的参考文献和背景材料可以在上述系列著作的引文中看到。特别是,这些研究组的工作,都建立在 Shor 关于容错量子计算的开创性工作基础之上。
关于容错量子计算,已经可以看到许多优秀的评论文章,从许多不同的角度,涵盖了很多我们在这里并未涉及的想法。Aharonov 的学位论文 ${ }^{[\text {Aha99a]}]}$ 以内容自我包含的方式发展出了阈值定理,并讨论了许多相关的材料。Gottesman 的学位论文 ${ }^{[G o t 97]}$ 也提供了对容错量子计算的详细介绍,并特别强调了纠错码的性质,给出了针对各种纠错码的容错构造。Knill,Laflamme 和 Zurek ${ }^{[K L Z 98 a]}$也写了一篇关于阈值结果的概述。最后,Preskill 有两篇极好的文章 ${ }^{[P r e 98 c, ~ P r e 98 a]}$ ,介绍了量子纠错和容错量子计算。