國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Chapter 1
量子計算工具簡介
近年量子電腦的發展引起了各界的廣泛關注,又因其本身即量子力學為基礎 的架構,理應於計算量子問題上比起古典電腦更具潛力及優勢。惟因量子位元的 數目及雜訊等問題,現階段量子電腦尚遠離成熟階段。本論文將利用雲端 IBM-Q 量子電腦及其搭配的古典模擬器檢驗量子自旋鏈的基態性質,包含量子相變及淬 火動力學,藉以初探 IBM-Q 量子電腦的性能。
1.1 量子電腦
自從著名物理學家費曼在 1980 年代初的演講中 [1] 提出量子電腦的優勢後過 了數十餘年,量子電腦技術的研發也終於漸獲業界及政府科技預算的投入,從 D-Wave、IBM 到 Google 在與學術界緊密合作下陸續推出號稱具實用性的量子計 算器。此外,一系列支援量子計算的軟體,如 Microsoft 開發的 Q# [2],Google 的 Cirq [3] 及 IBM 的 Qiskit [4],也相繼推出。
本論文利用 IBM 公司提供的雲端量子電腦服務 IBM-Q 及支援的 Qiskit 軟體 套件來進行模擬。現時間點 IBM 量子電腦已擁有 53 個量子位元運算能力。
1.2 Qiskit 環境中的量子電路
Qiskit 是 IBM 於 2017 年為使量子電腦實驗更容易進行而釋出的 Python 套件 庫 [4],它提供了從基礎的量子電路建構到進階的演算法。Qiskit 分四個組件,分
‧
別以古代四元素命名為 Terra,Aer,Aqua 及 Ignis (即土、風、水、火)。其中 Terra 組件提供量子計算基本的電路元件;Aer 組件提供用於傳統電腦的量子模 擬;Aqua 組件提供一系列的量子演算法,供使用者無需具備深入的量子計算理論 來作高階應用;Ignis 組件則提供減少雜訊及處理誤差的工具。
在我們的實驗中將使用 Terra 來建構量子電路,並利用 Aqua 中的 VQE 演算 法求量子自旋鏈的基態。另外我們使用 Aer 底下的模擬器 QASM Simulator 來模 擬量子電腦的運作及量測方式,結果可與代數運算的模擬器 Statevector Simulator 比較。 量子閘(quantum gates)作用於其上,便構成一量子電路。量子閘即為么正算符
(unitary operator),可作用於一個或多個量子位元上。表格 1.1(Table 1.1)列出 一些常用基礎量子閘之符號及其對應的矩陣,包含單量子位元閘及雙量子位元閘;
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
為涵蓋三個相位參數的 U3(θ, ϕ, λ) 閘:
U3(θ, ϕ, λ) =
cos(θ2) −eiλsin(θ2) eiϕsin(θ2) eiλ+iϕcos(θ2)
.
藉調整 θ, ϕ, λ 三參數,U3 閘可實現所有的單量子位元閘。例如,
X = U3(π, 0, π) , Y = U3(π, π/2, π/2) ,
Z = U3(0, 0, π) , H = U3(π/2, 0, π) .
上述單量子位元閘在 Qiskit 下均可直接運用,以 U3(π/2, π/2, π/2) 閘為例:
1 q = QuantumRegister(1) 2 qc = QuantumCircuit(q) 3 qc.u3(pi/2 ,pi/2 ,pi/2 ,q)
程式碼中的 q 為一量子位元 |0⟩ = (10
),建構中的量子電路 qc 先將此量子位元
置入電路中,然後以 qc.u3(pi/2,pi/2,pi/2,q) 指令將 U3(π/2, π/2, π/2) 作用 於 q 上。
雙量子位元閘中我們主要應用到所謂的 CNOT 閘(controlled-NOT gate),以 CX 表示,其作用就是在第一個位元(控制位元)為 |1⟩ 的唯一情形下翻轉第二個 量子位元(目標位元),也就是
|00⟩ −−→
CX |00⟩ ,
|01⟩ −−→
CX |01⟩ ,
|10⟩ −−→
CX
|11⟩ ,
|11⟩ −−→
CX
|10⟩ .
(1.3)
另一種解釋 CNOT 閘的方法為在第一個量子位元為 |1⟩ 時作用 X 閘於第二量子
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
位元,故又稱為:受控-X 閘(controlled-X), 且 CNOT 閘矩陣右下角的 2× 2 矩 陣元素即為 X 閘矩陣(見表 1.1)。同樣地,也定義了受控-Y 閘(controlled-Y,
CY)及受控-Z 閘(controlled-Z,CZ)。CNOT 閘是目前 IBM 量子電腦中唯一 可直接運作的雙量子位元閘;理論上,任意 N 量子位元閘可藉由 CNOT 閘及 U3 閘來實現 [5]。例如,CZ 閘可利用一 CNOT 閘及兩個作用在第二量子位元的 H-閘(也就是 U3(π/2, 0, π))透過關係式
H(target)CXH(target) = CZ, (1.4)
來實現,式中 H(target) 代表作用於目標位元的哈達馬閘。
關於多量子位元狀態,CNOT 閘常用以連結兩個量子位元,使其成為糾纏態
(entangled state),底下為利用 CNOT 閘產生一對糾纏態的 Qiskit 的程式碼範 例:
1 q = QuantumRegister(2) 2 qc = QuantumCircuit(q)
3 qc.h(q[0]) # Apply H gate to the first qubit 4 qc.cx(q[0] ,q[1]) # Apply CNOT gate
對應的電路圖如下:
|0⟩ H
|0⟩
起初電路引入兩個處於 |0⟩ 的量子位元,將 H 閘作用於第一個位元使其狀態轉換 成|+⟩(見式 (1.2)),兩位元狀態成為:
√1
2(|0⟩ + |1⟩) ⊗ |0⟩ = 1
√2(|00⟩ + |10⟩) ,
再經由 CNOT 閘作用於兩個位元後,根據式 (1.3) 的法則,兩位元狀態成為一所 謂的 Bell 態:
√1
2(|00⟩ + |11⟩) . (1.5)
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
此狀態無法如 (1.2) 拆解成兩位元狀態的張量積態(tensor product state),故為 一糾纏態。另一個 Bell 態為兩量子位元單態 (two-qubit singlet state),
√1
2(|01⟩ − |10⟩) , (1.6) 其在電路中可如下建構:
|0⟩ X H
|0⟩ X
1 2 3
電路中兩個量子位元的起始態為張量積態 |00⟩,各自受 X 閘的作用翻轉為 |11⟩
(虛線 1 處的狀態),接著第一個位元經過哈達馬閘作用,轉成庖立 X 的基向量
(式 (1.3)),故虛線 2 處的兩位元態為
√1
2(|0⟩ − |1⟩) ⊗ |1⟩ = 1
√2(|01⟩ − |11⟩)
再經過 CNOT 閘便得到具糾纏性的單態(虛線 3 處的狀態)。
量子電路的最後一部份就是對量子位元投射到 |0⟩ 及 |1⟩ 進行量測,並將量測 結果儲存至古典位元。以單量子位元為例,假設其量子態為|ψ⟩ = α |0⟩ + β |1⟩,
此量子位元被測量到處於|0⟩ 或 |1⟩ 的機率為分別為 |α|2 及|β|2。經由多次重複整 個量子電路的流程,最終便得到實驗結果。上述流程以測量|+⟩ 為例的 Qiskit 程 式碼如下:
1 q = QuantumRegister(1) 2 c = ClassicalRegister(1) 3 qc = QuantumCircuit(q,c) 4 qc.h(q)
5 qc.measure(q,c)
6 backend = Aer.get_backend(’ qasm_simulator ’) 7 job=execute(qc, backend, shots=2048)
8 result = job.result()
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
9 hist = result.get_counts() 10 print(hist)
對應的電路圖如下:
0/1
|0⟩ H c
程式碼第 2 行 c = ClassicalRegister(1) 引入一古典位元至電路中,用以儲 存測量結果。第 6 行 qasm_simulator 指定後端處理為 Aer 的模擬器 QASM Simulator,模擬將在近端使用的電腦上進行。QASM Simulator 為一(可引入雜 訊)的量子電路模擬器,模仿量子電腦的環境,用以執行建構好的量子電路,
並傳回測量值的次數。第 7 行藉由 shots 設定測量次數為 2048 次,測量結果 可顯示 |0⟩ 及 |1⟩ 分別出現的次數。針對考慮的量子態,機率當然各為 1/2,不 過有限次數的實驗結果,最後一行列出的結果將例如呈現:{’0’: 1012, ’1’:
1036},代表此次實驗測量獲得|0⟩ 次數為 1012 次,|1⟩ 次數為 1036 次,約 0.502 對 0.498 的機率比。
對於多量子位元狀態,我們使用 QASM Simulator 時需要同樣多的古典位元作 測量。以雙量子位元單態 (1.6) 為例,我們建構以下的電路圖作測量:
|0⟩ X H
|0⟩ X c0 c1
多次模擬結果將例如顯示:{’01’: 1034, ’10’: 1014}。
‧
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
Chapter 2 問題及方法
量子易辛(Ising)自旋鏈為探討量子相變及其他許多量子多體性質之標準模 型。隨著可使用的量子位元的擴充,量子電腦有望漸成為探測量子多體物理之多 樣現象的可靠工具。本章節將首先介紹量子易辛自旋鏈,接著介紹本論文利用 Qiskit 探討自旋鏈基態性質之方法。
2.1 量子易辛(Ising)自旋鏈
本 論 文 探 討 的 模 型 為 在 外 加 橫 向 及 縱 向 磁 場 下 的 易 辛 自 旋 鏈, 其 哈 密 頓 (Hamiltonian) 算符如下:
H = Jˆ
∑N j=1
ˆ
σjzσˆzj+1− hz
∑N j=1
ˆ σzj − hx
∑N j=1
ˆ
σjx (2.1)
J 為相鄰自旋與自旋間的鍵結強度,J < 0 及 J > 0 分別代表鐵磁鍵結與反鐵磁 鍵結。hx 為垂直自旋 z 軸(易辛軸)的橫場;而 hz 則是平行自旋 z 軸的縱場。
ˆ
σx、ˆσz 為 x、z 方向的庖立矩陣(Pauli matrices)。下標 j 代表模型晶格點位置,
我們引入週期邊界條件 ( periodic boundary condition ):ˆσN +1= ˆσ1。
我們考慮絕對零度(T = 0)基態性質。鐵磁鏈(J < 0)在無縱場(hz = 0)
情形下,存在一臨界點(critical point)劃分弱橫場的有序鐵磁態及強橫場的無序 順磁態;此臨界點位於 hx/|J| = 1 處。因 hz = 0,可以 √12(|000 · · · ⟩ + |111 · · · ⟩) 描述弱橫場下完美的自發性量子鐵磁態。橫場為一量子擾動項,在橫場強度逐漸
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
(a) 鐵磁鏈相圖 (b) 反鐵磁鏈相圖
Figure 2.1: 在絕對零度下鐵磁鏈及反鐵磁鏈基態之相圖。
增強至臨界值,基態的有序鐵磁性因自旋的翻轉逐漸消失,自旋鏈基態在強橫場 作用上趨向 |+ + + · · · ⟩ 狀態。在縱場的作用下(hz ̸= 0),鐵磁鏈的臨界點隨即 消失,系統處於順磁態。鐵磁鏈的相圖如圖 2.1a 所示。
反鐵磁鏈的基態相圖更為豐富些,如圖 2.1b 所示。在無縱場情形下(hz = 0),
反鐵磁鏈與鐵磁鏈的基態性質是一樣的:位於 hx/|J| = 1 的臨界點區分弱橫場的 有序反鐵磁態與強橫場的無序順磁態。但在縱場的作用下,反鐵磁態及臨界點仍 可倖存。直至縱場強度大於 hz/J = 2,此時在無橫場的額外干擾下,反鐵磁性亦 完全消失,因為縱場強度足以將所有自旋翻轉至縱場方向。(hx/J = 0, hz/J = 2) 為一古典相變點(因無造成量子擾動的橫場,故稱為古典相變點),劃分零橫場下 的古典反鐵磁態及古典鐵磁態。在 hx-hz 平面相圖區分反鐵磁態及順磁態的臨界 線連結 (hx/J = 1, hz/J = 0) 及 (hx/J = 0, hz/J = 2)。