3.1 量子電路介紹
當積體電路越做越小, 小到如原子大小時, 就必須考慮到量子效應, 而當這個量子世界 來臨的時候, 許多傳統電路上的理論和應用就不適合了, 此時派上用場的就是以量子 力學為基礎的量子電路了。
想了解如何在量子計算系統中解決傳統電腦的問題,就必須先了解量子閘和量子電 路的基本概念。 傳統的計算機是由電線和邏輯閘所組成的, 一般較常見的邏輯閘有三 種, AND閘、OR 閘、NOT 閘, 這些邏輯閘會對資料進行運算, 而電線的功能則是負 責傳送資料, 我們可由真值表來得到結果。
在量子電路中, 也有量子的基本閘, 例如: 反閘、 控制反閘、 單一位元處理閘、 控 制單一位元處理閘; 另有三個閘稱作萬用閘, 就是控制反閘(controlled-NOT gate, CNOT gate)、 哈達馬閘 (Hadamard) 和控制旋轉閘 (CRm) 或是π8閘(T閘), 只 要有這三個閘就可以設計出所有的量子電路, 此量子電路中, 電線扮演的角色是傳送 具有量子疊加特性的量子位元, 而量子閘則是由各式么正變換所組成。 量子電路和一 般傳統電路的不同點是是量子電路到最後仍必須再進行量測才能讀到真正量子位元經 過運算後的結果, 一般傳統電路則不必。
之後還有一些人提出幾個理論來修正量子電路理論, 例如量子錯誤修正(error- cor-rection)和容錯運算 (fault-tolerant computation)等理論[5] [30], 這兩個理論說
第 3 章 量子電路
第 3 章 量子電路
圖 3.1: 布洛赫球面
量子電路是由量子閘所構成, 而量子閘可以表示成么正變換 (unitary transform) 的運算, 亦可以么正矩陣的運算來表示量子系統的時間進展。 一個單量子位元就是一
第 3 章 量子電路
第 3 章 量子電路
第 3 章 量子電路
第 3 章 量子電路
第 3 章 量子電路
圖 3.3: 控制旋轉閘以y軸和 z 軸為軸心旋轉的圖示
3.3 量子傅立業轉換電路
QFT電路屬於么正轉換, 符合機率和為一的關係,
依照修爾提出的質因數分解的量子傅立業轉換電路[31], 如下: 以數學式表示為:
2Xn−1 i=0
|Ci|2 =
2Xn−1 i=0
| ´Ci|2 = 1 ; i = 0, 1, 2, ..., 2n−1 (3.10) 量子傅立葉轉換就是要轉換:
|ji −→ 1
√N
N −1X
k=0
ei2πkjq |ki 也可以表示成
|ji −→ 1
2n2(|0i + e2πi0·jn|1i)(|0i + e2πi0·jn−1jn|1i) . . . (|0i + e2πi0·j1j2...jn|1i) (3.11) ( 0 · jn ≡ jn · 2−1 ; 0 · jn−1 · jn ≡ jn−1 · 2−1 + jn · 2−2 ;
依此類推, 0 · j1 · j2· · · jn ≡ j1 · 2−1 + j2 · 2−2+ · · · + jn · 2−n )
第 3 章 量子電路
QFT電路主要就是由哈達馬閘和量子控制旋轉閘所組成的, 哈達馬閘應用在第一 個量子位元, 狀態為:
|j1i −→= 1
√2(|0i + e2πi0·j1|1i)|j2j3...jni 再運用控制旋轉閘(C − R2), 狀態則為:
√1
2(|0i + e2πi0·j1j2|1i)|j2j3...jni
如果連續使用C − R3, C − R4, ...C − Rn作用在第一個量子位元上, 狀態會變成:
√1
2(|0i + e2πi0·j1j2...jn|1i)|j2j3...jni
接著運用哈達馬閘作用在第二個量子位元|j2i上, 然後再運用C − R2, C − R3, C − R4, ...C − Rn−1, 可得狀態為:
√1
2(|0i + e2πi0·j1j2...jn|1i)(|0i + e2πi0·j2...jn|1i)|j3...jni 由這個原理可再繼續推導|j3i, |j4i, ...|jni, 得到最終的狀態為:
1
2n2(|0i + e2πi0·j1j2...jn|1i)(|0i + e2πi0·j2...jn|1i) . . . (|0i + e2πi0·jn|1i) (3.12) 傅立業轉換量子電路圖示如下:
|j1i H R2 · · · Rn−1 Rn
|j2i • H · · · Rn−2 Rn−1
... ...
... ...
|jn−1i • • H R2
|jni • • • H
第 3 章 量子電路
此 (4.12) 結果與上述的 (4.11) 量子位元順序相反, 因此, 量子傅立業轉換電路輸 出值還需再經過重新排序, 重排電路可以可以利用調換電路 (Swap circuit) 來完成, 如下圖。
|1i • '&%$ !"# • |0i
|0i '&%$ !"# • '&%$ !"# |1i
電路是由3個控制反閘構成, 可交換兩個量子位元的順序。 重新排序後的量子電路 才會是最後的結果。
3.4 模指數電路
量子質因數分解會運用到上述的傅立業轉換電路, 也會遇到取餘數的問題, 將餘數的 問題以模數的型式來表示, 而其中若是含有指數(xa mod n), 就稱此類的模數為模指 數, 因此, 模指數可以解決求取餘數的問題。
根據模指數理論來設計模指數的量子電路[32], 計算餘數的問題, 也可以比傳統電 腦更節省時間。 模指數的電路圖(如圖3.4),x 和 n 為常數。
圖 3.4: 模指數的電路圖
由於量子電路可以反運算, 輸入端的量子位元和輸出端的量子位元會一樣多, 因此, 可由輸出端推測輸入端的值。 輸入端的|bi用來儲存輸出的|xa mod ni。 將 a 表示成 二進制, 再進行xa mod n的計算, 而數學式如下:
a = aN −12N −1+ aN −22N −2+ . . . + a121 + a020
第 3 章 量子電路
代入xa mod n, 結果為:
xa mod n = xaN −12N −1+aN −22N −2+...+a121+a020 mod n
= (xaN −12N −1 · xaN −22N −2 · . . . xa121 · xa020) mod n
= [x2N −1 mod n]aN −1. . .[x20 mod n]a0 mod n
(3.13)
令(x20) mod n = g0, 則
x21 mod n = g1
同理可得
x2N −1 mod n = gN −1 將g0, g1, . . . , gN −1代入可得
xa mod n = [(gN −1)aN −1 · . . . (g1)a1 · (g0)a0] mod n (3.14) 利用上述的數學式來設計模指數的量子電路, 便可得到結果。 舉例來說
f(a) = 11a mod 15的模指數電路圖 (如圖3.5)。
圖 3.5: f (a) = 11a mod15模指數電路圖示
以f(a) = 2a mod 15為例來設計模指數的量子電路。
第 3 章 量子電路