你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
量子线路图
本文介绍了量子线路图的相关约定。 了解视觉约定后,你会发现与效果相同的书面矩阵表述相比,在线路图中更容易理解某些量子操作。
使用 Azure Quantum,可以使用 Qiskit、 Cirq 以及 特定于提供程序的格式化线路提交量子线路。
提示
请查看 quantum-viz.js,这是一种用于呈现量子线路的可配置工具。 可以将库 quantum-viz.js (或 qviz) 集成到任何项目中。 它旨在轻松配置,同时允许复杂的用户交互,例如在不同度量结果之间切换。
量子关系图约定
在线路图中,每条实线都描述一个量子比特,更常见地是描述一个量子比特寄存器。 按照约定,最上面那根线是量子比特寄存器 $0$,其余的按顺序标记。
操作由量子门表示。 术语“量子门”类似于经典逻辑门。 作用于一个或多个量子比特寄存器的门用一个框表示。 例如,符号
是作用于一个包含单量子比特的寄存器的 Hadamard 操作。
在量子线路中,时间按从左到右的顺序流动。 量子门按时间顺序排列,最左侧的门是应用于量子比特的第一个门。 也就是说,如果你将线描述为包含量子态,那么这些线将按图中从左到右的顺序带着量子态通过每个门。 也就是说,量子线路的动作
是酉矩阵 $CBA$。
注意
矩阵乘法遵守相反的约定,即最先应用最右侧的矩阵。 不过,在量子线路图中,最先应用的是最左侧的门。 这种差异有时可能会导致混淆,因此有必要记下线性代数表示法和量子关系图之间的这一明显差异。
示例:酉变换
考虑酉变换 $\text{ CNOT}_{01}(H\otimes 1)$。 这种门序列对量子计算来说至关重要,因为它会创建一个最大纠缠的双量子比特态:
$\mathrm{CNOT}_{01} (H\otimes 1) \left=\ket{00}\frac{1}{\sqrt{2}} ({00}\ket{+ \ket{11}\right) ,$
在量子算法和量子纠错中,普遍存在这种复杂程度或更复杂的操作。
显示准备这种最大纠缠的量子态的线路图为:
Hadamard 门后面的符号表示 CNOT 门,其中黑色圆圈表示控制量子比特,圆圈内的十字表示 target 量子比特。 此量子线路作用于两个量子比特(或等效为作用于两个寄存器,每个寄存器由一个量子比特组成)。
量子线路的输入和输出
在前面的示例中,输入到一个量子门的线(量子比特)数量与从该量子门中输出的线数完全相同。 这乍一看可能很合理,通常量子线路的输出可能比输入要多或者要少。 但这是不可能的,因为量子操作(测量除外)是酉操作,因此是可逆的。 如果它们的输出数量与输入数量不相等,则不会是可逆的,因此不是酉操作,这就出现了矛盾。 因此,对于线路图中绘制的任何框,进入该框的线数和离开该框的线数必须完全相等。
多量子比特线路图遵守与单量子比特线路图类似的约定。 作为澄清的示例,一个双量子位酉运算 $B$ 可以定义为$(H S\otimes X)$,因此等效量子线路为:
根据使用线路的场景,我们还可将 $B$ 看作是操作一个双量子比特寄存器,而不是操作两个单量子比特寄存器。
或许这类抽象线路图最有用的性质是,可通过它们大致描述复杂的量子算法,而不必细致编制到描绘出基础的量子门。 这意味着你可直观地查看大型量子算法的数据流,无需理解有关算法中每个子例程如何工作的所有细节。
受控门
量子单控门的操作表示为 $\Lambda(G)$,其中单个量子比特的值控制 $G$ 的应用,可以通过查看以下乘积态输入示例来理解:
$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$
也就是说,受控门将 $G$ 应用于包含 $\psi$ 的寄存器(当且仅当控制量子位取值 $1$ 时)。 通常,量子线路图中将这种受控操作描述为
在这里,黑色圆圈表示门受控的量子位,垂直线表示当控制量子比特采用值 $1$ 时应用的酉操作。 对于 G X$ 和 $G==Z$ 的特殊情况$,以下表示法用于描述门的受控版本 (请注意,受控 X 门是 CNOT 门) :
Q# 提供了方法来自动生成操作的受控版本,这让程序员不必再手动编码这些操作。 下面是它的一个示例:
operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
H(qubit);
}
测量运算符
在线路图中直观呈现的剩余操作是测量。 测量采用量子比特寄存器、对其进行测量,然后以经典信息的形式输出结果。
测量操作由计量符号表示,它始终将输入看做是一个量子比特寄存器(表示为实线),将输出看做是经典信息(表示为双线)。 具体来说,这种子线路如下所示:
Q# 实现了一个测量运算符用于此目的。
同样地,子线路
提供一个经典的受控门,其中 $G$ 有条件地应用于采用值 $1$ 的经典受控位。
隐形传态线路图
量子隐形传态可能是说明这些组成部分的最佳量子算法。
量子隐形传态是一种通过使用纠缠和测量在量子计算机之间(或者甚至在一个量子网络中不同的量子计算机之间)移动数据的方法。 有趣的是,它实际上可将量子态(比如给定量子比特中的值)从一个量子比特移动到另一个量子比特,即使不知道量子比特的值是什么也能做到。 这是协议根据量子力学定律工作所必需的。
下面显示了量子隐形传态线路,并提供了一个带注释的线路版本来说明如何阅读量子线路。
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈