本专栏的主要内容是 《量子信息与量子计算简明教程》陈汉武 这本书的学习笔记及复习整理。
一、经典比特、量子比特及其叠加状态
记录经典信息的二进制存储单元称为经典比特(bit),由经典状态的0和1表示。对于量子信息而言,记录量子信息的存储单元称为量子比特(qubit),一个量子比特的状态是一个二维复数空间的矢量,它的两个极化状态
∣
0
⟩
|0\rangle
∣0⟩和
∣
1
⟩
|1\rangle
∣1⟩对应于经典状态的0和1。
∣
0
⟩
|0\rangle
∣0⟩和
∣
1
⟩
|1\rangle
∣1⟩也是二维复数列向量,其构成二维复数空间的一对正交基底,即长度为1,内积为0的复数向量。qubit与bit本质上的不同在于,除了
∣
0
⟩
|0\rangle
∣0⟩和
∣
1
⟩
|1\rangle
∣1⟩状态以外,qubit可以是两个状态的任意叠加状态(参考第一章·基本概念(上))。取
∣
0
⟩
=
[
1
0
]
|0\rangle=\left[\begin{array}{l}1 \\ 0\end{array}\right]
∣0⟩=[10]和
∣
1
⟩
=
[
0
1
]
|1\rangle=\left[\begin{array}{l}0 \\ 1\end{array}\right]
∣1⟩=[01],有
∣
φ
⟩
=
α
∣
0
⟩
+
β
∣
1
⟩
=
α
[
1
0
]
+
β
[
0
1
]
=
[
α
β
]
|\varphi\rangle=\alpha|0\rangle+\beta|1\rangle=\alpha\left[\begin{array}{l} 1 \\ 0 \end{array}\right]+\beta\left[\begin{array}{l} 0 \\ 1 \end{array}\right]=\left[\begin{array}{l} \alpha \\ \beta \end{array}\right]
∣φ⟩=α∣0⟩+β∣1⟩=α[10]+β[01]=[αβ]由此可知,任意的二维复向量都可以看成是qubit的瞬间值。
二、量子比特的测定
通过一个被称为是测定或观测的过程,可以把一个qubit的状态以概率幅的方式变换成bit信息。也就是说,量子比特 ∣ φ ⟩ |\varphi\rangle ∣φ⟩以概率 ∣ ⟨ 0 ∣ φ ⟩ ∣ 2 |\langle0|\varphi\rangle|^2 ∣⟨0∣φ⟩∣2变换成bit 0,以概率 ∣ ⟨ 1 ∣ φ ⟩ ∣ 2 |\langle1|\varphi\rangle|^2 ∣⟨1∣φ⟩∣2变换成bit 1, ⟨ x ∣ y ⟩ \langle x|y\rangle ⟨x∣y⟩表示 ∣ x ⟩ |x\rangle ∣x⟩和 ∣ y ⟩ |y\rangle ∣y⟩的内积。
内积是线性运算,并且状态
∣
0
⟩
|0\rangle
∣0⟩和
∣
1
⟩
|1\rangle
∣1⟩为正交基底,计算内积
⟨
0
∣
φ
⟩
\langle0|\varphi\rangle
⟨0∣φ⟩和
⟨
1
∣
φ
⟩
\langle1|\varphi\rangle
⟨1∣φ⟩的结果为:
⟨
0
∣
φ
⟩
=
⟨
0
∣
(
α
∣
0
⟩
+
β
∣
1
⟩
)
=
α
⟨
1
∣
φ
⟩
=
⟨
1
∣
(
α
∣
0
⟩
+
β
∣
1
⟩
)
=
β
\begin{aligned} &\langle 0 \mid \varphi\rangle=\langle 0|(\alpha|0\rangle+\beta|1\rangle)=\alpha \\ &\langle 1 \mid \varphi\rangle=\langle 1|(\alpha|0\rangle+\beta|1\rangle)=\beta \end{aligned}
⟨0∣φ⟩=⟨0∣(α∣0⟩+β∣1⟩)=α⟨1∣φ⟩=⟨1∣(α∣0⟩+β∣1⟩)=β 即
∣
φ
⟩
|\varphi\rangle
∣φ⟩以概率
∣
α
∣
2
|\alpha|^2
∣α∣2变换成bit 0,以概率
∣
β
∣
2
|\beta|^2
∣β∣2变换成bit 1。当
α
=
1
\alpha=1
α=1时,
∣
φ
⟩
|\varphi\rangle
∣φ⟩取值0的概率为1,
β
=
1
\beta=1
β=1时,
∣
φ
⟩
|\varphi\rangle
∣φ⟩取值1的概率为1。
三、量子比特对
拥有一个量子比特对,那么将拥有4个正交基底
{
∣
00
⟩
,
∣
01
⟩
,
∣
10
⟩
,
∣
11
⟩
}
\{|00\rangle,|01\rangle,|10\rangle,|11\rangle\}
{∣00⟩,∣01⟩,∣10⟩,∣11⟩},此时有:
∣
φ
⟩
=
α
00
∣
00
⟩
+
α
01
∣
01
⟩
+
α
10
∣
10
⟩
+
α
11
∣
11
⟩
|\varphi\rangle=\alpha_{00}|00\rangle+\alpha_{01}|01\rangle+\alpha_{10}|10\rangle+\alpha_{11}|11\rangle
∣φ⟩=α00∣00⟩+α01∣01⟩+α10∣10⟩+α11∣11⟩其中
∣
α
00
∣
2
+
∣
α
01
∣
2
+
∣
α
10
∣
2
+
∣
α
11
∣
2
=
1
\left|\alpha_{00}\right|^{2}+\left|\alpha_{01}\right|^{2}+\left|\alpha_{10}\right|^{2}+\left|\alpha_{11}\right|^{2}=1
∣α00∣2+∣α01∣2+∣α10∣2+∣α11∣2=1。与单个量子比特相同,通过测定量子比特对,获得的值为00,01,10,11的概率为其对应的参数的绝对值的平方。
同样地,取取
∣
0
⟩
=
[
1
0
]
|0\rangle=\left[\begin{array}{l}1 \\ 0\end{array}\right]
∣0⟩=[10]和
∣
1
⟩
=
[
0
1
]
|1\rangle=\left[\begin{array}{l}0 \\ 1\end{array}\right]
∣1⟩=[01],有
∣
00
⟩
=
[
1
0
0
0
]
,
∣
01
⟩
=
[
0
1
0
0
]
,
∣
10
⟩
=
[
0
0
1
0
]
,
∣
11
⟩
=
[
0
0
0
1
]
|00\rangle=\left[\begin{array}{l} 1 \\ 0 \\ 0 \\ 0 \end{array}\right],|01\rangle=\left[\begin{array}{l} 0 \\ 1 \\ 0 \\ 0 \end{array}\right],|10\rangle=\left[\begin{array}{l} 0 \\ 0 \\ 1 \\ 0 \end{array}\right],|11\rangle=\left[\begin{array}{l} 0 \\ 0 \\ 0 \\ 1 \end{array}\right]
∣00⟩=⎣⎢⎢⎡1000⎦⎥⎥⎤,∣01⟩=⎣⎢⎢⎡0100⎦⎥⎥⎤,∣10⟩=⎣⎢⎢⎡0010⎦⎥⎥⎤,∣11⟩=⎣⎢⎢⎡0001⎦⎥⎥⎤我们可以只测定其中一个qubit的值。比如只测定第一位qubit的值,那么对量子比特对第一位的测定结果为:
bit0的概率:
∣
⟨
00
∣
φ
⟩
∣
2
+
∣
⟨
01
∣
φ
⟩
∣
2
bit1的概率:
∣
⟨
10
∣
φ
⟩
∣
2
+
∣
⟨
11
∣
φ
⟩
∣
2
\text{bit0的概率:}|\langle 00 \mid \varphi\rangle|^{2}+|\langle 01 \mid \varphi\rangle|^{2}\\ \text{bit1的概率:}|\langle 10 \mid \varphi\rangle|^{2}+|\langle 11 \mid \varphi\rangle|^{2}
bit0的概率:∣⟨00∣φ⟩∣2+∣⟨01∣φ⟩∣2bit1的概率:∣⟨10∣φ⟩∣2+∣⟨11∣φ⟩∣2 因为只对量子比特对的第一位进行了测定,那么此时就需要注意到测定后,第二位qubit的状态变化如下:
bit0:
α
00
∣
0
⟩
+
α
01
∣
1
⟩
∣
α
00
∣
2
+
∣
α
01
∣
2
,
bit1:
α
10
∣
0
⟩
+
α
11
∣
1
⟩
∣
α
10
∣
2
+
∣
α
11
∣
2
\text{bit0:}\frac{\alpha_{00}|0\rangle+\alpha_{01}|1\rangle}{\sqrt{\left|\alpha_{00}\right|^{2}+\left|\alpha_{01}\right|^{2}}},\quad \text{bit1:}\frac{\alpha_{10}|0\rangle+\alpha_{11}|1\rangle}{\sqrt{\left|\alpha_{10}\right|^{2}+\left|\alpha_{11}\right|^{2}}}
bit0:∣α00∣2+∣α01∣2α00∣0⟩+α01∣1⟩,bit1:∣α10∣2+∣α11∣2α10∣0⟩+α11∣1⟩
四、量子比特的基本操作
1. X-Gate
将状态
∣
0
⟩
|0\rangle
∣0⟩反转成状态
∣
1
⟩
|1\rangle
∣1⟩,或者状态
∣
1
⟩
|1\rangle
∣1⟩反转成状态
∣
0
⟩
|0\rangle
∣0⟩称为bit反转演算,其对应量子逻辑非门,用
2
×
2
2\times2
2×2的
P
a
u
l
i
Pauli
Pauli矩阵
σ
X
\sigma_X
σX表示为:
X
=
σ
X
=
[
0
1
1
0
]
X=\sigma_X=\left[\begin{array}{ll} 0 & 1 \\ 1 & 0 \end{array}\right]
X=σX=[0110]称为X-Gate(bit反转演算子)。如果对状态
α
∣
0
⟩
+
β
∣
1
⟩
\alpha|0\rangle+\beta|1\rangle
α∣0⟩+β∣1⟩实施bit反转演算,将会得到
α
∣
1
⟩
+
β
∣
0
⟩
\alpha|1\rangle+\beta|0\rangle
α∣1⟩+β∣0⟩:
X
(
α
∣
0
⟩
+
β
∣
1
⟩
)
=
α
X
∣
0
⟩
+
β
X
∣
1
⟩
=
α
∣
1
⟩
+
β
∣
0
⟩
X(\alpha|0\rangle+\beta|1\rangle)=\alpha X|0\rangle+\beta X|1\rangle=\alpha|1\rangle+\beta|0\rangle
X(α∣0⟩+β∣1⟩)=αX∣0⟩+βX∣1⟩=α∣1⟩+β∣0⟩对于这样的一个bit反转演算子,有:
X
†
X
=
X
X
†
=
[
0
1
1
0
]
[
0
1
1
0
]
=
I
X^{\dagger} X=XX^{\dagger}=\left[\begin{array}{ll} 0 & 1 \\ 1 & 0 \end{array}\right]\left[\begin{array}{ll} 0 & 1 \\ 1 & 0 \end{array}\right]=I
X†X=XX†=[0110][0110]=I因此,X-Gate满足幺正性,是幺正矩阵(参考第一章·基本概念(上))。
对某一个幺正矩阵来说,其是否能成为实际操作过程中的量子演算子,要视其演算结果是否能够表达某一特定的物理现象。能够实现量子演算的幺正矩阵还有下面几个。
2. Z-Gate
Z
Z
Z称为位相翻转演算子或称为Z-Gate,用Pauli矩阵
σ
Z
\sigma_Z
σZ表示为:
Z
=
σ
Z
=
[
1
0
0
−
1
]
Z=\sigma_Z=\left[\begin{array}{cc} 1 & 0 \\ 0 & -1 \end{array}\right]
Z=σZ=[100−1]其作用在状态
∣
0
⟩
|0\rangle
∣0⟩和
∣
1
⟩
|1\rangle
∣1⟩上的结果是状态
∣
0
⟩
|0\rangle
∣0⟩不变,
∣
1
⟩
|1\rangle
∣1⟩发生位相翻转,变为
−
∣
1
⟩
-|1\rangle
−∣1⟩。例如,对状态
α
∣
0
⟩
+
β
∣
1
⟩
\alpha|0\rangle+\beta|1\rangle
α∣0⟩+β∣1⟩实施Z-Gate,有:
Z
(
α
∣
0
⟩
+
β
∣
1
⟩
)
=
α
Z
∣
0
⟩
+
β
Z
∣
1
⟩
=
α
∣
0
⟩
−
β
∣
1
⟩
Z(\alpha|0\rangle+\beta|1\rangle)=\alpha Z|0\rangle+\beta Z|1\rangle=\alpha|0\rangle-\beta|1\rangle
Z(α∣0⟩+β∣1⟩)=αZ∣0⟩+βZ∣1⟩=α∣0⟩−β∣1⟩同样地,有:
Z
†
Z
=
Z
Z
†
=
[
1
0
0
−
1
]
[
1
0
0
−
1
]
=
I
Z^{\dagger} Z=ZZ^{\dagger}=\left[\begin{array}{ll} 1 & 0 \\ 0 & -1 \end{array}\right]\left[\begin{array}{ll} 1 & 0 \\ 0 & -1 \end{array}\right]=I
Z†Z=ZZ†=[100−1][100−1]=I因此,Z-Gate满足幺正性。
3. Hadamard变换
Hadamard变换也称为H-Gate,其矩阵表示为:
H
=
1
2
[
1
1
1
−
1
]
H=\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]
H=21[111−1]其作用在状态
∣
0
⟩
|0\rangle
∣0⟩和
∣
1
⟩
|1\rangle
∣1⟩上的结果为:
H
∣
0
⟩
=
1
2
[
1
1
1
−
1
]
[
1
0
]
=
∣
0
⟩
+
∣
1
⟩
2
H
∣
1
⟩
=
1
2
[
1
1
1
−
1
]
[
0
1
]
=
∣
0
⟩
−
∣
1
⟩
2
\begin{aligned} &H|0\rangle=\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]\left[\begin{array}{l} 1 \\ 0 \end{array}\right]=\frac{|0\rangle+|1\rangle}{\sqrt{2}} \\ &H|1\rangle=\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]\left[\begin{array}{l} 0 \\ 1 \end{array}\right]=\frac{|0\rangle-|1\rangle}{\sqrt{2}} \end{aligned}
H∣0⟩=21[111−1][10]=2∣0⟩+∣1⟩H∣1⟩=21[111−1][01]=2∣0⟩−∣1⟩同样地,有:
H
†
H
=
H
H
†
=
1
2
[
1
1
1
−
1
]
1
2
[
1
1
1
−
1
]
=
I
H^{\dagger} H=HH^{\dagger}=\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]=I
H†H=HH†=21[111−1]21[111−1]=I因此,Hadamard变换也满足幺正性。
4. CNOT门
控制非门(Controlled-NOT-Gate)简称为CNOT门,是一个2位qubit输入和2位qubit输出的量子回路,是没有能耗的可逆运算。CNOT门的作用如下图所示。
其中,状态
∣
x
⟩
|x\rangle
∣x⟩称为控制比特位,状态
∣
y
⟩
|y\rangle
∣y⟩称为目标比特位。当我们将
∣
x
⟩
|x\rangle
∣x⟩和
∣
y
⟩
|y\rangle
∣y⟩输入到CNOT门之后,控制比特位上的输出状态不变,依旧为
∣
x
⟩
|x\rangle
∣x⟩,而目标比特位上的输出状态变为
∣
x
⊕
y
⟩
|x\oplus y\rangle
∣x⊕y⟩。而
⊕
\oplus
⊕实现的是二进制的模2加法,因此,对于输入状态
∣
00
⟩
,
∣
01
⟩
,
∣
10
⟩
,
∣
11
⟩
|00\rangle,|01\rangle,|10\rangle,|11\rangle
∣00⟩,∣01⟩,∣10⟩,∣11⟩,可以推导出如下的输出状态:
结果表明,当控制位为状态
∣
0
⟩
|0\rangle
∣0⟩时,目标位上的qubit不发生bit反转;当控制位为状态
∣
1
⟩
|1\rangle
∣1⟩时,目标位上的qubit发生bit反转。 因此,CNOT门的作用可以概括为:利用控制比特
∣
x
⟩
|x\rangle
∣x⟩实现对目标比特
∣
y
⟩
|y\rangle
∣y⟩的 bit反转(X-Gate)。
控制非门对于叠加状态是线性算子,也就是说当叠加状态
α
00
∣
00
⟩
+
α
01
∣
01
⟩
+
α
10
∣
10
⟩
+
α
11
∣
11
⟩
\alpha_{00}|00\rangle+\alpha_{01}|01\rangle+\alpha_{10}|10\rangle+\alpha_{11}|11\rangle
α00∣00⟩+α01∣01⟩+α10∣10⟩+α11∣11⟩被送入控制非门,其输出状态是
α
00
∣
00
⟩
+
α
01
∣
01
⟩
+
α
10
∣
11
⟩
+
α
11
∣
10
⟩
\alpha_{00}|00\rangle+\alpha_{01}|01\rangle+\alpha_{10}|11\rangle+\alpha_{11}|10\rangle
α00∣00⟩+α01∣01⟩+α10∣11⟩+α11∣10⟩。如果qubit对的基底表示为
∣
00
⟩
=
[
1
0
0
0
]
,
∣
01
⟩
=
[
0
1
0
0
]
,
∣
10
⟩
=
[
0
0
1
0
]
,
∣
11
⟩
=
[
0
0
0
1
]
|00\rangle=\left[\begin{array}{l} 1 \\ 0 \\ 0 \\ 0 \end{array}\right],|01\rangle=\left[\begin{array}{l} 0 \\ 1 \\ 0 \\ 0 \end{array}\right],|10\rangle=\left[\begin{array}{l} 0 \\ 0 \\ 1 \\ 0 \end{array}\right],|11\rangle=\left[\begin{array}{l} 0 \\ 0 \\ 0 \\ 1 \end{array}\right]
∣00⟩=⎣⎢⎢⎡1000⎦⎥⎥⎤,∣01⟩=⎣⎢⎢⎡0100⎦⎥⎥⎤,∣10⟩=⎣⎢⎢⎡0010⎦⎥⎥⎤,∣11⟩=⎣⎢⎢⎡0001⎦⎥⎥⎤
那么,CNOT门可以表示为
4
×
4
4\times4
4×4的幺正矩阵:
C
N
O
T
=
[
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
]
CNOT=\left[\begin{array}{llll} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{array}\right]
CNOT=⎣⎢⎢⎡1000010000010010⎦⎥⎥⎤ 我们已经总结出CNOT门就是利用控制比特
∣
x
⟩
|x\rangle
∣x⟩实现对目标比特
∣
y
⟩
|y\rangle
∣y⟩的 bit反转(X-Gate),同样地,如果利用控制比特
∣
x
⟩
|x\rangle
∣x⟩实现对目标比特
∣
y
⟩
|y\rangle
∣y⟩的位相翻转(Z-Gate),则可以得到控制Z门(Controlled-Z-Gate),简记为CZ门。如何实现从CNOT门到CZ门的转换呢?参考如下变换:
H
X
H
=
1
2
[
1
1
1
−
1
]
[
0
1
1
0
]
1
2
[
1
1
1
−
1
]
=
[
1
0
0
−
1
]
=
Z
HXH=\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]\left[\begin{array}{ll} 0 & 1 \\ 1 & 0 \end{array}\right]\frac{1}{\sqrt{2}}\left[\begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array}\right]=\left[\begin{array}{ll} 1 & 0 \\ 0 & -1 \end{array}\right]=Z
HXH=21[111−1][0110]21[111−1]=[100−1]=Z即在X-Gate前后分别作用一个Hadamard门,就可以得到Z-Gate。于是,通过CNOT门得到CZ门的方法为:
(
I
⊗
H
)
C
N
O
T
(
I
⊗
H
)
=
[
H
0
0
H
]
[
I
0
0
X
]
[
H
0
0
H
]
=
[
H
0
0
H
]
[
H
0
0
X
H
]
=
[
I
0
0
H
X
H
]
=
[
I
0
0
Z
]
=
C
Z
\begin{aligned} (I \otimes H) C N O T(I \otimes H) &=\left[\begin{array}{cc} H & 0 \\ 0 & H \end{array}\right]\left[\begin{array}{cc} I & 0 \\ 0 & X \end{array}\right]\left[\begin{array}{cc} H & 0 \\ 0 & H \end{array}\right] \\ &=\left[\begin{array}{cc} H & 0 \\ 0 & H \end{array}\right]\left[\begin{array}{cc} H & 0 \\ 0 & X H \end{array}\right] \\ &=\left[\begin{array}{cc} I & 0 \\ 0 & H X H \end{array}\right] \\ &=\left[\begin{array}{cc} I & 0 \\ 0 & Z \end{array}\right] \\ &=C Z \end{aligned}
(I⊗H)CNOT(I⊗H)=[H00H][I00X][H00H]=[H00H][H00XH]=[I00HXH]=[I00Z]=CZ当叠加状态
α
00
∣
00
⟩
+
α
01
∣
01
⟩
+
α
10
∣
10
⟩
+
α
11
∣
11
⟩
\alpha_{00}|00\rangle+\alpha_{01}|01\rangle+\alpha_{10}|10\rangle+\alpha_{11}|11\rangle
α00∣00⟩+α01∣01⟩+α10∣10⟩+α11∣11⟩被送入CZ门,其输出状态是
α
00
∣
00
⟩
+
α
01
∣
01
⟩
+
α
10
∣
10
⟩
−
α
11
∣
11
⟩
\alpha_{00}|00\rangle+\alpha_{01}|01\rangle+\alpha_{10}|10\rangle-\alpha_{11}|11\rangle
α00∣00⟩+α01∣01⟩+α10∣10⟩−α11∣11⟩。同样地,CZ门可以表示为
4
×
4
4\times4
4×4的幺正矩阵:
C
Z
=
[
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
−
1
]
CZ=\left[\begin{array}{llll} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{array}\right]
CZ=⎣⎢⎢⎡100001000010000−1⎦⎥⎥⎤
实际上,将右下角的 2 × 2 2\times2 2×2矩阵进行变化,可以得到不同的针对目标量子比特的操作。除此之外,对左上角的 2 × 2 2\times2 2×2矩阵进行变化,则可以对控制量子比特的状态进行改变。