跳到内容

Multi-Qubit盖茨

Multi-Qubit门:交换门

Single-qubit盖茨,甚至应用于寄存器,仍然只影响一个量子位。这些门可以被认为像函数只接受一个量子位的输入参数。他们可能有一个以上的总体参数,如任意旋转大门,但他们只有一个参数,是一个量子位。在本节中,我们将看看盖茨一个量子位的输入。

最简单的叫做multi-qubit大门交换门。它接受两个量子比特和开关状态——也就是说,它将第一个量子位的第二个量子位,反之亦然。交换门口这个矩阵:

\[交换= \开始{bmatrix} 1 & 0 & 0 & 0 \ \ 0 0 \ \ & 0 & 1 & 0 & 1 & 0 & 0 \ \ 0 & 0 & 0 & 1 \ {bmatrix}结束\]

这是它的真值表。注意,输入和输出条件multi-qubit凯茨:

输入 输出
\ \(刃{00}\) \ \(刃{00}\)
\ \(刃{01}\) \ \(刃{10}\)
\ \(刃{10}\) \ \(刃{01}\)
\ \(刃{11}\) \ \(刃{11}\)

如果量子位元都是在同一个国家,那么这门不做任何事情。如果两个量子位元在不同的州,交换门开关状态。请注意,它并不开关物理量子位自己;交换只是把第一个量子位进入第二个量子位的状态,第二个量子位进入第一个量子位的状态。实际的量子位仍在同一指标在他们最初的注册。

不要让刃符号欺骗你;交换可以应用于任何两个量子位元索引寄存器。他们没有相邻的指标。所有multi-qubit盖茨的这是真的,你会看到当我们经历更多的人。

让我们做一个简单的例子显示交换是如何工作的。我们首先4-qubit寄存器中\ \(刃{0000}\)状态:

\[\刃{\ psi} = \刃{0000}\]

只是为了好玩,现在让我们把它放到叠加通过应用3 H理查德·道金斯量子位:

\ [H (\ psi_2) \ qquad \刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{0010}\]

现在,让我们来运行交换门在第一和第三个量子位。提醒一下,应用量子门(甚至一个multi-qubit)叠加的注册是一样的将它应用到每个项的叠加:

\[开始\{对齐}\刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{0010}\ \ ~ \ \交换(\ psi_0 \ psi_2), \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \离开(SWAP_{0, 2}(\刃{0000})\右)+ \压裂{1}{\ sqrt{2}} \离开(SWAP_{0, 2}(\刃{0010})\右)\{对齐}结束\]

在第一项,第一和第三个量子位\ \(刃{0}\)状态,所以交换他们不会做任何事情。这个词将会保持\ \(刃{0000}\)。然而在第二项,两个量子比特是不同的。这将从\ \(刃{0010}\)\ \(刃{1000}\):

\[\开始{对齐}\刃{\ psi} =交换(\ psi_0 \ psi_2) \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \离开(SWAP_{0, 2}(\刃{0000})\右)+ \压裂{1}{\ sqrt{2}} \离开(SWAP_{0, 2}(\刃{0010})\)\ \ ~ \ \ & = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1000}\{对齐}结束\]

这就是量子比特看起来像布洛赫球:

第一个和第三个量子位的状态转换的地方,即使物理量子位本身仍在相同的指标。交换在算法是有用的,注册需要重新排序的元素没有量子比特搬运机械(如扭转一个寄存器,把它从高位优先形式低位优先形式)。

把CNOT门

第二个multi-qubit门我们要谈论叫做把CNOT门。这是一个非常特殊的门,可能是最重要的门在所有的量子计算。我们将进入这个名字意味着什么,以及为什么它是如此重要。首先,让我们定义门的矩阵:

\[把CNOT = \开始{bmatrix} 1 & 0 & 0 & 0 \ \ 0 & 1 & 0 & 0 & 0 & 0 & 1 \ \ \ \ 0 & 0 & 1 & 0 \ {bmatrix}结束\]

这是它的真值表。注意,输入和输出条件multi-qubit凯茨:

输入 输出
\ \(刃{00}\) \ \(刃{00}\)
\ \(刃{01}\) \ \(刃{01}\)
\ \(刃{10}\) \ \(刃{11}\)
\ \(刃{11}\) \ \(刃{10}\)

这是有趣的。它看起来像它没有任何影响\ \(刃{00}\)\ \(刃{01}\),但实际上\ \(刃{10}\)\ \(刃{11}\)反之亦然。这看起来像一个条件操作:当第一个量子位是1,它会翻第二个量子位,当第一个量子位是0,它不会做任何事情。在经典的编程中,我们可能会写这样的这种行为(伪代码):

如果(q0处= =1){X(第一季度);}

通常情况下,这实际上是不可能的,因为为了评估,如果声明的条件,我们必须测量第一个量子位看到它是什么。然而,这门似乎并没有与测量。它在某种程度上能够有条件地翻转第二个量子位基于第一个量子位的状态没有实际测量第一个量子位。从本质上讲,这门让我们做的量子条件逻辑我们可以改变程序的行为基于量子位的状态,不知道国家量子比特实际上是什么。这种能力来执行条件逻辑,没有崩溃量子位寄存器的状态,就是把CNOT如此重要的大门。

让我们尝试把CNOT叠加,看看它的寄存器。像往常一样,让我们开始吧\ \(刃{0000}\)状态:

\[\刃{\ psi} = \刃{0000}\]

再次,我们应用H第三量子位因为我们做过,知道它是如何工作的:

\ [H (\ psi_2) \ qquad \刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{0010}\]

现在,我们有一个第三个量子位的叠加\ \(刃{0}\)在一个学期和\ \(刃{1}\)在另一个。让我们尝试应用把CNOT那里\ \ psi_2 \ ()第一个参数,说,\ \ psi_0 \ ()第二个参数:

\[开始\{对齐}\刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{0010}\ \ ~ \ \把CNOT (\ psi_2 \ psi_0) \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \离开(CNOT_{2, 0}(\刃{0000})\右)+ \压裂{1}{\ sqrt{2}} \离开(CNOT_{2, 0}(\刃{0010})\右)\{对齐}结束\]

在第一个刃,第一个参数\ \(刃{0}\),所以把CNOT没有影响。然而在第二个刃,第一个参数\ \(刃{1}\)所以第二个参数将翻转。结果将是这种状态:

\[\刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1010}\]

它看起来像把CNOT只影响一个凯茨的叠加。这是怎么发生的?

一般控制盖茨

把CNOT门就是我们所说的一个控制门。“控制”是我们给盖茨的名字,只有做一些如果某个量子位\ \(刃{1}\)状态。第一个参数是被称为“控制”量子位,第二个参数通常被称为“目标”量子位。这就是“把CNOT”这个名字来自:名字的“C”指的是“控制”的行为,和“不”源于什么门是否满足其控制标准:它不是门适用于目标量子位。您可能猜到,这也是通常被称为残雪门口,或者更通俗地说,“控制X”门口。

把CNOT不是特殊在这方面;任何门都可以在控制模式下运行,任意数量的控制量子比特。例如,如果我们有一个3-qubit注册,想翻第三个如果第一和第二个量子位\ \(刃{1}\)国家吗?我们可以做到double-controlled X门,就是类似于把CNOT但需要2控制量子位。这也叫CCNOT,芝加哥气候交易所,或者是Toffoli门。

这是CCNOT的真值表。我添加了一个逗号分隔的控制目标量子位的量子比特清晰(记住,在刃符号,你可以把逗号的地方你想要的,因为他们实际上并不意味着什么):

输入 输出
\ \(刃{00 0}\) \ \(刃{00 0}\)
\ \(刃{01,0}\) \ \(刃{01,0}\)
\ \(刃{10 0}\) \ \(刃{10 0}\)
\(\刃{11,0}\) \ \(刃{11日1}\)
\ \(刃{00,1}\) \ \(刃{00,1}\)
\ \(刃{01 1}\) \ \(刃{01 1}\)
\ \(刃{10 1}\) \ \(刃{10 1}\)
\ \(刃{11日1}\) \(\刃{11,0}\)

如图所示,CCNOT翻转目标量子位如果两个控制量子位\ \(刃{1}\)

受控版本的Z门怎么样?没有问题,我们可以:

输入 输出
\ \(刃{0}\) \ \(刃{0}\)
\ \(刃{0,1}\) \ \(刃{0,1}\)
\ \(刃{1,0}\) \ \(刃{1,0}\)
\(\刃{1}\) \(- \刃{1}\)

这将否定第二个量子位的相位只有当第一个量子位\ \(刃{1}\)。因为Z仅影响\ \(刃{1}\)状态,这就否定整个注册刃的阶段如果(且仅当)控制和目标量子位\ \(刃{1}\)

从本质上讲,我们可以做任何我们想要的门在控制模式下运行。问#实际上有一个非常方便的语法,这是包含在QSharpReference.qs文件:

使用(量子位元=量子位[10])/ /分配10量子位{/ /这是一个通用multicontrolled X版本的门。这说的是什么/ /如果所有量子位的第一个参数是| 1 >,那么它将X / /第二个参数。在这种情况下,如果第一个9量子位的注册/ / | 1 >,那么它将翻转10量子位。控制X(量子位[0 . .8],量子位[9]);/ /在问#,任何操作,支持“控制”关键字可以运行/ /任意数量的控制量子比特。这和前面的一样/ /门,而是翻过去的量子位,它将阿达玛门/ /。控制H(量子位[0 . .8],量子位[9]);ResetAll(量子比特);}

附加的控制关键字门之前,提供一系列控制量子位作为第一个参数(和目标量子位作为第二个参数),将大门在控制模式下运行。是什么让问#真的强大的是,控制关键字不只是局限于量子门;你也可以预先考虑整个操作,所以整个操作(和所有的盖茨)在控制运行模式!这是一个非常方便的语言,软件工程师,它使我们的生活更容易,否则,我们必须编写单独的版本的每个操作控制,由于行为和传播控制量子位的所有其他操作调用,等等。它将很快引起混乱。

纠缠

好吧,那个小谩骂对盖茨的控制,让我们回到我们最初的例子。我们上次离开它在这种状态下,我们把CNOT到寄存器使用3理查德·道金斯量子位作为控制和1量子位作为目标:

\[\刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1010}\]

让我们试着看看这布洛赫球:

哦哦。

这里发生了一件奇怪的事情。第一个和第三个量子位并不在球面上任何地方。现在他们只是…点在原点。这怎么可能?量子位元应该是单位向量,他们需要有一个长度为1。他们本该是点在单位球面上。他们怎么能突然有长度…0 ?这是什么意思?

简单地说,这意味着这两个量子位元不再有个人,独立国家。两个量子位元现在存在两个组件的一个组合,不可约叠加,不能描述没有其他。我们称这个属性纠缠

对于这个特定的国家\ \(压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1010}\),测量给的量子位元有50%的几率\ \(刃{0000}\)状态,和50%的给予的机会\ \(刃{1010}\)状态。我们不知道哪一个我们会直到我们测量量子比特,但我们知道一件事:不管发生什么事,第一个和第三个量子位总是会在同一个州一旦我们测量它们,要么将\ \(刃{0}\)或者两者都将\ \(刃{1}\)。因为量子比特纠缠,他们的“命运”链接,可以这么说。从本质上讲,如果我们测量其中的一个,我们自动知道另一个是在之前测量它。

你经常听到的是这句话称为“鬼魅般的超距作用”,对爱因斯坦的量子力学的问题。我们可以把两个量子位,缠绕,分开数百万光年,他们仍然不可约纠缠的两部分叠加状态。一旦我们测量其中的一个,叠加崩溃,第二个量子位,数百万光年,立即到相应的“快照”,但独立的状态,即使没有人直接碰它。

你可能已经听说过纠缠——这是一个术语,只要量子力学出现了许多。如果你曾经想知道它的真正含义,这就是。当多个量子比特的寄存器相连,和他们的测量结果相互依赖。纠缠是我们会考虑的第二个量子计算的关键原则背后,对叠加。我们将讨论为什么纠缠如此重要,当我们进入以后的一些量子算法,首先,让我们来探讨一下它是如何工作的。

让我们再次运行把CNOT,第一个量子位作为控制和第二个量子位作为目标:

\[开始\{对齐}\刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1010}\ \ ~ \ \把CNOT (\ psi_0 \ psi_1) \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1110}\{对齐}结束\]

自然第一个刃不会受到影响,因为控制量子位\ \(刃{0}\),但第二个刃。现在,前三个量子位的寄存器都纠缠在一起:

他们有50%的机会被衡量\ \(刃{0}\),50%的机会被测量\ \(刃{1}\),但他们都有相同的值测量。

注意,第四个量子位不是纠结其他的。我们可以应用single-qubit门像X,和它的结果仍然不会依赖他人:

\[开始\{对齐}\刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0000}+ \压裂{1}{\ sqrt{2}} \刃{1110}\ \ ~ \ \ X (\ psi_3) \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0001}+ \压裂{1}{\ sqrt{2}} \刃{1111}\{对齐}结束\]

无论我们测量状态,最后总是会量子位\ \(刃{1}\)

我们也可以运用single-qubit盖茨纠缠量子比特,他们会有正常的效果。例如,让我们运用X的第一个量子位:

\[开始\{对齐}\刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{0001}+ \压裂{1}{\ sqrt{2}} \刃{1111}\ \ ~ \ \ X (\ psi_0) \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{1001}+ \压裂{1}{\ sqrt{2}} \刃{0111}\{对齐}结束\]

第一个量子位翻了两个注册凯茨,如预期。然而,布洛赫球体,它仍然只是一个点在原点。这是因为量子位依然纠缠:测量结果仍取决于第二和第三个量子位。在这个新的国家,有50%的机会测量\ \(刃{1001}\)和测量的可能性为50%\ \(刃{0111}\)。在这两种情况下,第一个量子位将产生相反的第二个和第三个量子位元的价值。不管它是相同的值或相反的价值并不重要;如果它的值取决于另一个量子位,纠缠。

那么我们如何打破量子位的纠缠?简单。我们只需要运行一些控制门,去除量子位的依赖其他量子位。假设我们想要解决第二个量子位。我们可以通过设置\ \(刃{1}\)在第一个刃(这是\ \(刃{1}\)在每一个刃),或通过设置\ \(刃{0}\)在第二个刃(这是\ \(刃{0}\)在每一个刃)。我们可以实现第一种方法通过运行把CNOT第一个量子位的控制,和第二个量子位作为目标。我们可以实现第二种方法通过运行与第三把CNOT量子位的控制,和第二个量子位作为目标。让我们去第一种方法为例:

\[开始\{对齐}\刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{1001}+ \压裂{1}{\ sqrt{2}} \刃{0111}\ \ ~ \ \把CNOT (\ psi_0 \ psi_1) \ qquad \刃{\ psi} & = \压裂{1}{\ sqrt{2}} \刃{1101}+ \压裂{1}{\ sqrt{2}} \刃{0111}\{对齐}结束\]

现在,第二个量子位\ \(刃{1}\)在所有可能的结果,所以它不再依赖于第一或第三量子位。不再纠缠。

知识检查

第一季度

交换可以应用于任何两个量子位元索引寄存器:

答:真正的

B:假

回答
真正的

第二季

你应用

\[把CNOT (\ psi_0 \ psi_1) \]

输入注册

\[\刃{\ psi} = \刃{11}\]

其结果是:

答:\ \(刃{10}\)

B:\ \(刃{11}\)

C:\ \(刃{01}\)

D:\ \(刃{00}\)

回答
一个

第三季

控制门只做,如果应用于在特定的量子位\ \(刃{1}\)状态:

答:真正的

B:假

回答
真正的

第四季度

是当多个量子比特纠缠一个寄存器相连,和他们的测量结果相互依赖。

答:真正的

B:假

回答
真正的

Q5

你应用

\[把CNOT (\ psi_0 \ psi_1) \]

量子位注册:

\[\刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{1101}+ \压裂{1}{\ sqrt{2}} \刃{0110}\]

量子位寄存器的状态是:

答:\ \(刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{1111}+ \压裂{1}{\ sqrt{2}} \刃{0100}\)

B:\ \(刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{1001}+ \压裂{1}{\ sqrt{2}} \刃{0110}\)

C:\ \(刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{1101}+ \压裂{1}{\ sqrt{2}} \刃{0110}\)

D:\ \(刃{\ psi} = \压裂{1}{\ sqrt{2}} \刃{1001}+ \压裂{1}{\ sqrt{2}} \刃{1011}\)

回答
B

实验室2

这是一个很艰难的一章,但你现在熟悉量子位寄存器,如何应用single-qubit寄存器和multi-qubit盖茨,和量子纠缠。好消息是,如果你理万博下载包解这个东西,那么你最困难的部分已经基本上掌握了所有的量子计算!在这之后一切都是一帆风顺。练习你学到什么,开放实验室2在Visual Studio通过练习和工作在移动到下一节。


最后更新:2022年7月5日