人人量子计算 - 第二部分:量子门





5.00/5 (2投票s)
量子计算机门是什么,它们如何使用,以及它们对量子比特的影响的介绍。
第一部分:经典计算与量子计算 | 第三部分:量子电路与OpenQASM |
目录
引言
在本系列文章的第一部分中,我们了解了量子计算机和经典计算机的区别,学习了什么是量子比特以及如何表示它。如果您还没有阅读第一部分,我强烈建议您在开始阅读本文之前先阅读。以下所有内容都建立在第一部分介绍的概念之上。
在这一部分,我们将了解如何使用各种*量子门*来操作量子比特。这些门是经典计算机中逻辑门的量子计算等价物。量子门改变一个或多个量子比特的状态,从而实现计算。我们将从更简单、更常见的门开始介绍量子门,然后逐步深入到不太常见、更通用的门。初学者最应该学习的门是恒等门、泡利-X/-Y/-Z、哈达玛门、CNOT门、SWAP门、Toffoli门、\(S\)、\(S^\dagger\)、\(T\)和\(T^\dagger\)。我建议您首先掌握这些门,因为它们是最常见的,也是QX服务默认提供的门(不包括SWAP和Toffoli门)。
矩阵回顾
在讨论不同的量子门(也称为*操作*)及其功能之前,我们需要先回顾一些矩阵代数。这是必要的,因为要确定一个门操作量子比特后量子比特的状态,需要将表示量子比特初始状态的矩阵乘以门矩阵。
作用于单个量子比特的门由一个\(2 \times 2\)的酉矩阵表示。酉矩阵意味着,如果您将矩阵与其(复数)共轭转置相乘,您将得到一个单位矩阵。这是什么意思?让我们一步一步地分解以使其清晰。
让我们从以下形式的矩阵开始:
复数的共轭意味着改变虚部的符号。所以,如果您有一个复数\(a + ib\),它的共轭是\(a - ib\)。反之亦然。如果您有一个数\(a - ib\),它的共轭是\(a + ib\)。
矩阵的转置是另一个通过交换行和列形成的矩阵。对于我们的矩阵
转置将是
现在,如果我们取这个矩阵的共轭(通过改变虚数符号),我们将得到以下矩阵
在这种情况下,它恰好与原矩阵相同。
现在,单位矩阵是一个主对角线(从左上到右下)为\(1\),其他所有元素为\(0\)的矩阵。所以一个\(2 \times 2\)的单位矩阵将是
总而言之,如果我们的原矩阵是酉矩阵,那么将其与其共轭转置相乘应该得到上面的单位矩阵。
结果矩阵是
矩阵乘法
如果两个方阵,\(A\)和\(B\),其中每个矩阵定义为
相乘,则结果矩阵\(C\)(即\(C = AB\))等于
由于结果矩阵是单位矩阵,我们证明了原矩阵确实是酉矩阵。实际上,这是一个特殊的矩阵,称为*泡利-Y门*。我们将在下一节中讨论这个门和其他门,但首先是一些关于符号的快速说明。
- 如果一个矩阵写成\(U\),那么共轭转置写成\(U^\dagger\)。
- 单位矩阵通常写成\(I\)。
- 为了展示上述酉矩阵的矩阵乘法,我们可以写成\(U^{\dagger}U=I\)。
- 为了展示一个门作用在一个量子比特上,导致量子比特处于新状态,我们可以写成\(|\psi^{\prime}\rangle = U|\psi\rangle\),其中\(|\psi^{\prime}\rangle\)是门完成对量子比特的操作后量子比特的状态。
由于写出矩阵乘法可能很冗长,特别是当您开始使用三量子比特门(如Toffoli门)时,它们由\(8 \times 8\)矩阵表示,我提供了一个在线矩阵计算器的链接。有关此资源的更多信息以及指向该页面的链接,可以在参考资料部分找到。
量子门
量子门是量子电路的基本构建块,也是经典计算机中逻辑门的量子模拟。量子门有两个重要的特性需要记住:
- 量子门是*可逆的*,而许多经典逻辑门则不是。例如,您无法仅根据经典AND门的输出确定其输入是什么。然而,对于量子门,可以从输出中重构输入。
- 大多数量子门一次操作一个或两个量子比特,但*所有*量子门都由酉矩阵表示。如果一个门作用于\(n\)个量子比特,那么该门的矩阵是\(2^n \times 2^n\)的酉矩阵。
在本节中,在描述量子门如何改变量子比特的状态时,除非另有说明,否则假定量子比特初始处于基态(即\(|0\rangle\))。要确定量子比特在被门操作后状态如何变化,需要将量子比特当前状态的矩阵乘以作用于量子比特的门的矩阵。一个具体的例子在泡利-X门描述下给出,但对于所有门都一样,只是相乘的矩阵不同。
单量子比特门
恒等门
最简单的门称为恒等门。
此门不改变量子比特的状态,并输出输入的所有内容。例如,恒等门将\(|0\rangle\)映射到\(|0\rangle\),将\(|1\rangle\)映射到\(|1\rangle\)。它相当于NOP(无操作)。
泡利门
三个最常见的门称为泡利门。包括泡利-X门、泡利-Y门和泡利-Z门。这些门的矩阵如下:
我们稍后会看到,这三个门都是更通用的旋转门的特例。
泡利-X门 (NOT门)
我们将从描述泡利-X门开始。为了了解这个门如何改变量子比特的状态,以及为什么它有时被称为NOT门,我们将把起始量子比特的矩阵乘以泡利-X门矩阵(如上所述)。
应用泡利-X门的结果是将\(|0\rangle\)(\(\begin{pmatrix} 1 \\ 0 \end{pmatrix}\))状态的量子比特改变为\(|1\rangle\)(\(\begin{pmatrix} 0 \\ 1 \end{pmatrix}\))状态。也就是说,它将基态的量子比特变为激发态的量子比特。如果该门作用于处于激发态\(|1\rangle\)的量子比特,则结果状态将是基态\(|0\rangle\)。这就是为什么该门也称为NOT门(或位翻转门),因为它作用的方式与经典NOT门相同,即改变量子比特到其相反的状态。如果我们回忆一下布洛赫球
由Glosser.ca - 原创作品,CC BY-SA 3.0,链接
X门在球体上绕X轴旋转\(\pi\)弧度,并具有\(X \longrightarrow X\)和\(Z \longrightarrow -Z\)的性质。
泡利-Y门
泡利-Y门,顾名思义,在布洛赫球上绕Y轴旋转\(\pi\)弧度,并具有\(X \longrightarrow -X\)和\(Z \longrightarrow -Z\)的性质。该门将\(|0\rangle\)映射到\(i|1\rangle\),将\(|1\rangle\)映射到\(-i|0\rangle\)。通过将量子比特矩阵乘以上面给出的泡利-Y门矩阵,可以轻松证明这一点。
泡利-Z门 (相位翻转门)
与泡利-X门和泡利-Y门一样,泡利-Z门作用于单个量子比特,并绕布洛赫球的Z轴旋转\(\pi\)弧度,并具有\(X \longrightarrow -X\)和\(Z \longrightarrow Z\)的性质。
该门是相位移门的一个特例,其中\(\theta = \pi\),有时被称为相位翻转门。它不改变\(|0\rangle\)状态(即\(Z|0\rangle = |0\rangle\)),但它将\(|1\rangle\)映射到\(-|1\rangle\)。
哈达玛门
另一个常见且重要的门是哈达玛门。这个门很重要,因为它用于将量子比特置于叠加态(即\(|0\rangle\)和\(|1\rangle\)的混合),正如我们在本系列第一部分中所学到的,这是量子计算机获得强大能力的原因之一。哈达玛门的矩阵是:
该门相当于两次旋转:绕X轴旋转\(\pi\)弧度,然后绕Y轴旋转\(\frac{\pi}{2}\)弧度。这两次旋转也等同于绕\((\hat{x} + \hat{z}{)}/\sqrt{2}\)轴旋转\(\pi\)弧度。
为了了解哈达玛门如何改变量子比特的状态,我们可以将\(|0\rangle\)的矩阵乘以上面给出的哈达玛门矩阵。该操作的结果是\(\frac{|0\rangle + |1\rangle}{\sqrt{2}}\)。这也可以写成\(\frac{1}{\sqrt{2}}|0\rangle + \frac{1}{\sqrt{2}}|1\rangle\),其矩阵形式为:
这意味着测量到\(|0\rangle\)状态或\(|1\rangle\)状态的概率是\(50%\)。我们在第一部分的**量子比特**部分解释了为什么是\(50/50\)。此外,如果您回顾第一部分中的**量子力学五大定律**侧边栏,您会注意到上述矩阵也称为\(|+\rangle\)状态。
如果哈达玛门作用于\(|1\rangle\)状态的量子比特,结果将是\(\frac{|0\rangle - |1\rangle}{\sqrt{2}}\)。这也称为\(|-\rangle\)状态。符号的差异(\(-\)而不是\(+\))表示相位差。然而,正如我们在第一部分**可视化量子比特**下提到的,相位因子本身没有物理意义。因此,哈达玛门作用于\(|1\rangle\)状态的量子比特,导致量子比特状态有等于\(|0\rangle\)或\(|1\rangle\)的概率,与门作用于\(|0\rangle\)状态的量子比特时相同。
对\(|0\rangle\)或\(|1\rangle\)量子比特应用哈达玛门会将其置于一个测量为\(|0\rangle\)或\(|1\rangle\)的概率相等的(即叠加)状态。然而,连续两次应用该门会将量子比特置于一个确定的状态,该状态是量子比特在第一次应用哈达玛门之前的状态。即:
即使在两种情况下,在应用第一个门后,量子比特都处于叠加态。通过将量子比特的矩阵与哈达玛矩阵相乘,然后将结果矩阵与哈达玛矩阵相乘,可以轻松验证这一点。这是因为将量子门矩阵与其自身相乘会得到单位矩阵,而任何矩阵乘以单位矩阵都等于其本身(即,将矩阵乘以单位矩阵类似于将数字乘以一)。该门还具有\(X \longrightarrow Z\)和\(Z \longrightarrow X\)的性质。
多量子比特门
仅作用于单个量子比特的门,虽然必要,但不足以执行计算。为此,需要操作多个量子比特的门。本节将介绍三个最常见的*多量子比特门*。
CNOT门
CNOT门是一个*受控*NOT门。该门作用于两个量子比特,并且仅当第一个量子比特为\(|1\rangle\)时,才对第二个量子比特执行NOT操作。控制量子比特由点表示,目标量子比特由带交叉的圆圈表示。左图中的控制量子比特是上面一行,目标量子比特是下面一行。
如本文量子门介绍部分所述,作用于\(n\)个量子比特的门由大小为\(2^n \times 2^n\)的矩阵表示。对于CNOT门,该矩阵是:
CNOT门的真值表是:
以前 | 操作后 | ||
Control | 目标 | Control | 目标 |
\(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) |
\(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) |
从这个真值表可以看出,目标量子比特的最终状态是经典XOR门的模拟。当两个输入相同时,目标量子比特为\(|0\rangle\),但当输入不同时,目标量子比特为\(|1\rangle\)。当控制量子比特固定为\(|0\rangle\)或\(|1\rangle\)时,目标量子比特的最终状态分别等同于应用恒等门或泡利-X(NOT)门。
正如我们所知,量子比特也可以处于叠加态,而不是确定的\(|0\rangle\)或\(|1\rangle\)状态。如果我们有一个处于叠加态的量子状态,表示为\(a|00\rangle + b|01\rangle + c|10\rangle + d|11\rangle\),那么应用CNOT门将得到表示为\(a|00\rangle + b|01\rangle + c|11\rangle + d|10\rangle\)的叠加状态。
SWAP门
SWAP门的作用正如其名称所示。它交换两个量子比特。这意味着当将SWAP门应用于两个量子比特时,结果状态是:
SWAP门的矩阵是:
要将此门应用于两个量子比特,我们需要扩展量子比特矩阵以容纳两个量子比特。例如,对于处于\(|0\rangle\)状态的单个量子比特,矩阵是\(\begin{pmatrix} 1 \\ 0 \end{pmatrix}\)。然而,两个量子比特都处于基态\(|00\rangle\),矩阵是:
两个量子比特的四种可能状态组合也由\(4 \times 1\)矩阵表示。这些矩阵是:
使用这些矩阵,我们现在可以进行乘法运算,以查看矩阵(以及因此的量子比特状态)是如何改变的。下面是两个例子,一个是在\(|11\rangle\)状态上操作的SWAP门,另一个是在\(|01\rangle\)状态上操作的SWAP门。
我们将从\(|11\rangle\)状态开始,该状态在SWAP门操作后应该保持不变。
如您所见,SWAP门作用于\(|11\rangle\)状态的结果是\(|11\rangle\),这正是我们所期望的。现在让我们看看当SWAP门作用于\(|01\rangle\)状态时会发生什么。最终状态应该是代表\(|10\rangle\)状态的矩阵。
同样,我们得到了预期的结果;两个量子比特状态已被交换。
Toffoli门 (CCNOT)
Toffoli门也称为*CCNOT*,它是我们看到的第一个作用于三个量子比特的门。该门类似于CNOT门;当*两个*控制量子比特都处于\(|1\rangle\)状态时,该门对第三个量子比特应用泡利-X(NOT)门。该门的矩阵是:
Toffoli(CCNOT)门的真值表是:
以前 | 操作后 | ||||
控制位 1 | 控制位 2 | 目标 | 控制位 1 | 控制位 2 | 目标 |
\(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) |
\(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) |
\(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) |
\(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) |
\(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) |
其他门
本节中的所有门都比前面介绍的门更高级。这是因为这些门执行更复杂的旋转(如在布洛赫球上可视化所示),其中一些门(例如旋转门)执行任意角度的旋转。QX服务仅提供本节中的\(S\)、\(S^\dagger\)、\(T\)和\(T^\dagger\)门。其他门(例如Fredkin门、\(\sqrt{SWAP}\)门等)在此提供作为参考。但是,您不必了解/理解所有这些门就能使用QX服务或构建简单的量子电路。可以使用前面讨论过的门来完成。因此,与我们已经看到的门相比,对这些门的详细介绍会少得多,但如果您想进一步研究这些门,可以在参考资料部分找到链接。
相位门
本节介绍的四种门都是相位门,意味着它们绕Z轴进行旋转。当量子比特处于\(|0\rangle\)或\(|1\rangle\)状态时,绕Z轴的旋转效果不大。然而,当量子比特处于\(|+\rangle\)状态时,绕Z轴的旋转会将状态从\(|+\rangle\)翻转到\(|-\rangle\)。我们将通过展示它们各自的矩阵以及每个门执行的绕Z轴的旋转角度来简要介绍这四种门。
\(S\)门 - \(\sqrt{Z}\)
\(S\)门绕Z轴执行\(\frac{\pi}{2}\)的旋转。该门扩展了\(H\)门以创建复数叠加,并具有\(X \longrightarrow Y\)和\(Z \longrightarrow Z\)的性质。该门的矩阵是:
从这个矩阵可以看出,为什么该门也称为\(\sqrt{Z}\)。如果我们自己将\(S\)的矩阵与其自身相乘,我们将得到\(Z\)门的矩阵(\(S^2 = Z\))。
\(S^\dagger\)门 - \(\sqrt{Z}^\dagger\)
该门是\(S\)门的共轭转置,并具有\(X \longrightarrow -Y\)和\(Z \longrightarrow Z\)的性质。执行的旋转与\(S\)门相反,绕Z轴旋转\(-\frac{\pi}{2}\)。矩阵与\(S\)门相同,只是复数符号相反(因为它是\(S\)门的复共轭)。
另外,由于这些门是相反的,将它们一个接一个地应用会恢复原始状态。即:
\(T\)门 - \(\sqrt{S}\)
\(T\)门绕Z轴执行\(\frac{\pi}{4}\)的旋转。该门的矩阵是:
与\(S\)门类似,\(T\)门相当于\(\sqrt{S}\)。我们可以通过将\(T\)门的矩阵与其自身相乘来验证这一点。
代数回顾
可以使用FOIL方法(**F**irst, **O**uter, **I**nner, **L**ast)简化分数的分子。
\(T^\dagger\)门 - \(\sqrt{S}^\dagger\)
该门是\(T\)门的共轭转置,并且绕Z轴执行的旋转与\(T\)门相反——\(-\frac{\pi}{4}\)。同样,与\(S^\dagger\)门一样,将\(T\)和\(T^\dagger\)门一个接一个地应用,会使被操作的量子比特恢复到其初始状态。
Fredkin门 (CSWAP)
Fredkin门是一个三量子比特门,类似于CNOT门,但是它不对目标量子比特应用NOT操作(当两个控制量子比特都处于\(|1\rangle\)状态时),而是对目标量子比特应用SWAP操作。这就是为什么您有时会看到该门被称为CSWAP(受控SWAP)门。该门的矩阵是:
Fredkin(CSWAP)门的真值表是:
以前 | 操作后 | ||||
Control | 目标 1 | 目标 2 | Control | 目标 1 | 目标 2 |
\(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|0\rangle\) |
\(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) |
\(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) |
\(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|0\rangle\) |
\(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) |
\(|1\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) | \(|0\rangle\) | \(|1\rangle\) |
\(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) | \(|1\rangle\) |
\(\sqrt{NOT}\)门
该门作用于单个量子比特,其矩阵表示为:
顾名思义,连续两次应用\(\sqrt{NOT}\)门作用于一个量子比特等同于应用一次\(NOT\)门(即泡利-X)——\(\sqrt{NOT}\sqrt{NOT}=NOT\)。
可以通过将\(\sqrt{NOT}\)门矩阵与其自身相乘来证明这一点。
最终矩阵确实与泡利-X(NOT)门相同。
\(\sqrt{SWAP}\)门
该门作用于两个量子比特,其矩阵表示为:
与\(\sqrt{NOT}\)门类似,如果我们自己将\(\sqrt{SWAP}\)门矩阵与其自身相乘,我们将得到SWAP门的矩阵(即\(\sqrt{SWAP}\sqrt{SWAP}=SWAP\))。证明该结果与SWAP门相同的矩阵并不难,但会占用大量空间,因此我们在此不展示。但是,您可以按照与\(\sqrt{NOT}\)门相同的步骤,使用\(\sqrt{SWAP}\)门矩阵自行推导。
旋转门
旋转门正是它们名称所示的功能——它们以特定角度绕特定轴旋转量子比特。
X轴旋转门
X轴旋转门是绕Y轴和Z轴旋转的组合。该门以Y和Z旋转表示为:
X轴旋转门也可以表示为以下门矩阵:
Y轴旋转门
Y轴旋转门的矩阵是:
Z轴旋转门
Z轴旋转门的矩阵是:
结论
本部分详细介绍了最常见和一些不常见的量子门,以及它们的矩阵表示以及量子比特在门应用后如何受到影响。利用这些信息,我们可以开始构建量子电路,用于解决整数分解等问题。下一部分,第三部分 - 量子电路与OpenQASM,将介绍量子电路以及一种专门用于描述它们的编程语言。
参考文献
以下是更多信息的链接列表。其中大部分(如果不是全部)都包含在文章中,但此处也包含以方便查阅。
- 酉矩阵
- 量子门
- 经典与量子逻辑门 (PDF,于2017年4月17日检索)
- 第三章:量子门 (PDF,于2017年4月17日检索)
- Toffoli门与Deutsch门的关系
- 量子计算的通用双量子比特门 (PDF,于2017年4月17日检索)
- 量子门与电路 (PDF,于2017年4月17日检索)
- 用于Qudit的SWAP门 (PDF,于2017年4月17日检索)
- 量子计算的基本门 (PDF,于2017年4月17日检索)
- 南加州大学研究计算设施EE520课程的第11讲 (量子电路) (PDF,于2017年4月17日检索)
-
- 该课程的EE 520课程材料页面提供了另外24节讲座。
- 这个矩阵计算器对于完成文章中的一些矩阵数学运算可能很有用。它可以进行矩阵加/减/乘,获取转置,并且接受复数。但是,它有一个限制,即无法输入实数方程式。例如,您不能输入\(\frac{1+2}{i}\)、\(1+2\)或\(\frac{5}{i-3}\)。但是,\(\frac{1+i}{2}\)、\(i+2\)和\(\frac{5}{i-3}\)都可以接受。
历史
2017年6月26日:第一个版本
第一部分:经典计算与量子计算 | 第三部分:量子电路与OpenQASM |