量子運算中的量子位元

如同位元是傳統運算中資訊的基礎物件,量子位元是量子運算中資訊的基礎物件。 為了瞭解這項對應,本文將探討最簡單的範例:單一量子位元。

代表量子位元

雖然位元 (或二進位位數) 可包含 $0$ 或 $1$ 的值,但量子位元可包含 $0$、$1$ 或 $0$ 與 $1$ 的量子疊加值。

單一量子位元的狀態可由單元度量的二維資料行向量描述,也就是其項目的大小平方必須加總為 $1$。 這個稱為量子狀態向量的向量會保存描述單一量子位元量子系統所需的所有資訊,就像量子位元會保留描述二進位變數狀態所需的所有資訊一樣。 如需量子運算中向量和矩陣的基本概念,請參閱量子運算和向量和矩陣的線性代數

具有標準 $1$ 實數或複數的任何二維資料行向量,都代表量子位元所持有的可能量子狀態。 因此 $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ 表示量子位元狀態 (如果 $\alpha$ 和 $\beta$ 是滿足 $|\alpha|^2 + |\beta|^2 =1$ 的複數)。 代表量子位元有效量子狀態向量的一些範例包括

$$\begin{bmatrix} 1 \\ 0 \end{bmatrix}、\begin{bmatrix} 0 \\ 1 \end{bmatrix}、\begin{bmatrix}\frac{{1}{\sqrt{2}}\\\frac{{1}{\sqrt{2}}\end{bmatrix}, \begin{bmatrix}\frac{1}{\sqrt{{2}}\\\frac{{-1}{\sqrt{2}}\end{bmatrix}, \text{ 和 }\begin{bmatrix}\frac{1}{\sqrt{{2}}\\\frac{i}{\sqrt{2}}\end{bmatrix}。$$

量子狀態向量 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ 和 $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$ 作為特殊角色。 這兩個向量會形成描述量子位元狀態的向量空間基礎。 這表示任何量子狀態向量都可以撰寫為這些基礎向量的總和。 具體而言,向量 $\begin{bmatrix} x \\ y \end{bmatrix}$ 可以撰寫為 $ x \begin{bmatrix} 1 \\ 0 \end{bmatrix} + y \begin{bmatrix} 0 \\ 1 \end{bmatrix}$。 雖然這些向量的任何旋轉都可做為完全有效的量子位元基礎,但是根據計算基礎選擇了這種方法。

這兩個量子狀態會對應至傳統位元的兩個狀態,亦即 $0$ 和 $1$。 標準慣例是選擇

$$0\equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}、\qquad 1 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}、$$

雖然相反的選擇也可以被採用。 因此,不限數目的可能單一量子位元量子狀態向量,只有兩個對應至傳統位元的狀態;其他所有的量子狀態則否。

測量量子位元

現在說明如何代表量子位元,您可以藉由討論測量的概念,來取得這些狀態所代表的部分直覺感受。 測量結果對應於在量子位元上「查看」的非正式構想,這會立即將量子狀態摺疊為兩個傳統狀態 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ 或 $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$ 的其中一個。 測量量子狀態向量 $\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ 所指定的量子位元時,會取得 $|\alpha|^2$ 的結果 $0$ 和機率 $|\beta|^2$ 的結果 $1$。 在結果 $0$ 上,量子位元的新狀態為 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$;在結果 $1$ 上,其狀態為 $\begin{bmatrix} 0 \\ 1 \end{bmatrix}$。 請注意,由於正規化條件 $|\alpha|^2 + |\beta|^2 = 1$,這些機率會加總為 $1$。

度量的屬性也表示量子狀態向量的整體正負號並不相關。 否定向量相當於 $\alpha\right 箭號 -\alpha$ 和 $\beta\right 箭號 -\beta$。 因為測量 $0$ 和 $1$ 的機率取決於詞彙的範圍平方,所以插入這類正負號並不會改變機率。 這類階段通常稱為"全域階段"和更一般的形式,通常可以是 $e^{i \phi}$ 格式,而不只是 $\pm 1$。

測量的最後一個重要屬性,是測量不一定會損毀所有的量子狀態向量。 如果一開始是狀態 $\begin{bmatrix} 1 \\ 0 \end{bmatrix}$ 的量子位元 (對應至傳統狀態 $0$),則測量此狀態一律會產生結果 $0$,並讓量子狀態維持不變。 在這種情況下,如果只有傳統的位元 (例如為 $\begin{bmatrix}1 \\ 0 \end{bmatrix}$ 或 $\begin{bmatrix}0 \\ 1 \end{bmatrix}$ 的位元),則測量不會損毀系統。 這表示,您可以在量子電腦上複寫傳統資料並加以操作,就像在傳統電腦上一樣。 不過,若要一次將資訊儲存在這兩個狀態中,就能將量子運算提升至可能的傳統方式,並進一步奪取量子電腦不限複製量子資料的能力,另請參閱無複製定理

使用布洛赫球體視覺化量子位元和轉換

量子位元也可以使用布洛赫球體標記法,以 $3$D 表示。 布洛赫球體提供一種方式,來將單一量子位元的量子狀態 (這是一種二維的複雜向量) 作為三維實值向量描述。 這點很重要,因為它可讓我們將單一量子位狀態視覺化,並藉此開發有助於瞭解多重量子位元狀態的原因 (可惜布洛赫球體標記法會在此分解)。 布洛赫球體可視覺化如下:

布洛赫球面

此圖表中的箭號會顯示配量狀態向量的方向,而每個箭號的轉換都可視為圍繞其中一個基線軸的旋轉。 雖然將量子計算視為一連串的旋轉是一種強大的直覺,但使用此直覺來設計和描述演算法十分困難。 Q# 藉由提供描述這類旋轉的語言來緩和此問題。

單量子位元運算

量子電腦藉由套用一組通用的量子閘道來處理資料,以模擬量子狀態向量的任何旋轉。 這種普遍性概念類似傳統 (例如經典版) 的普遍性概念,如果輸入位元的每個轉換都可以使用有限的長度電路來執行,則會將閘道集合視為通用的傳統運算。 在量子運算中,我們允許在量子位元上執行的有效轉換是單一轉換和測量。 Adjoint 作業或複雜的共軛轉型對於量子運算而言相當重要,因為這是將量子轉換進行反轉的必要動作。

單一量子位作業或單一量子位量子網關可以分類為兩個類別:一個網關和非 一個量子位網關。 非 一般閘道只 $包含 T$ 閘道 (也稱為 $\pi/8$ 閘道) 。

$$T=\begin{bmatrix} 1 amp; 0 0 &\\ amp; e^{i\pi/4\end{bmatrix}}.& $$

一組標準的單一量子位元 Clifford 閘道,預設包含在 Q# 中,包括

$$H=\frac{{1}{\sqrt{{2}}\begin{bmatrix} 1 & 1 1 \\&-1 , \qquad S =\begin{bmatrix} 1 &\end{bmatrix} amp; 0 0 &\\ amp; i \end{bmatrix}= T^2, \qquad X=\begin{bmatrix} 0 &1 1 \\& 0 \end{bmatrix}= HT^4H,$$

$$Y =0 amp; -i &\\ amp; 0 \end{bmatrix}=T^2HT^4 HT^6, \qquad Z=\begin{bmatrix}1&&\begin{bmatrix}0 0\\& amp;-1 \end{bmatrix}=T^4。 $$

在這裡,會特別使用 $X$、$Y$ 和 $Z$ 等作業,並在其建立者 Wolfgang Pauli 之後將其命名為 Pauli 操作員。 除了非 Clifford 閘道 ($T$ 閘道) 之外,這些作業也可以撰寫成近似單一量子位上的任何單一轉換。

雖然前一個是在堆疊的邏輯層級上描述作業的最受歡迎基本閘道 (將邏輯層級視為量子演算法) 的層級,但在演算法層級考慮較少基本作業 (例如更接近函式描述層級的作業) 通常較方便。 幸運的是,Q# 也有方法可執行較高層級的單一,進而讓高階演算法得以執行,而不需明確地將一切分解到 Clifford 和 $T$ 閘道。

最簡單的這類基本功能是單一量子位元旋轉。 通常會考慮三個單一量子位元的旋轉:$R_x$、$R_y$ 和 $R_z$。 例如,若要將旋轉 $R_x(\theta)$ 的動作視覺化,請想像一下布洛赫球體 $x$ 軸方向的右手邊,並以 $\theta/2$ 弧度的角度旋轉向量。 這種混淆因數 $2$ 的原因是,在繪製於布洛赫球體的情況下,正向向量相隔 $180^\circ$,但實際幾何上是相隔 $90^\circ$。 對應的單一矩陣如下:

\begin{align*}&R_z (\theta) = e^{-i\theta Z/2}=\begin{bmatrix} e^{-i\theta/2&}amp; 0 0\\& amp; e^{i\theta/2\end{bmatrix}}, \\&R_x (\theta) e^{-i\theta X/2=} HR_z (\theta) H\begin{bmatrix}=\cos (\theta/2 &) amp; -i\sin (\theta/2 \\) -i\sin (\theta/2) amp; \cos (\theta/2) \end{bmatrix}&, \\&=R_y (\theta) e^{-i\theta Y/2=} SHR_z (\theta) HS^\begin{bmatrix}\dagger= \cos (\theta/2) & -\sin (\theta/2 \\) \sin (\theta/2) amp; \cos (\theta/2) &\end{bmatrix}。= \end{align*}

就像任何三個旋轉可以結合在一起以執行三個維度的任意旋轉,也可以從布洛赫球體標記法看出,任何單一矩陣也可以撰寫成三個旋轉的序列。 具體來說,每個單一矩陣 $U$ 都有 $\alpha、\beta、\gamma、\delta$,因此 $U= e^{i\alpha} R_x(\beta)R_z(\gamma)R_x(\delta)$。 因此 $R_z(\theta)$ 和 $H$ 也會形成通用閘道集,但這並不是離散的閘道集,因為 $\theta$ 可以採用任何值。 基於此原因,以及由於量子模擬中的應用程式,這類連續閘道對於量子計算很重要,尤其是在量子演算法設計層級。 為了達成容錯硬體的執行,最終會將其編譯成與這些旋轉相近的離散閘道序列。

下一步