量子计算机就是基于单qubit门和双qubit门的,再多的量子操作都是基于这两种门。双qubit门比单qubit门难理解得多,不过也重要得多。它可以用来创建纠缠,没有纠缠,量子机就不可能有量子霸权。
CNOT门(受控非)C是受控Controlled的首字母
受控非们作用在两个qubit上,一个叫控制位\(|\text{x}\rangle\),一个叫目标位\(|\text{y}\rangle\)。如果控制位是\(0\),目标位不变;如果控制位是\(1\),目标就反转:
所以有
受控非们的图示是
实现的能力是
\(\oplus\)是模2加法(也就是异或)。更简单的写法是
\[|x,y\rangle\rightarrow|x,x\oplus y\rangle\ \]控制位可以是多个基向量的叠加态,比如3qubit
\[|1\rangle\otimes|0\rangle\otimes|1\rangle\equiv |101\rangle\equiv |5\rangle \]CNOT的矩阵如下
\[\mathbf{CNOT}= \begin{bmatrix} 1&0 &0 &0 \\ 0&1 &0 &0 \\ 0& 0& 0&1 \\ 0& 0& 1&0 \end{bmatrix} \]最后再看个例子巩固一下CNOT门的能力认知:
\[|1\rangle\left(|0\rangle-|1\rangle\right)\rightarrow|1\rangle\left(|1\rangle-|0\rangle\right) \]怎么快速得到这个结果呢(所谓快速就是不用去进行矩阵乘法,实际就是利用门的性质,没什么快不快)?控制位1不变,目标位与1异或(上面讲了\(\oplus\)的实际表现是异或),所以1变0,0变1。
受控U门受控U门就是受控酉门,它把受控非门的能力泛化到了任意的酉矩阵上:当控制位是\(0\)时啥也不干;当控制位是\(1\)时,给目标位应用对应的酉矩阵\(U\)。电路图如下
比如受控Z门的矩阵:
\[CZ=\begin{bmatrix} 1&0 &0 &0 \\ 0&1 &0 &0 \\ 0& 0& 1&0 \\ 0& 0& 0&-1 \end{bmatrix} \]量子并行机制上面这些都是量子并行性的体现,也就是把一个函数应用到叠加态的\(|x\rangle\)上
\[|x,y\rangle\overset{U_f}{\rightarrow}|x,y\oplus f(x)\rangle \]\(f(x)\)是什么?是给一个辅助qubit应用酉矩阵\(U_f\)得到的,一般辅助位可以使用\(|0\rangle\)
假设我们制备的\(|x\rangle\)在布洛赫球的赤道上:
结果就是
看出并行性了吗?结果中同时计算出了每个基向量的受控U门应用结果。
再看一个例子。我们通过使用哈德玛门制备\(|x\rangle\)
\[\frac{1}{\sqrt{2^q}}\sum_{x=0}^{2^q}|x\rangle \]然后我们使用受控U门
根据并行机制,每个叠加态从0到\(2^q\)做控制位,目标位函数是\(7^x mod 15\),结果是他们的和。下图是一个近似的例子
矩阵\(U\)可以写成
\[U=e^{i\alpha}AXBXC \]其中\(A\)门、\(B\)门和\(C\)门都是单qubit操作,并且\(ABC=I\)。这样受控U门可以分解成下面这样
这样的分解对于相位估计和其他算法都非常重要,后面会看到。接下来顺理成章的该看看多量子位操作,当然也是基于2qubit门的。
托佛利门(TOFFOLI gate)托佛利门有两个控制位,可以模拟标准的布尔操作:如果两个控制位都是1,就把目标位反转,所以也称作控控非门:
\[(a,b,c)\overset{托佛利门}{\rightarrow}(a,b,c\oplus ab) \]
托佛利门是幺正的,如果两次使用它,就和哈德玛门一样恢复如初:
可以通过单qubit门和双qubit门结合实现托佛利门
当然实际的实现要复杂得多,是这样的(下面这些门我们都接触过了)
控控非门的矩阵也比较大:
再强调一下,只有两个控制位一起是1才反转:
看一个受控U门的例子,来自stackexchange,先看3-SAT问题。SAT问题在逻辑学课程和高级算法课程中都会讲到。当变量增加时,它的求解难度急剧上升。
SAT问题是第一个NPC问题
这个范式中的符号的含义可以看我之前的文章《自然演算规则》
我们需要创建这样的电路:
\[|\Psi_2\rangle=\frac{1}{\sqrt{2^n}}\sum_{x\in \{0,1\}^n}|x\rangle|f_{SAT}(x)\rangle \]也就是我们需要\(n\)个控制位,一起控制第\(n+1\)个目标位
对于上面那个3-SAT的例子,它的线路图是
下面部分是4个工作位和一个目标位,4个工作位是为了存储临时信息来制备目标位。为了重复利用qubit,通常会使用反转逻辑来重置qubit
下面这个就是完整的Grover算法电路图:
因为经过重置,辅助位不变化,所以方程中(上面的方程)通常会把他们忽略掉,而且它们存储的信息也被称为“垃圾”!
再看一个创建纠缠态的例子,需要用到受控非门
\[\hat{U}_{CNOT}\left(\frac{1}{\sqrt{2}}\left(|\uparrow\rangle+|\downarrow\rangle\right)\otimes|\uparrow\rangle\right)=\frac{1}{\sqrt{2}}\begin{pmatrix} 1& 0& 0 & 0 \\ 0 & 1 & 0 &0 \\ 0& 0 &0 &1 \\ 0& 0 &1 &0 \end{pmatrix}\begin{pmatrix} 1 \\ 0 \\ 1 \\ 0 \end{pmatrix}=\frac{1}{\sqrt{2}}\begin{pmatrix} 1 \\ 0 \\0\\ 1 \end{pmatrix} \]上面在使用CNOT前先使用的哈德玛门
对于不同的输入,会产生不同的纠缠结果:
上面我们看到了多控制位电路:
实际上目标位也可以多个:
控制位也可以反转:
CNOT也可以同时作用在多目标位:
不可克隆理论表明的是对于任何未知的量子状态,没有任何人能够创建它的精确副本。自然界禁止精确复制任意叠加状态。这个机制对于量子加密特别有用,因为你想知道信息就得测量;但是测量完就坍缩了,就能被发现有人测量了这个状态。