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

T 门和 T 工厂

本文介绍 T 门和 T 工厂在容错量子计算中的作用。 提供量子算法后,估计运行 T 门和 T 工厂所需的资源变得至关重要。

通用量子门集

根据 DiVincenzo 的标准 ,可缩放的量子计算机必须能够实现一 组通用量子门通用集包含执行任何量子计算所需的所有门,也就是说,任何计算都必须分解回通用门的有限序列。 量子计算机至少必须能够使用单量子比特门) 将单个量子比特移动到 Bloch Sphere (上的任意位置,并在系统中引入纠缠,这需要多量子比特门。

一台经典计算机上,只有四个可将一个位映射到另一个位的函数。 与此相反,一台量子计算机上,单个量子比特上存在无限数量的幺正变换。 因此,任何有限基元量子运算或门都不能完全复制量子计算中允许的无限一元转换集。 这意味着,与经典计算不同,量子计算机不可能使用有限数量的门来精确地实现每个可能的量子程序。 所以,量子计算机不可能像经典计算机那样具有通用性。 因此,当我们说一组门对量子计算是通用的时,我们的意思实际上比在经典计算中表达的相关意思稍弱一些。

为了获得通用性,要求量子计算机仅使用有限长度门序列来 近似 有限误差中的每个单一矩阵。

换句话说,如果任何幺正变换都可以近似地写为一组门的乘积,则该门集就是通用的门集。 对于任何规定的误差限制,必须存在门$设置G_{1}、G_{2}、\ldots G_N$

$$ G_N G_{N-1}\cdots G_2 G_1 \approx U。$$

由于矩阵乘法的约定是从右向左相乘,$$因此此序列中的第一个门运算G_N实际上是应用于量子状态向量的最后一个门运算。 更正式地说,如果对于每个容错 $\epsilon>0$ 都存在 $G_1,\ldots, G_N$,使 $G_N\ldots G_1$ 和 $U$ 之间的距离最多为 $\epsilon$,则此类门集是通用的。 理想情况下,达到此 $epsilon$ 距离所需的 $N$ 的值应该通过 $1/\epsilon$ 进行多对数缩放。

例如,由 Hadamard、CNOT 和 T 门构成的集是一个通用集,从中可以生成任意数量的量子比特 () 的任何量子计算。 Hadamard 和 T 门集生成任何单量子比特门:

$$H=\frac{1}{\sqrt{ 1 和 1 \\ 1 &-1 \end{bmatrix}, \qquad T=\begin{bmatrix} 1 & 0 \\ 0 0 & e^{i\pi/4}\end{bmatrix}。&{2}}\begin{bmatrix} $$

在量子计算机中,量子门可分为两类:克利福德门和非克利福德门,在本例中为 T 门。 仅使用 Clifford 门生成的量子程序可以使用经典计算机进行有效模拟,因此需要非 Clifford 门才能获得量子优势。 在许多量子纠错 (QEC) 方案中,所谓的 Clifford 门很容易实现,也就是说,在操作方面需要很少的资源,量子比特才能容忍地实现容错,而非 Clifford 门在要求容错时成本很高。 在通用量子门集中,T 门通常用作非 Clifford 门。

默认包含在 Q# 中的标准单量子比特 Clifford 门集包括

$$H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 \\ 1 &-1 \end{bmatrix} , \qquad S =\begin{bmatrix} 1 & 0 \\ 0 0 & i \end{bmatrix}= T^2,X \qquad=\begin{bmatrix} 0 &1 \\ 1&和 0 \end{bmatrix}= HT^4H,$$

$$Y =\begin{bmatrix} 0 & -i \\ amp&; 0 \end{bmatrix}=T^2HT^4 HT^6,Z \qquad=\begin{bmatrix}1&0\\ 0&-1 \end{bmatrix}=T^4。 $$

与 T 门) (非 Clifford 门一起,这些运算可以组合为近似单个量子比特上的任何单一转换。

Azure Quantum 资源估算器中的 T 工厂

非 Clifford T 门准备至关重要,因为其他量子门不足以进行通用量子计算。 若要为实际规模算法实现非 Clifford 操作,需要低误差率 T 门 (或 T 状态) 。 但是,它们可能难以直接在逻辑量子比特上实现,并且对于某些物理量子比特来说也可能很困难。

在容错量子计算机中,所需的低误差率 T 状态是使用 T 状态蒸馏工厂(简称 T 工厂)生成的。 这些 T 工厂通常涉及一系列轮次的蒸馏,其中每个轮采用许多以较小距离代码编码的干扰 T 状态,使用提取单元处理它们,并输出较少干扰的 T 状态(编码在较大距离代码中),轮数、蒸馏单位和距离都是参数,可以改变。 此过程是循环访问的,其中一轮的输出 T 状态作为输入馈送到下一轮。

根据 T 工厂的持续时间, Azure Quantum 资源估算器 确定 T 工厂在超过算法的总运行时之前可以调用的频率,从而确定在算法运行时期间可以生成多少 T 状态。 通常,所需的 T 状态比在算法运行时期间单个 T 工厂的调用中可以生成的状态多。 为了生成更多的 T 状态,资源估算器使用 T 工厂的副本。

T 工厂物理估计

资源估算器计算运行算法所需的 T 状态总数,以及单个 T 工厂及其运行时的物理量子比特数。

目标是在算法运行时中使用尽可能少的 T 工厂副本生成所有 T 状态。 下图显示了算法的运行时和一个 T 工厂的运行时的示例。 可以看到 T 工厂的运行时比算法的运行时短。 在此示例中,一个 T 工厂可以提取一个 T 状态。 出现了两个问题:

  • 在算法结束前多久调用一次 T 工厂?
  • 创建算法运行时所需的 T 状态数需要多少个 T 工厂提炼轮的副本?
显示算法运行时 (红色) 与一个 T 工厂的运行时 (蓝色) 的关系图。在算法结束之前,T 工厂可以运行 8 次。如果需要 30 T 状态,并且 T 工厂可以在运行时运行 8 次,则需要并行运行的 T 工厂的 4 个副本,以提取 30 T 状态。

在算法结束之前,可以调用 T 工厂 8 次,这称为“提炼轮”。 例如,如果需要 30 T 状态,则会在算法的运行时调用单个 T 工厂 8 次,从而创建 8 个 T 状态。 然后,需要四个并行运行的 T 工厂蒸馏轮的副本,以提取所需的 30 T 状态。

注意

请注意,T 工厂副本和 T 工厂调用不同。

T 状态蒸馏工厂在一系列轮次中实现,其中每个轮由并行运行的一组蒸馏装置副本组成。 资源估算器计算运行一个 T 工厂所需的物理量子比特数,以及 T 工厂运行时间以及其他必需的参数。

只能对 T 工厂执行完全调用。 因此,在某些情况下,所有 T 工厂调用的累积运行时都小于算法运行时。 由于量子比特由不同的轮重复使用,因此一个 T 工厂的物理量子比特数是用于一轮的最大物理量子比特数。 T 工厂的运行时是所有轮次运行时的总和。

注意

如果物理 T 门误差率低于所需的逻辑 T 状态错误率,则资源估算器无法执行良好的资源估计。 提交资源估算作业时,可能会遇到找不到 T 工厂,因为所需的逻辑 T 状态错误率太低或太高。

有关详细信息,请参阅 评估需求以扩展到实际量子优势的附录 C。

后续步骤