# Bloch sphere (下):Quantum Gate 如何運作 上一節中,我們用 Bloch sphere 可視化 qubit 的狀態,這一節將延續這概念,帶大家了解 quantum gate 如何影響 qubit 的狀態。 ## 常見 single qubit quantum gate ### X gate X gate 的作用就是在 Bloch sphere 上繞著 X 軸旋轉 $180^{\circ}$。原本指向 +Z 軸的箭頭(即 $|0\rangle$)會移動到 -Z 軸(即 $|1\rangle$) <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/BJIDXGPn0.svg" alt="Bloch X gate" width="80%"/> <br>X gate 的作用就是對 Bloch 球上的 X 軸(綠色線)旋轉 180 度(紅色線),原本指向 +Z 軸的淺黃粗箭頭(帶有藍點的)會轉到 -Z 軸(深黃粗箭頭) <p> </p> </div> 再回頭看前面提過 X gate 的作用,是可以與 Bloch sphere 的結果對應: \begin{split} X|0\rangle = |1\rangle\\ X|1\rangle = |0\rangle \end{split} ### Y gate 相同地,Y gate 的作用是繞著 Y 軸旋轉 $180^{\circ}$。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/B1q74Mvh0.svg" alt="Bloch Y gate" width="80%"/> <br>Y gate 的作用就是對 Bloch 球上的 Y 軸(綠色線)旋轉 180 度(紅色線),原本指向 +Z 軸的淺黃粗箭頭(帶有藍點的)會轉到 -Z 軸(深黃粗箭頭) <p> </p> </div> <div style="background-color: #E0E0E0; color: #333; padding: 15px; font-style: italic; border-radius: 5px;"> 你知道 $Y|0\rangle=i|1\rangle$,對應到 Bloch sphere 上,即 $\theta=90^\circ$,$\phi=90^\circ$,所以在這裡看不到虛數的硬想 </div> 可以明顯看到,與 X gate 一樣,連續轉兩次會回到原點,即 \begin{split} XX|0\rangle = YY|0\rangle=I|0\rangle=|0\rangle\\ \end{split} ### Phase shift gate 你應該也猜到了,Z gate 就是繞著 Z 軸轉 $180^{\circ}$。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/ByuwVzPhR.svg" alt="Bloch Z gate" width="80%"/> <br>qubit 的初始狀態是淺黃箭頭指向之處(即淺藍點的地方),經過 Z gate 的操作,也就是對 Z 軸(綠色線)旋轉 180 度(紅色線)後,qubit 的狀態變為在深黃箭頭指向之處 <p> </p> </div> 如果今天只有轉 $90^{\circ}$,就是 S gate,T gate 就是繞著 Z 軸轉 $45^{\circ}$ ### H gate H gate 的運作比較抽象,正確來說是是繞著 $\frac{X+Z}{\sqrt{2}}$ 軸轉 $180^{\circ}$: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HJymSGw3A.svg" alt="Bloch H gate" width="80%"/> <br>H gate 的作用是繞著圖中綠色線旋轉 180 度(紅色箭頭與紅色軌跡),原本指向狀態為 0 的淺黃帶藍點箭頭會轉到指向重疊態的深黃箭頭 <p>(請原諒作者藝術不好,紅色軌跡線畫不好) </p> </div> 這樣講起來蠻抽象的,另一種理解方式是先繞著 Y 軸轉 $90^{\circ}$ 再繞著 X 軸轉 $180^{\circ}$: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/SyfHiGwn0.svg" alt="Bloch H gate" width="80%"/> <br>另一種理解 H gate 的操作,是先對 Y 軸旋轉 90 度,原本指向 0 的淺黃箭頭會沿著粉色軌跡線(標注 1 的那條)移動到 X 軸處,再對 X 軸旋轉 180 度,深黃箭頭繞著標註為 2 的粉色軌跡線在原地旋轉 <p> </p> </div> <blockquote> 實際上這種操作方式並不是 H gate,反而是 -iH,但在測量後我們觀測不到 -i 的影響,因此可以當作 H gate </blockquote> ## Rotation gate 我們前面看到的 X, Y, Z gate 都是繞特定軸旋轉 $180^\circ$ 或 $90^\circ$,但如果需要其他角度旋轉呢?像是只是想要旋轉 $30^{\circ}$,能做到嗎?這時候就需要 rotation gate,,它允許我們在 Bloch sphere 上進行任意角度的旋轉。 ### RX gate <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/SkJYjzvhR.svg" alt="RX gate" width="40%"/> <br> <p>RX gate 的符號 </p> </div> RX gate 是繞著 X 軸旋轉任意角度 $\theta$,公式如下: \begin{split} RX(\theta)= \begin{bmatrix} \cos{\frac{\theta}{2}} & -i\sin{\frac{\theta}{2}} \\ -i\sin{\frac{\theta}{2}} & \cos{\frac{\theta}{2}} \end{bmatrix} \end{split} 我們前面提過,X gate 是繞著 X 軸轉 $180^{\circ}$,即 $RX(\pi)$,當你真的代這角度到上述矩陣後會發現 \begin{split} X=iRX(\pi)&=i \begin{bmatrix} \cos{\frac{\pi}{2}} & -i\sin{\frac{\pi}{2}} \\ -i\sin{\frac{\pi}{2}} & \cos{\frac{\pi}{2}} \end{bmatrix} \\ &=i \begin{bmatrix} 0 & -i \\ -i & 0 \end{bmatrix}= \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \end{split} 它與 X gate 差一個虛數 $i$,但實際我們做觀測後,看不到虛數(卻又真實存在),所以通常會忽略之,即 \begin{split} X\approx RX(\theta) \end{split} 有時候 RX gate 會寫成 \begin{split} RX(\theta)&=e^{-i\frac{\theta}{2}X}\\ &=\cos{\frac{\theta}{2}}I-i\sin{\frac{\theta}{2}}X \end{split} ### RY gate <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/BkwAiMv3R.svg" alt="RY gate" width="40%"/> <br> <p>RY gate 的符號 </p> </div> 同理,RY 是繞著 Y 軸做旋轉 \begin{split} RY(\theta)&= \begin{bmatrix} \cos{\frac{\theta}{2}} & -i\sin{\frac{\theta}{2}} \\ \sin{\frac{\theta}{2}} & \cos{\frac{\theta}{2}} \end{bmatrix}\\ &=e^{-i\frac{\theta}{2}Y}\\ &=\cos{\frac{\theta}{2}}I-i\sin{\frac{\theta}{2}}Y \end{split} 同理, \begin{split} Y&=iRY(\pi)\approx RY(\pi) \\ \end{split} 有了 RX 與 RY gate 後,就能組合出 H gate,即前面對 H gate 的第二種理解方式,先對 Y 軸轉 90 度再對 X 軸轉 180 度: \begin{split} H&=X\sqrt{Y}\approx RX(\pi)RY(\frac{\pi}{2})=-iH \end{split} ### RZ gate <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/B1ZZ2fPh0.svg" alt="RZ gate" width="40%"/> <br> <p>RZ gate 的符號 </p> </div> \begin{split} RZ(\theta)&= \begin{bmatrix} e^{-i\frac{\theta}{2}} & 0 \\ 0 & e^{i\frac{\theta}{2}} \end{bmatrix}\\ &=e^{-i\frac{\theta}{2}Z}\\ &=\cos{\frac{\theta}{2}}I-i\sin{\frac{\theta}{2}}Z \end{split} 同理, \begin{split} Z&=iRZ(\pi)\approx RZ(\pi) \end{split} 前面提及,S gate 就是繞著 Z 軸轉 $90^{\circ}$,T gate 則是旋轉 $45^{\circ}$,即: \begin{split} S&=\sqrt{Z} \approx RZ(\frac{\pi}{2}) \\ T&=\sqrt{S} \approx RZ(\frac{\pi}{4}) \end{split} 以上可以發現 rotation gate 與我們介紹常用的 gate 都差了一個虛數,這虛數我們稱之為 global phase(全局相位),不過這 global phase 在現實中無法被觀測到,也就是說它大體上不會影響到計算的過程與結果,因此通常會忽略不計。