# 量子電路 就像經典電腦一樣,在了解位元與邏輯閘後,我們可以組成這些元素來構建邏輯電路進行數學計算。量子電腦也是如此,當我們了解了 qubit 和 quantum gate 後,也可以利用它們來組合電路(稱作量子電路),以解決各種問題。 ## 量子電路 量子電路的畫法與五線譜有些相似。閱讀量子電路時,要從上往下,由左而右閱讀: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HkDJa6ihA.svg" alt="Quantum circuit" width="100%"/> <br>量子電路的樣貌,閱讀時從上到下(量子位元),從左到右(量子閘) <p> </p> </div> 從最左邊開始,由上往下,每一條水平線都代表一個 qubit,幾條線代表有幾個 qubits。當需要以 Bra-Ket 記號書寫 qubit 的狀態時,習慣由上到下讀取 qubit 的狀態,再由左而右書寫。以圖中為例,qubit 的初始狀態為 $|100\rangle$。 然後由左而右閱讀,線上每個 gate 代表對 qubit 進行的 gate 操作,從左邊開始,到右邊結束。 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/B1ZwXAi3C.svg" alt="Quantum circuit" width="100%"/> <br>畫成流程圖就是長這樣 <p> </p> </div> 這種閱讀方式和我們在[數位邏輯電路](https://www.entangletech.tw/lesson/basic-algorithm-03)中學習的非常類似: <div style="text-align: center;"> <img src="https://upload.wikimedia.org/wikipedia/commons/d/d9/Half_Adder.svg" alt="半加法器" width="40%"/> <br> <p>由上往下看,這個電路有兩個位元,由左到右,這兩個位元同時經過 XOR 與 AND 閘 </p> </div> 接下來,我們會通過幾個例子來練習如何解讀量子電路 ## 實例 ### 範例一 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/Sk85T6in0.svg" alt="Quantum circuit" width="70%"/> <br> <p> </p> </div> 這個電路只有一個 qubit,初始狀態是 $|0\rangle$,先經過 X gate 操作,再進行測量。在解讀的過程中,我們通常在每經過一個 gate 時,就畫一條虛線,並標號當下 qubit 的狀態,像上圖。 接著我們由左而右解析 qubit 當下的狀態 \begin{split} \text{初始狀態: } |\psi_0\rangle&=|0\rangle \\ \text{X gate 操作: }\quad |\psi_1\rangle&=|1\rangle \\ \text{測量: }\quad |\psi_2\rangle&=|1\rangle \\ \end{split} 同樣的電路,擴展到 3 個 qubits: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/H1m0aTsnA.svg" alt="Quantum circuit" width="70%"/> <br> <p> </p> </div> \begin{split} \text{初始狀態: } |\psi_0\rangle&=|000\rangle \\ \text{X gate 操作: }\quad |\psi_1\rangle&=|010\rangle \\ \text{測量: }\quad |\psi_2\rangle&=|010\rangle \\ \end{split} ### 範例二 這次換你嘗試自己解讀這電路 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/ryIlCain0.svg" alt="Quantum circuit" width="70%"/> <br> <p> </p> </div> \begin{split} \text{初始狀態: } |\psi_0\rangle&=|0\rangle \\ \text{H gate 操作: }\quad |\psi_1\rangle&=\frac{1}{\sqrt 2}(|0\rangle+|1\rangle) \end{split} 經過測量後有 50% 的機率得到 $|0\rangle$,50% 的機率是得到$|1\rangle$。 ### 範例三 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/ryQXC6shR.svg" alt="Quantum circuit" width="70%"/> <br> <p> </p> </div> \begin{split} |\psi_0\rangle&=|00\rangle \\ |\psi_1\rangle&=|01\rangle \\ |\psi_2\rangle&=\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle) \\ |\psi_3\rangle&=|01\rangle \\ |\psi_4\rangle&=|01\rangle \\ \end{split} ### 範例四 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/Sk78Rao2A.svg" alt="Quantum circuit" width="70%"/> <br> <p> </p> </div> \begin{split} |\psi_0\rangle&=|000\rangle \\ |\psi_1\rangle&=\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) \\ |\psi_2\rangle&=\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes\{\text{0 or 1}\}\otimes \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle) \\ |\psi_3\rangle&=\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes\frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes |0\rangle \\ \end{split} 最後測量結果中,第一個和第二個 qubit 有可能是 $|0\rangle$ 或是 $|1\rangle$(出現機率各半),第三個 qubit 則一定是 $|0\rangle$。 ### Bell state 下圖這電路,用前面介紹的方法做逐步解讀 <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/r1GuV0in0.svg" alt="Bell circuit" width="70%"/> <br> <p> </p> </div> \begin{split} |\psi_0\rangle&=|00\rangle \\ |\psi_1\rangle&= \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)\otimes |0\rangle\\ &=\frac{1}{\sqrt 2}(|00\rangle+|10\rangle)\\ |\psi_2\rangle&=\frac{1}{\sqrt 2}(|00\rangle+|11\rangle)=|\Phi^+\rangle\\ \end{split} 測量後,有 50% 的機率觀測到到 $|00\rangle$,另有 50% 的機率觀測到 $|01\rangle$ 再稍微複雜一點的電路: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/rJFMH0i20.svg" alt="Bell circuit" width="70%"/> <br> <p> </p> </div> \begin{split} |\psi_0\rangle&=|00\rangle \\ |\psi_1\rangle&=|01\rangle \\ |\psi_2\rangle&=\frac{1}{\sqrt 2}(|0\rangle+|1\rangle)\otimes |1\rangle\\ &=\frac{1}{\sqrt 2}(|01\rangle+|11\rangle)\\ |\psi_3\rangle&=\frac{1}{\sqrt 2}(|01\rangle+|10\rangle)=|\Psi^+\rangle \end{split} 以上這兩個電路的輸出狀態都是 Bell state。現在輪到你來嘗試,建構電路,組合出以下的量子態: \begin{split} |\Phi^-\rangle=\frac{1}{\sqrt{2}}(|00\rangle-|11\rangle) \end{split} <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/B1ETvCjhA.svg" alt="Bell circuit" width="70%"/> <br> <p> </p> </div> \begin{split} |\Psi^-\rangle=\frac{1}{\sqrt{2}}(|01\rangle-|10\rangle) \end{split} <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/HyA5rCjnC.svg" alt="Bell circuit" width="70%"/> <br> <p> </p> </div> ## 量子加法器 前面我們知道如何用數位邏輯閘建構一個簡單的加法器(半加法器): <div style="text-align: center;"> <img src="https://upload.wikimedia.org/wikipedia/commons/d/d9/Half_Adder.svg" alt="半加法器" width="40%"/> <br> <p> </p> </div> 這個電路能做到這樣的計算 \begin{array}{|c|c|} \hline \text{Input} & \text{Output} \\ \hline A\quad B & C \quad S \\ \hline 0\quad 0 & 0\quad 0\\ \hline 0\quad 1 & 0\quad 1\\ \hline 1\quad 0 & 0\quad 1\\ \hline 1\quad 1 & 1\quad 0\\ \hline \end{array} 該如何用量子邏輯閘做到一樣的事情呢?不難看出這真值表與 CNOT gate 的運作方式是一模一樣: <div style="text-align: center;"> <img src="https://hackmd.io/_uploads/Sy6yX_u2C.svg" alt="CX gate" width="30%"/> <br> <p> </p> </div> 其中 controlled qubit 對應到數位電路的 A,target qubit 對應到 B,經過 CNOT 操作後,controlled qubit 輸出對應到 C,target qubit 則為 S。 ## 總結 恭喜你完成這 17 堂課,從經典電腦的位元和邏輯閘,到量子電腦的量子位元和量子邏輯閘,你已經學會了如何組合這些元素來構建量子電路。在下一個系列課程中,我們將帶著你用量子電路建構出複雜的演算法,稱作量子演算法,並利用量子演算法解決實際上我們遇到的問題,敬請期待!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up