对于控制和目标q位不相邻的3 qbit系统,如何导出CNOT矩阵?


15

在三qbit系统中,当控制和目标qbit的有效位相邻时,很容易得出CNOT运算符-您只需张紧2位CNOT运算符,使其身份矩阵处于未触及的qbit的重要位置即可:

C10|ϕ2ϕ1ϕ0=(I2C10)|ϕ2ϕ1ϕ0

但是,当控制和目标q位在重要性上相邻时,如何派生CNOT运算符并不明显:

C20|ϕ2ϕ1ϕ0

怎么做?


Answers:


14

对于第一手原则的演讲,我喜欢Ryan O'Donnell的回答。但是对于稍高级别的代数处理,这就是我的处理方法。

对于任何单位U而言,受控操作的主要特征在于,它根据某些单个qubit的值(连贯地)对某些qubit执行运算。我们可以用代数方式显式地编写此代码(使用第一个qubit的控件)的方式是: ,其中是与相同维的单位矩阵。在这里,和是投影到状态和投影仪UU

CU=|00|1+|11|U
1U|00||11||0|1 控制量子位的概念—但是我们在这里不将它们用作度量的元素,而是根据第一个量子位的状态空间的一个或另一个子空间来描述对其他量子位的影响。

我们可以使用它出门的矩阵,该矩阵对量子位3 进行运算,并以量子位1的状态为条件,将其视为受控 2和3上执行操作 CX1,3X(12X)

CX1,3=|00|14+|11|(12X)=[140404(12X)]=[12020202021202020202X02020202X],
,其中后两个是块矩阵表示形式,可以节省空间(和完整性)。

更好的是:我们可以认识到-在某种数学水平上,我们允许自己意识到张量因子的阶数不一定必须处于某个固定的阶数-操作的控制和目标可以在任何两个张量上系数,我们可以用来填充所有其他量子位上的运算符描述。这将使我们直接跳到表示形式 12

CX1,3=|00|control12uninvolved12target+|11|control12uninvolvedXtarget=[12020202021202020202020202020202]+[02020202020202020202X02020202X]
并且还允许我们立即查看如果将控件和目标的角色互换了该怎么做:
CX3,1=12target12uninvolved|00|control+Xtarget12uninvolved|11|control=[|00||00||00||00|]+[|11||11||11||11|]=[1000000000100000000001000000000100000100000000011000000000100000].
但最重要的是:如果您可以代数形式记下这些运算符,则可以迈出完全放弃巨型矩阵的第一步,而不必使用 和 CX1,3=|00|1212+|11|12XCX3,1=1212|00|+X12|11|。当然,使用这些功能将有一定的局限性-简单地改变表示形式就不可能有效地解决困难的量子算法,更不用说通过手动计算可以解决了-但是您可以更有效地推理简单的电路使用这些表达式要比使用巨大的空间吃矩阵更好。

哦,是的,我早在Mermin书中就回顾了投影机。投影仪和矩阵加法是在矩阵中编码条件逻辑的一种方式!
ahelwer

“表象的简单改变不可能使困难的量子算法有效地解决”-如果是灯芯旋转呢?
meowzz

1
@meowzz:有时,这种符号上的更改可以使您在概念上有所进步,并帮助您更轻松地解决问题。但是这种情况并不常见,并且在这种特殊的符号更改(可能是众所周知的)的情况下可能不会。但是,关于威克轮换的具体情况,我想问的问题是,解决问题有哪些具体进展,以及它对解决哪些问题有帮助。
Niel de Beaudrap,

8

这是一个很好的问题; 这是教科书似乎潜行的一种。前几天在准备量子计算讲座时,我遇到了这个确切的问题。

据我所知,无法使用Kronecker乘积表示法来获得所需的8x8 矩阵。您真正可以说的是:将CNOT应用于三个qubit(控件为第一个,目标为第三,)的操作具有以下效果:

|000|000

|001|001

|010|010

|011|011

|100|101

|101|100

|110|111

|111|110

因此,它由以下矩阵给出:

U=[1000000001000000001000000001000000000100000010000000000100000010]

该矩阵确实不是也不是。没有基于Kronecker产品的简洁表示法。就是这样。UI2CNOTCNOTI2


1

通常,CNOT基于控制来翻转目标。如果控制为,我选择翻转目标,也可以选择。因此,假设任何一般的多粒子状态。现在,您选择控件和目标,可以说是控制,第是目标。在上应用CNOT 只是 (=[1 0]T)(=[0 1]T)|ϕ=|123....n1nithkth|ϕ

CNOT|ϕ=CNOT|12...i...k...n1n=|12...i...k...n1n

为了构造这种CNOT门的矩阵,如果状态为up,则应用( -Pauli矩阵);如果状态为down ,则应用( Identity)。我们将这些矩阵应用到第位置,这是我们的目标。数学上 σxxithI2×2ithkth

CNOT=[|1...i...k11...i...k1|σx|k+1...nk+1...n|+all permutations of states other then ith]+[|1...i...k11...i...k1|I|k+1...nk+1...n|+all permutations of states other then ith]

注意在创建置换矩阵时排除了第状态(目标),并在第位置写入了运算符或kthkthσxI

以五个量子位为例,其中量子位是目标,而是控制位。让我们建立的置换矩阵。我认为,如果控制权是翻转目标。反之亦然。2nd4thCNOT

CNOT=|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|σx|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|+|11|I|345345|

-2

首先写CNOT⊗𝐼2矩阵,然后用matlab改变index2和index3的顺序。这样,您可以执行任意数量的qubit。


嗨!您能否扩大答案以使其更清楚?也许一个例子会有所帮助:)
met927
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.