03 - 量子閘 (Quantum Gate)

上一節講到布洛赫球面,量子閘其實就是一個轉動量子的裝置

不同的閘門會用不同的公式做旋轉,來改變他被測量到的機率

而這些旋轉可以當作一些矩陣運算來處理。

以下開始介紹各種閘門,看過去有些繁瑣我知道 QQ

單一量子閘(One-Qubit Gates)

這組 U 是 IBMQ 實作的基本單位,可以做一些現有 Gate 的旋轉

Primitives (基本單位)

  • UU-GateGate :

    • U3(θ,ϕ,λ)=[cosθ2eiλsinθ2eiϕsinθ2ei(ϕ+λ)cosθ2]U_3(\theta,\phi,\lambda)=\begin{bmatrix}\cos{\frac{\theta}{2}}&-e^{i\lambda}\sin{\frac{\theta}{2}}\\e^{i\phi}\sin{\frac{\theta}{2}}&e^{i(\phi+\lambda)}\cos{\frac{\theta}{2}}\end{bmatrix}

    • U2(ϕ,λ)=U3(π2,ϕ,λ)=[1eiλeiϕei(ϕ+λ)]U_2(\phi, \lambda) = U_3(\frac{\pi}{2},\phi,\lambda) = \begin{bmatrix}1&-e^{i\lambda}\\e^{i\phi}&e^{i(\phi+\lambda)}\end{bmatrix}

    • U1(λ)=U3(0,0,λ)=[100ei(λ)]U_1(\lambda) = U_3(0,0,\lambda) = \begin{bmatrix}1&0\\0&e^{i(\lambda)}\end{bmatrix}


從這邊開始是一些現有 Gate 的介紹

Hadamard Transform

(Hadamard Gate)=U2(0,π)(Hadamard\ Gate) = U_2(0,\pi)

  • 球面幾何意義 : 將向量 ψ| \psi\rangle 沿著 X 和 Z 軸的角平分線旋轉 π\pi 弧度。

H=12[1111]H = \frac{1}{\sqrt{2}}{\begin{bmatrix} 1&1\\ 1&-1 \end{bmatrix}}

  • 範例 :
    狀態 0=[10]|0\rangle={\begin{bmatrix}1\\0\end{bmatrix}} 經過 H 閘,12[1111]=12[11]{θ=π2ϕ=0\frac{1}{\sqrt{2}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}=\frac{1}{\sqrt{2}}{\begin{bmatrix}1\\1\end{bmatrix}} \Rightarrow \begin{cases} \theta = \frac{\pi}{2}\\ \phi = 0 \end{cases},也就是從指向 +Z 方向變成 +X 方向。

  • 意義 : 12[11]\frac{1}{\sqrt{2}}{\begin{bmatrix}1\\1\end{bmatrix}} 這個狀態就是所謂的疊加態 (Superposition)。

    狀態的描述 ψ=α0+β1|\psi\rangle= \alpha|0\rangle + \beta|1\rangleα2\alpha^2 為 qubit 觀察結果為 0 的機率,而 β2\beta^2 為 qubit 觀察結果為 1 的機率 :

    ψ=α0+β1=α[10]+β[01]=[αβ]|\psi\rangle= \alpha|0\rangle + \beta|1\rangle =\alpha\begin{bmatrix}1\\0\end{bmatrix}+\beta\begin{bmatrix}0 \\ 1\end{bmatrix} = \begin{bmatrix}\alpha\\\beta\end{bmatrix}

    而經過 H-gate 的 0|0\rangle1|1\rangle 代表他出現 0 或 1 的機率各半:

12[11]=12[11]=[1212]{α2=12β2=12\frac{1}{\sqrt{2}}{\begin{bmatrix}1\\1\end{bmatrix}} = \frac{1}{\sqrt{2}}{\begin{bmatrix}1\\1\end{bmatrix}} = {\begin{bmatrix}\frac{_1}{^{\sqrt{2}}}\\\frac{_1}{^{\sqrt{2}}}\end{bmatrix}} \Rightarrow \begin{cases} \alpha^2 = \frac{_1}{^2}\\ \beta^2 = \frac{_1}{^2} \end{cases}

Pauli Matrices

(Pauli(Pauli-X Gate)=U3(π,0,π)X \ Gate) = U_3(\pi,0,\pi)

  • 球面幾何意義 : 將向量 ψ| \psi\rangle 對 X 軸旋轉 180(π2)180^{\circ}(\frac{\pi}{2})

σx=[0110]\sigma_{x} = {\begin{bmatrix} 0&1\\ 1&0 \end{bmatrix}}

  • 範例:
    狀態 0=[10]|0\rangle=\begin{bmatrix}1 \\ 0\end{bmatrix} 經過 X 閘,[0110][10]=[01]{θ=πϕ=0{\begin{bmatrix}0&1\\1&0\end{bmatrix}}{\begin{bmatrix}1\\0\end{bmatrix}} ={\begin{bmatrix}0\\1\end{bmatrix}} \Rightarrow \begin{cases} \theta = \pi\\ \phi = 0 \end{cases},也就是從指向+z 方向變成-z 方向,因此他相當於電子邏輯閘的「NOT 閘」。

(Pauli(Pauli-Y Gate)=U3(π,π2,π2)Y \ Gate) = U_3(\pi,\frac{\pi}{2},\frac{\pi}{2})

  • 球面幾何意義 : 將向量 ψ| \psi\rangle 對 Y 軸旋轉 180(π2)180^{\circ}(\frac{\pi}{2})

σy=[0ii0]\sigma_{y} = {\begin{bmatrix} 0&-i\\ i&0 \end{bmatrix}}

  • 範例:
    狀態 0=[10]|0\rangle=\begin{bmatrix}1 \\ 0\end{bmatrix} 經過 Y 閘,[0ii0][10]=[0i]=i1{θ=πϕ=0{\begin{bmatrix}0&-i\\i&0\end{bmatrix}}{\begin{bmatrix}1\\0\end{bmatrix}} ={\begin{bmatrix}0\\i\end{bmatrix}} = i|1\rangle \Rightarrow \begin{cases} \theta = \pi\\ \phi = 0 \end{cases},指向也是從 +z 方向變成 -z 方向但是與 X-gate 不同的是,此矩陣運算完係數會多 𝑖 倍,因為 x-y 平面是個複數平面。

(Pauli(Pauli-Z Gate)=U1()Z \ Gate) = U_1()

  • 球面幾何意義 : 將向量 ψ| \psi\rangle 對 Z 軸旋轉 180(π2)180^{\circ}(\frac{\pi}{2})

σz=[1001]\sigma_{z} = {\begin{bmatrix} 1&0\\ 0&-1 \end{bmatrix}}

  • 範例:
    狀態 0=[10]|0\rangle=\begin{bmatrix}1 \\ 0\end{bmatrix} 經過 Z 閘,[1001][10]=[10]=0{\begin{bmatrix}1&0\\0&-1\end{bmatrix}}{\begin{bmatrix}1\\0\end{bmatrix}} ={\begin{bmatrix}1\\0\end{bmatrix}} = |0\rangle,依舊指著 +z 方向。

可以在這邊做視覺話的測試

Phase shift gates

R(δ)R(\delta) 閘,用來細微調整量子的狀態 ( 也就是 UU-GateGate ),以 RzR_z 為例:

  • 球面幾何意義 : 將向量 ψ| \psi\rangle 對 Z 軸旋轉 δ\delta 弧度。

    Rz(δ)=U1(δ)=[100eiδ]R_z(\delta) = U_1(\delta) = {\begin{bmatrix}1&0\\0&e^{i\delta}\end{bmatrix}}

  • 狀態 ψ=[αβ]=[cosθ2eiϕsinθ2]|\psi\rangle=\begin{bmatrix}\alpha\\\beta\end{bmatrix} = \begin{bmatrix}\cos\frac{\theta}{2}\\e^{i\phi}\sin\frac{\theta}{2}\end{bmatrix}


    R(δ=π)R(\delta = \pi)[100eiδ][cosθ2eiϕsinθ2]=[cosθ2ei(ϕ+δ)sinθ2]{θ=πϕ=ϕ+δ{\begin{bmatrix}1&0\\0&e^{i\delta}\end{bmatrix}} \begin{bmatrix}\cos\frac{\theta}{2}\\e^{i\phi}\sin\frac{\theta}{2}\end{bmatrix} = \begin{bmatrix}\cos\frac{\theta}{2}\\e^{i(\phi+\delta)}\sin\frac{\theta}{2}\end{bmatrix}\Rightarrow \begin{cases} \theta = \pi\\ \phi' = \phi+\delta \end{cases} ,也就是沿著 z 軸旋轉 𝛿 弧度。

  • Phase gates ( RzR_z ) 中有些常用的閘,簡單介紹一下:

    • (Z(Z-gate)gate) : 其實就是 R(δ=π)R(\delta = \pi) 閘,相當於轉半圈
    • (S(S-gate)gate) : 就是 R(δ=π2)R(\delta = \frac{\pi}{2}) 閘,等於 Z\sqrt{Z},相當於轉半圈
    • (T(T-gate)gate) : 就是 R(δ=π4)R(\delta = \frac{\pi}{4}) 閘,等於 S\sqrt{S}

  • 而反向的則有 :

    • (T(T^\dagger-gate)gate) : R(δ=π4)R(\delta = \frac{-\pi}{4})
    • (S(S^\dagger-gate)gate) : R(δ=π2)R(\delta = \frac{-\pi}{2})

另外 X,YX,Y 也一樣可以用 UGateU Gate 表示:

  • XX 軸旋轉 θ\theta 度 : Rx(θ)=U3(θ,π2,π2)R_x(\theta) = U_3(\theta,-\frac{\pi}{2},\frac{\pi}{2})
  • YY 軸旋轉 θ\theta 度 : Ry(θ)=U3(θ,0,0)R_y(\theta) = U_3(\theta,0,0)

IBM 實驗室 都可以自己註冊,做模擬實驗~


多量子閘 (Multi-Qubit Gates)

兩顆 Qubit

Controlled Gates :

  • 這是一個對 “二元量” 互動的操作,若控制端 (control) 量子位元的測量結果為 1|1\rangle, 則對目標端 (target) 的量子位元,做後方接著的 Gate 操作;

CG=[I00G]C_G = \begin{bmatrix}I&0\\0&G\end{bmatrix}

Controlled Pauli Gates

Controlled X Gates ( CXC_X又稱作CNOT )

CNOT 閘

  • 這是一個 “二元量子閘”,若控制端 (control) 量子位元的測量結果為 1|1\rangle, 則對目標端 (target) 的量子位元做 NOT,將它翻過來,即 X 閘;

  • 反之,當控制端為 0|0\rangle ,則不對目標端做任何操作。

  • 範例 : 假設 X|X\rangle 為 Control, Y|Y\rangle 為 Target

X Y XY
0 0 00
0 1 01
1 0 11
1 1 10
  • 當有多個 Qubit (XY|XY\rangle) 疊加態時,可以用來纏結 (Entangled) 成 EPR states(或 Bell state) 或解纏結 (Disentangle),之後會再提到。

Controlled-Y:CYY : C_Y
Controlled-Z:CZZ : C_Z
Controlled-H:CHH : C_H
Controlled-U1:CU1U_1 : C_{U_1}
Controlled-U2:CU2U_2 : C_{U_2}
Controlled-U3:CU3U_3 : C_{U_3}

一樣的道理,故略 XD

Swap Gate

  • 交換兩個bit

三顆 Qubit

Toffoli (CCNOT) gate

  • 跟 CNOT 相似 ,換成兩個控制端,只有當 c1,c2 都為 1 時,才會翻 target。

Fredkin (CSWAP) gate

  • 當第一個輸入端為 1 時,下方兩個 bit 做交換; 反之,為 0 時,什麼都不做。