第一條橫線代表第一個 qubit(通常標記為 q0),第二條橫線代表第二個 qubit(通常標記為 q1),經過中間 gate 操作後,兩個 qubit 的狀態可能會改變
CU gate 的符號
CNOT (CX) gate 的符號
用經典邏輯閘構建如 CNOT gate 的電路
圖中右邊這張圖,稱作電路,會在本系列最後一篇文章中介紹如何解讀電路圖。電路同的看法是從左邊開始,所以在這圖中,兩個 qubit 先做 H gate,再做 CNOT,最後再做 H gate 操作### CZ gate CZ gate 是 Controlled-Z gate,當 controlled qubit 是 $|1\rangle$ 時,對 target qubit 執行 Z gate 操作。
CZ gate 的符號,最常見的符號是左邊的
這兩種 gate 對 qubit 的狀態改變是一樣的
Toffoli (CCNOT) gate 的符號
Fredlin (CSWAP) gate 的符號
可以用三個 CCNOT 組合出 Toffoli gate
SWAP gate 的符號
SWAP gate 可以用三個 CNOT gate 組合出來。為了後面解釋方便,
假設電路圖上,由左至右,qubit 做了 A, B, 與 C gate 操作,寫成矩陣相乘時要寫成 CBA,B 與 A 先相乘,再與 C 相乘## 其他量子邏輯閘組合 前面提及如何使用 tensor product 將多個 qubits 的量子態表示為一個矩陣,同樣地,我們也能用 tensor product 將多個 quantum gate 以一個矩陣表示。以下是一些範例:
同一條線上的 quantum gate 可透過矩陣相乘來組合成一個矩陣;對於不同線上的量子閘,則必須使用 tensor product 組合成一個矩陣。以前面提及用 H gate 和 CNOT 結合成 CNOT gate 的範例圖為例,最初和最後的兩個 H gate 因在不同的線上,所以它們的矩陣需透過張量積組合成一個我們先稱作 HH 的單一矩陣,接著 HH、CNOT 和最後的 HH 都是 two qubit gate,因此可以透過矩陣相乘將它們組合成單一矩陣。做個簡單的驗證,假設這兩個 qubits 的初始狀態都是 $|0\rangle$,那麼: \begin{split} (H\otimes I)|00\rangle &=\frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 1 & 0 & -1 & 0 \\ 0 & 1 & 0 & -1 \\ \end{bmatrix} \begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}=\frac{1}{\sqrt{2}} \begin{bmatrix} 1 \\ 0 \\ 1 \\ 0 \end{bmatrix} \\ &=\frac{1}{\sqrt{2}} ( \begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \\ 1 \\ 0 \end{bmatrix} ) \\ &=\frac{1}{\sqrt{2}} (|00\rangle+|10\rangle) \\ &=\frac{1}{\sqrt{2}} (|0\rangle+|1\rangle)|0\rangle \end{split} 與實際結果相同。 ### 多個 H gate 組合 同樣地,當有 2 個 qubits 都執行 H gate 操作時
這裡的 $x$ 和 $y$ 都是 0 與 1
今天有 $n$ 個 qubits 都做 H gate 操作,就要把 $n$ 個上式做 tensor product,即:
\begin{split}
H^{\otimes n}&=
\frac{1}{\sqrt 2} \sum_{x_1,y_1} (-1)^{x_1\cdot y_1}|x_1\rangle\langle y_1| \otimes \frac{1}{\sqrt 2} \sum_{x_2,y_2} (-1)^{x_2\cdot y_2}|x_2\rangle\langle y_2|\otimes... \otimes \frac{1}{\sqrt 2} \sum_{x_n,y_n} (-1)^{x_n\cdot y_n}|x_n\rangle\langle y_n| \\
&=\frac{1}{\sqrt{2^n}} \sum_{x,y} (-1)^{x\cdot y}|x\rangle\langle y|
\end{split}
最後一行的 $x=[x_1,x_2,...x_n]$,$y$ 也是,都是 0 或 1 這兩個數字,以 2 個 qubits ($n=2$)都做 H gate 操作為例:
\begin{split}
H^{\otimes 2}=\frac{1}{\sqrt{2^2}}[ &|00\rangle\langle 00|+|01\rangle\langle 00|+|00\rangle\langle 01|-|01\rangle\langle 01|+ \\
&|10\rangle\langle 00|+|11\rangle\langle 00|+|10\rangle\langle 01|-|11\rangle\langle 01|+\\
&|00\rangle\langle 10|+|01\rangle\langle 10|+|00\rangle\langle 11|-|01\rangle\langle 11|-\\
&|10\rangle\langle 10|-|11\rangle\langle 10|-|10\rangle\langle 11|+|11\rangle\langle 11|]\\
&=\frac{1}{2}
\begin{bmatrix}
1 & 1 & 1 & 1\\
1 & -1 & 1 & -1\\
1 & 1 & -1 & -1\\
1 & -1 & -1 & 1
\end{bmatrix}
\end{split}
如果上式看了很頭痛,其實有更簡單的表示方法:
\begin{split}
H^{\otimes n}=\frac{1}{\sqrt{2}}
\begin{bmatrix}
H^{\otimes n-1} & H^{\otimes n-1} \\
H^{\otimes n-1} & -H^{\otimes n-1}
\end{bmatrix}
\end{split}
以 $H^{\otimes 2}$ 為例,即:
\begin{split}
H^{\otimes 2}=\frac{1}{\sqrt{2}}
\begin{bmatrix}
H & H \\
H & -H
\end{bmatrix}
\end{split}