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

量子关系图约定

有时,在线路图中,量子算法比在等效的书面矩阵表示形式中更容易理解。 本文介绍如何读取量子线路图及其约定。

有关详细信息,请参阅 如何可视化量子线路图

读取量子线路图

在量子线路中,时间按从左到右的顺序流动。 量子门按时间顺序排列,最左侧的门是应用于量子比特的第一个门。

以以下量子线路图为例:

具有两个寄存器的量子线路示意图,一个有 hadamard 门,一个受控门和一个测量。

  1. 量子比特寄存器:量子比特寄存器显示为水平线,每一行表示量子比特。 上行是标记为 0 的量子比特寄存器,第二行是标记为 1 的量子位寄存器,依此表示。
  2. 量子门:量子运算由 量子门表示。 术语“量子门”类似于经典逻辑门。 作用于一个或多个量子比特寄存器的门用一个框表示。 在此示例中,符号表示 Hadamard 操作。
  3. 受控门:受控门对两个或多个量子比特执行操作。 在此示例中,符号表示 CNOT 门。 黑色圆表示控制量子比特,圆圈内的十字架表示 target 量子比特。
  4. 度量操作:计量符号表示度量操作。 测量操作采用量子比特寄存器作为输入和输出经典信息。

应用量子门

由于时间从左向右流动,因此首先应用最左侧的门,因此以下量子线路的操作是单一矩阵 CBA

量子门在量子线路中从左向右应用的关系图。

备注

矩阵乘法遵守相反的约定,即最先应用最右侧的矩阵。 不过,在量子线路图中,最先应用的是最左侧的门。 这种差异有时可能会导致混淆,因此有必要记下线性代数表示法和量子关系图之间的这一明显差异。

量子线路的输入和输出

在量子线路图中,进入量子门的线路表示输入到量子门的量子比特,退出量子门的线路表示从量子门输出的量子比特。

量子门的输入数等于量子门的输出数。 这是因为量子运算是统一的,因此是可逆的。 如果量子门的输出多于输入,它就不可逆,因此不是统一的,这是矛盾。

因此,对于线路图中绘制的任何框,进入该框的线数和离开该框的线数必须完全相等。

多量子比特操作

多量子比特线路图遵守与单量子比特线路图类似的约定。 例如,可以将双量子比特单位运算 B 定义为 HSX因此等效的量子线路如下:

双量子比特单一运算的线路图。

根据使用线路的场景,我们还可将 B 看作是操作一个双量子比特寄存器,而不是操作两个单量子比特寄存器。

或许这类抽象线路图最有用的性质是,可通过它们大致描述复杂的量子算法,而不必细致编制到描绘出基础的量子门。 这意味着你可直观地查看大型量子算法的数据流,无需理解有关算法中每个子例程如何工作的所有细节。

受控门

量子控制门是两个量子比特门,如果控制量子比特处于特定状态,则向量子比特应用单量子比特门 target 。

例如,假设量子控制门(\LambdaG其中单个量子比特的值控制 G。 可以通过查看产品状态输入的以下示例来理解受控门 ΛG ):

$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$

也就是说,受控门将 G 应用于包含 ψ 的寄存器(当且仅当控制量子位取值 1 时)。 一般情况下,此类受控操作按以下符号在线路图中描述:

单声控制的门的线路图。

在这里,黑色圆圈表示门受控的量子位,垂直线表示当控制量子比特采用值 1 时应用的酉操作。

对于 G XG==Z,以下表示法用于描述入口的受控版本(请注意,受控 X 门是 CNOT 门):

受控门的特殊情况的线路图。

Q# 提供了方法来自动生成操作的受控版本,这让程序员不必再手动编码这些操作。 下面是它的一个示例:

Q#
operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
    H(qubit);
}

经典控制的门

量子门也可以在测量后应用,其中度量结果充当经典控制位。

以下符号表示经典控制的门,其中 G 在经典控制位上应用条件为值 1

表示受控操作的线路图。

测量运算符

测量操作采用量子位寄存器、度量值,并将结果输出为经典信息。

测量操作由计量符号表示,它始终将输入看做是一个量子比特寄存器(表示为实线),将输出看做是经典信息(表示为双线)。 具体而言,度量操作的符号如下所示:

表示度量操作的符号。

在中 Q#, Measure 运算符实现度量运算。

示例:酉变换

考虑酉变换  CNOT01(H1)。 这种门序列对量子计算来说至关重要,因为它会创建一个最大纠缠的双量子比特态:

$\mathrm{CNOT}_{01}(H\otimes 1)\ket{00}=\frac{1}{\sqrt{2}}\left(\ket{{00} + \ket{11}\right),$

在量子算法和量子纠错中,普遍存在这种复杂程度或更复杂的操作。

显示准备这种最大纠缠的量子态的线路图为:

最大纠缠双量子位状态的线路图。

Hadamard 门后面的符号表示 CNOT 门,其中黑色圆表示控制量子比特,圆内的十字架表示 target 量子比特。 此量子线路作用于两个量子比特(或等效为作用于两个寄存器,每个寄存器由一个量子比特组成)。

示例:Teleportation 线路图

量子传送是演示线路组件的最佳量子算法之一。

量子传送是一种协议,允许量子状态从一个量子比特传输到另一个量子位,同时在发送方和接收方之间共享纠缠状态,以及它们之间的经典通信。

出于学习目的,发送方称为 Alice,接收方称为 Bob,要传送的量子位称为消息量子比特。 Alice 和 Bob 各保留一个量子比特,Alice 有一个额外的量子比特,即消息量子比特。

以下线路图演示了传送协议:

传送协议的量子线路示意图。

我们来细分传送协议的步骤:

  1. 量子比特寄存器 q0 是消息量子比特,量子比特寄存器 q1 是 Alice 的量子比特,量子比特寄存器 q2 是 Bob 的量子比特。 消息量子比特处于未知状态,Alice 和 Bob 的量子比特处于 |0 状态。
  2. Hadamard 门应用于 Alice 的量子比特。 由于量子比特处于 |0 状态,因此生成的状态为 $\frac{1}{\sqrt{{2}}(\ket{{0} + \ket{1})$ 。
  3. CNOT 门应用于 Alice 和 Bob 的量子位。 Alice 的量子比特是控制量子比特,Bob 的量子比特是 target 量子比特。 结果状态为 $\frac{{1}{\sqrt{2}}(\ket{00} + \ket{{11})$。 Alice 和 Bob 现在共享纠缠的状态。
  4. CNOT 门应用于消息量子比特和 Alice 的量子比特。 由于 Alice 的量子比特也与 Bob 的量子比特纠缠,因此生成的状态是三量子位纠缠状态。
  5. Hadamard 门应用于消息量子比特
  6. Alice 测量 她的两个量子位,并将测量结果告知 Bob,这不会反映在线路中。 度量结果是两个经典位,可取值 00、01、10 或 11。
  7. 两个经典控制的 Pauli 门 X 和 Z 将 应用于 Bob 的量子比特,具体取决于结果位为值 1。 生成的状态是原始消息量子比特状态。