---
# System prepended metadata

title: 04 絕熱量子計算
tags: [量子演算法（下下）]

---

# 絕熱量子計算

當你成功將問題轉換成 [QUBO](https://www.entangletech.tw/lesson/optim-03) 或 [Ising model](https://www.entangletech.tw/lesson/optim-01) 後，我們就能將問題丟給 D-Wave 的 quantum annealer（量子退火）求解，在了解 quantum annealer 如何運作前，我們先介紹絕熱量子計算。

## Adiabatic quantum computing 
如同我們在演算法總覽提到的，量子計算架構可以分成 gate-based 與 adiabatic，兩者在數學上是等價，這兩者的關係就有點類似現代電腦的數位與類比，gate-based 將一個計算過程離散化，變成一個一個 gate，就像是數位系統裡一個一個邏輯閘；而 adiabatic 不同，他將計算過程看成一個連續的變化，類似類比系統裡將波做連續性變化，接下來的解釋你會更清楚這段講的意思。

在量子力學中，描述系統如何運動的方程式是：

\begin{align}
H|\psi(t)\rangle=E|\psi\rangle
\end{align}

上式就是知名的 Schrödinger equation，其中 $|\psi\rangle$ 是 qubits 的量子態，$H$ 是一種 Hermitian 矩陣，$E$ 是我們最後能測量到的值，即期望值。在 gate-based 量子計算中，我們可以將 $H$ 分解成一個一個 quantum gate，像是 X, Y, Z, CNOT,...gate，組成你熟知的量子電路（這我們在 QAOA 章節能看到怎麼做分解）。

在 adiabatic 中，我們將 $H$ 就當作一種能量，通常是透過磁場控制，從某個能量值“緩慢”調整到另一個能量值，當能量的變化足夠緩慢，在每個能量值當下量子態理應都處在最低值，即基態，也就是我們欲求解問題的最佳解（最小值），如果今天能量變化太快，量子態就會跑到激發態，而激發態這解不會是我們欲解問題的最佳解，這種能量「緩慢」變化的過程就稱作 adiabatic。

當 Ising model（或 QUBO）最佳解對應的能量值為 $H_1$．那現在我們的初始能量值為 $H_0$，我們得把能量（或說磁場）緩慢地從 $H_0$ 變到 $H_1$，即：

\begin{align}
H(t)=A(t)H_0+B(t)H_1
\end{align}

$A(t)$ 與 $B(t)$ 是一個隨時間 $t$ 變化的常數，在一開始 $t=0$，$A(t=0)=1$，$B(t=0)=0$，在計算完成時 $t=T$，$A(T)=0$，$B(T)=1$。因此，可以簡單地得知，$H(0)=H_0$，$H(T)=H_1$。

<div style="text-align: center;margin-top: 20px;">
    <img src="https://hackmd.io/_uploads/SynCVGDOeg.svg" alt="adiabatic" width="100%"/>
    <br>絕熱量子計算示意圖。系統最一開始位於圖中的 H0，當下對應的量子態就是 H0 旁變得四個箭頭，我們的目標是是緩慢地讓系統演化，讓系統始終在當下最低能量做演化，即圖中的藍線，一直到最右邊的 H1，如果演化速度太快，那系統有可能因為獲得額外能量而從基態跳到其他的激發態，也就是其他黑線上，那黑線對應的量子態就不會是我們要的解
    <p>
    </p>
</div>

