培训
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
量子关系图约定
有时,在线路图中,量子算法比在等效的书面矩阵表示形式中更容易理解。 本文介绍如何读取量子线路图及其约定。
有关详细信息,请参阅 如何可视化量子线路图。
在量子线路中,时间按从左到右的顺序流动。 量子门按时间顺序排列,最左侧的门是应用于量子比特的第一个门。
以以下量子线路图为例:
- 量子比特寄存器:量子比特寄存器显示为水平线,每一行表示量子比特。 上行是标记为 0 的量子比特寄存器,第二行是标记为 1 的量子位寄存器,依此表示。
- 量子门:量子运算由 量子门表示。 术语“量子门”类似于经典逻辑门。 作用于一个或多个量子比特寄存器的门用一个框表示。 在此示例中,符号表示 Hadamard 操作。
- 受控门:受控门对两个或多个量子比特执行操作。 在此示例中,符号表示 CNOT 门。 黑色圆表示控制量子比特,圆圈内的十字架表示 target 量子比特。
- 度量操作:计量符号表示度量操作。 测量操作采用量子比特寄存器作为输入和输出经典信息。
由于时间从左向右流动,因此首先应用最左侧的门,因此以下量子线路的操作是单一矩阵
备注
矩阵乘法遵守相反的约定,即最先应用最右侧的矩阵。 不过,在量子线路图中,最先应用的是最左侧的门。 这种差异有时可能会导致混淆,因此有必要记下线性代数表示法和量子关系图之间的这一明显差异。
在量子线路图中,进入量子门的线路表示输入到量子门的量子比特,退出量子门的线路表示从量子门输出的量子比特。
量子门的输入数等于量子门的输出数。 这是因为量子运算是统一的,因此是可逆的。 如果量子门的输出多于输入,它就不可逆,因此不是统一的,这是矛盾。
因此,对于线路图中绘制的任何框,进入该框的线数和离开该框的线数必须完全相等。
多量子比特线路图遵守与单量子比特线路图类似的约定。
例如,可以将双量子比特单位运算
根据使用线路的场景,我们还可将
或许这类抽象线路图最有用的性质是,可通过它们大致描述复杂的量子算法,而不必细致编制到描绘出基础的量子门。 这意味着你可直观地查看大型量子算法的数据流,无需理解有关算法中每个子例程如何工作的所有细节。
量子控制门是两个量子比特门,如果控制量子比特处于特定状态,则向量子比特应用单量子比特门 target 。
例如,假设量子控制门(
$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$
也就是说,受控门将
在这里,黑色圆圈表示门受控的量子位,垂直线表示当控制量子比特采用值
对于 G X
Q# 提供了方法来自动生成操作的受控版本,这让程序员不必再手动编码这些操作。 下面是它的一个示例:
operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
H(qubit);
}
量子门也可以在测量后应用,其中度量结果充当经典控制位。
以下符号表示经典控制的门,其中
测量操作采用量子位寄存器、度量值,并将结果输出为经典信息。
测量操作由计量符号表示,它始终将输入看做是一个量子比特寄存器(表示为实线),将输出看做是经典信息(表示为双线)。 具体而言,度量操作的符号如下所示:
在中 Q#, Measure
运算符实现度量运算。
考虑酉变换
$\mathrm{CNOT}_{01}(H\otimes 1)\ket{00}=\frac{1}{\sqrt{2}}\left(\ket{{00} + \ket{11}\right),$
在量子算法和量子纠错中,普遍存在这种复杂程度或更复杂的操作。
显示准备这种最大纠缠的量子态的线路图为:
Hadamard 门后面的符号表示 CNOT 门,其中黑色圆表示控制量子比特,圆内的十字架表示 target 量子比特。 此量子线路作用于两个量子比特(或等效为作用于两个寄存器,每个寄存器由一个量子比特组成)。
量子传送是演示线路组件的最佳量子算法之一。
量子传送是一种协议,允许量子状态从一个量子比特传输到另一个量子位,同时在发送方和接收方之间共享纠缠状态,以及它们之间的经典通信。
出于学习目的,发送方称为 Alice,接收方称为 Bob,要传送的量子位称为消息量子比特。 Alice 和 Bob 各保留一个量子比特,Alice 有一个额外的量子比特,即消息量子比特。
以下线路图演示了传送协议:
我们来细分传送协议的步骤:
- 量子比特寄存器 q0 是消息量子比特,量子比特寄存器 q1 是 Alice 的量子比特,量子比特寄存器 q2 是 Bob 的量子比特。 消息量子比特处于未知状态,Alice 和 Bob 的量子比特处于
状态。 - Hadamard 门应用于 Alice 的量子比特。 由于量子比特处于
状态,因此生成的状态为 $\frac{1}{\sqrt{{2}}(\ket{{0} + \ket{1})$ 。 - CNOT 门应用于 Alice 和 Bob 的量子位。 Alice 的量子比特是控制量子比特,Bob 的量子比特是 target 量子比特。 结果状态为 $\frac{{1}{\sqrt{2}}(\ket{00} + \ket{{11})$。 Alice 和 Bob 现在共享纠缠的状态。
- CNOT 门应用于消息量子比特和 Alice 的量子比特。 由于 Alice 的量子比特也与 Bob 的量子比特纠缠,因此生成的状态是三量子位纠缠状态。
- Hadamard 门应用于消息量子比特。
- Alice 测量 她的两个量子位,并将测量结果告知 Bob,这不会反映在线路中。 度量结果是两个经典位,可取值 00、01、10 或 11。
- 两个经典控制的 Pauli 门 X 和 Z 将 应用于 Bob 的量子比特,具体取决于结果位为值
。 生成的状态是原始消息量子比特状态。