多量子位元的作業

本文將回顧用來在單一量子位元狀態下建立多量子位元狀態的規則,並探討在閘道集中需要包含的閘道作業,以形成通用的多量子位元量子電腦。 這些工具是瞭解常用於程式代碼的 Q# 網關集合的必要工具。 它們也請務必瞭解量子效果的原因,例如糾纏或干擾,讓量子運算比傳統運算更強大。

單一量子位元與多量子位元閘道

量子運算的真正能力只會隨著您增加量子位數目而變得明顯。 單一量子位擁有一些反直覺式功能,例如在特定時間處於多個狀態的能力。 不過,如果您在量子計算機中全部都是單一量子位網關,則計算機當然會讓傳統超級計算機計算能力變小。

量子運算能力提升有一部份的原因是量子狀態向量的向量空間維度會隨著量子位元的數目指數成長。 這表示,雖然單一量子位元可以小規模建模,但是模擬 50 個量子位元的量子運算可說是突破現有超級電腦的限制。 增加計算的大小,只有一個額外的量子位會將儲存狀態所需的記憶體 加倍 ,並大約 加倍 計算時間。 這種快速加倍的計算能力,就是為什麼具有相對較少量子位元數目的量子電腦,在部份計算工作上,可能會遠遠超越現今和未來效能最強大的超級電腦。

雙量子位狀態

如果您獲得兩個不同的量子位,其中一個位於 狀態$\psi=\begin{bmatrix}\beta\alpha\end{bmatrix}$\\,另一個處於 狀態$\phi=\begin{bmatrix}\delta\gamma\\\end{bmatrix}$,則對應的雙量子位狀態是由 tensor 產品 (或一個向量產品) 所指定,其定義如下

$$\psi\otimes\phi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}\otimes\begin{bmatrix}\gamma\\\delta\end{bmatrix}=\begin{bmatrix}\alpha\begin{bmatrix}\gamma\\\delta\end{bmatrix}\\\beta\begin{bmatrix}\gamma\\\delta\end{bmatrix}\end{bmatrix}=\begin{bmatrix}\alpha\gamma\\\alpha\delta\\\beta\gamma\\\beta\delta\end{bmatrix}. $$

因此,假設兩個單一量子位元狀態 $\psi$ 和 $\phi$,都是 2D,對應的雙量子位元狀態 $\psi\otimes\phi$ 為 4D。 向量

$$\begin{bmatrix}\alpha_{{00}\\\alpha_{{01}\\\alpha_{{10}\\\alpha_{{11}\end{bmatrix}$$

表示兩個量子位上的量子狀態,如果

$$|\alpha_{00}|^2+_{01}|^2+|\alpha|\alpha_{10}|{^2+|\alpha_{{11}|^2=1。$$

更常見的情況是,您可以看見 $n$ 個量子位元的量子狀態表示為使用此建構之維度 $2 \cdot 2 \cdot 2 \cdots= 2^n$ 的單位向量 $v_1 \otimes v_2 \otimes\cdots\otimes v_n$。 如同單一量子位元,多量子位元的量子狀態向量會保存描述系統行為所需的所有資訊。 如需向量和張量積的詳細資訊,請參閱量子運算中的向量和矩陣

兩個量子位狀態的計算基礎是由一個量子位基礎狀態的 tensor 乘積所組成。 例如,您有

\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0 \end{bmatrix}\\ 0\\ ,\qquad 01 \equiv\begin{bmatrix}1 \\ 0 0 \\\begin{bmatrix}\end{bmatrix}\otimes1\begin{bmatrix}\\\end{bmatrix}\\=0 0\\\end{bmatrix}, 10 0 ,\\ 10\begin{bmatrix}\equiv 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}\\ 0&\end{bmatrix} amp;=\begin{bmatrix}0 0 \\ 1 0 , 11\begin{bmatrix}\equiv 0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 0 1\begin{bmatrix}=\end{bmatrix} 0 \\ 0 \\\\ 0\\ 1 。\end{bmatrix}\qquad\end{bmatrix}\\\\ \end{align}

請注意,雖然您一律可以採用兩個單一量子位狀態的 tensor 乘積來形成兩個量子位狀態,但並非所有雙量子位量子狀態都可以寫入為兩個單一量子位狀態的 tensor 乘積。 例如,沒有狀態$\psi=\begin{bmatrix}\alpha\end{bmatrix}$\\\beta,\gamma\end{bmatrix}$$\phi=\begin{bmatrix}\\\delta因此其 Tensor 產品是狀態

$$\psi\otimes\phi=\begin{bmatrix} 1/\sqrt{{2}\\ 0 \\ 0 \\ 1/\sqrt{{2}\end{bmatrix}.$$

此類量子位元狀態無法寫成單一量子位元狀態的張量積,稱為&纏結狀態&;我們將這兩個量子位元稱為纏結。 粗略而言,由於量子狀態無法視為單一量子位元狀態的張量積,所以狀態保留的資訊並不僅限於單一量子位元。 相對地,在兩個狀態的相互關聯中,此資訊會以非本機方式儲存。 這項非資訊位置是量子運算在傳統運算上的主要區別功能之一,對於許多量子通訊協定而言非常重要,包括量子錯誤更正。

測量兩個量子位狀態

測量雙量子位元狀態非常類似單一量子位元測量。 測量狀態

$$\begin{bmatrix}\alpha_{{00}\\\alpha_{{01}\\\alpha_{{10}\\\alpha_{{11}\end{bmatrix}$$

產生 00,機$|\alpha率為 _{{00}|^2$、$01$ 機率$|\alpha為 _{01}|^2$、$機率$|\alpha為 _^2 的 10$,以及$機率$|\alpha為 _{10}|{{11}|^2$$ 的 11。$$$ 特意命名變數 $\alpha_{00}、\alpha_{{01}、\alpha_{{10}、$ 和 $\alpha_{11}$,使得此連線清晰。 測量之後,如果結果為 $00$,則雙量子位系統的量子狀態已折疊且現在已折疊

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}。 $$

您也可以只測量兩個量子位量子狀態的一個量子位。 當您只測量兩個量子位狀態的一個量子位時,測量的影響與測量兩個量子位的影響稍微不同。 這是因為整個狀態不會折疊成計算基礎狀態,而是只折疊成一個子系統。 換句話說,測量兩個量子位狀態的一個量子位,只會將相關的子系統折疊為計算基礎狀態。

若要查看這一點,請考慮測量下列狀態的第一個量子位,這是藉由將 Hadamard 轉換 $H$ 套用到最初設定為 &商數的兩個量子位所形成;0&引號; 狀態:

$$H^{\otimes 2}\left ( \begin{bmatrix}1 \\ 0 1 \\ 0\begin{bmatrix}\right\end{bmatrix}\end{bmatrix}\otimes=\frac{{1}{2}\begin{bmatrix}) 1 & 1&&&\\ amp; 1 amp; -1 amp; -1 &&1 amp; - &\\\\&&&1 1 amp; -1 amp; -1 amp; -1 amp; -1 amp; -\\\\\end{bmatrix}\begin{bmatrix}&\\&1 amp; -1 amp; -1 amp; -1 amp; 1 amp; 1 1 0 0={1}{2}\begin{bmatrix}\end{bmatrix}\frac{0 1 1 1 1 1 1\\\begin{cases}\text{\mapsto\\\end{bmatrix}\\ 結果 }=0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1 1 0 0\text{\\\end{bmatrix}\\個結果 }=1 &{2}}\begin{bmatrix}{1}{\sqrt{\frac{\\\\0 0\\ 1 1\\\end{bmatrix}\\\end{cases}。\\ $$ 這兩個結果都有 50% 的機率。 這可以從第一個量子位上的 0 交換 $1$$ 時,測量前的量子狀態不會變更$。

測量第一個或第二個量子位元的數學規則很簡單。 讓我們e_k為 k^{\rm 第一}$個計算基礎向量,而 $S$ 是所有$e_k$的集合,讓有問題的量子位採用 k$ 值 $$1。$$$$ 例如,如果您有興趣測量第一個量子位,S $$ 會由 e_1\equiv 10$ 和 $e_3\equiv 11$ 組成$。 同樣地,如果您對第二個量子位 $S$ 感興趣,則由 e_2\equiv 01$ 和 $e_3 \equiv 11$ 所組成$。 然後,測量所選量子位為 $1$ 的機率是針對狀態向量 $\psi$

$$ P(\text{outcome}=1)=\sum_{e_k \text{ in the set } S}\psi^\dagger e_k e_k^\dagger\psi。 $$

注意

本文使用 小到尾 格式來標記計算基礎。 在 little endian 格式中,重要性最低的位元排在最前面。 例如,little-endian 格式的第四個會以位元 001 的字串表示。

因為每個量子位元測量只能產生 $0$ 或 $1$,因此,測量 $0$ 的機率只有 $1-P(\text{outcome}=1)$。 這就是為什麼您只需要測量 1$ 機率的$公式。

此類測量對狀態的動作可以數學表示為

$$\psi\mapsto\frac{\sum_{e_k \text{ in the set } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{outcome}=1)}}。 $$

謹慎閱讀者可能會擔心分母為零時會發生什麼事。 雖然未定義這類狀態,但您不需要擔心這類最終情況,因為機率是零!

如果您採用 $\psi$ 上述的統一狀態向量,並有興趣測量第一個量子位,則

$$ P(\text{第一個量子位元的測量}=1) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi)=|e_1^\dagger\psi|^2+|e_3^\dagger\psi|^2。 $$

請注意,這隻是預期測量結果 $10$ 和 11$ 的兩個機率總和$。 在我們的範例中,此評估為

$$\frac{{1}{4}\left|\begin{bmatrix}0&0&1&0\end{bmatrix}\begin{bmatrix}1 1\\ 1\\ 1\\\end{bmatrix}\right|^2+\frac{1}{{4}\left|\begin{bmatrix}0&0&0&1 1\end{bmatrix}\begin{bmatrix}1 1 1\\\end{bmatrix}\right|^2{2}{1}{=\frac{。\\\\ $$

這完全符合我們的直覺。 同樣地,第一個量子位之後的狀態會測量為 1$,可以寫入為$

$$\frac{\frac{e_1}{2}+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0\\ 0\\ 1\\ 1\end{bmatrix}$$

這同樣與我們的直覺一致。

雙量子位元作業

如同單一量子位元的案例,任何單一轉換都是量子位元上的有效作業。 一般而言,$n$ 量子位元上的單一變換是大小為 $2^n \times 2^n$ 的矩陣 $U$ (因此,它可以在大小為 $2^n$ 的向量上產生作用),因此 $U^{-1}= U^\dagger$。 例如,CNOT (受控反閘) 閘道是常用的雙量子位元閘道,並以下列的單一矩陣表示:

$$\operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ 0\ 1\ 0\ 0 \\ 0\ 0\ 0\ 1 \\ 0\ 0\ 1\ 0 \end{bmatrix}$$

我們也可以在這兩個量子位元上套用單一量子位元閘道,形成雙量子位元閘道。 例如,如果您套用閘道

$$\begin{bmatrix} a\ b\\ c\ d \end{bmatrix}$$

$$\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}$$

分別套用第一個和第二個量子位,這相當於套用其 tensor 產品所提供的兩個量子位單位: $$\begin{bmatrix} a\ b\\ c\ d \end{bmatrix}\otimes\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}=\begin{bmatrix} ae\ af\ be\ bf \\ ag\ ah\ bg\ bh \\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh 。\end{bmatrix}$$

因此,您可以藉由採用一些已知單一量子位網關的張量乘積來形成雙量子位網關。 雙量子位元閘道的一些範例包括 $H \otimes H$、$X \otimes\mathbf{1}$ 和 $X \otimes Z$。

請注意,雖然任何兩個單一量子位元的閘道都是藉由使用張量積來定義雙量子位元的閘道,但反之並不成立。 並非所有雙量子位元閘道皆可寫成單一量子位元閘道的張量積。 這類閘道稱為 entangling 閘道。 Entangling 閘道的其中一個範例是 CNOT 閘道。

反受控閘道背後的直覺可歸納為任意閘道。 一般而言,受控制的網關是作為身分識別的閘道,除非特定量子位是 $1$。 您會在標示 $x$$\Lambda 的量子位上,以 _x (U) $表示受控制的單位。 例如 $\Lambda_0 (U) e_{1}\otimes{\psi}={ e_{1}\otimes U{\psi}$ 和$\Lambda _0 (U) e_{0}\otimes{{\psi}= e_{0}\otimes{\psi}${,其中 $e_0$ 和 e_1$ 是對應至值 $0$ 和 $$1$ 之單一量子位的計算基礎向量。 例如,請考慮下列受$控制的 Z$閘道,然後您可以將其表示為

$$\Lambda_0 (Z) =\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&-1 \end{bmatrix}= (\mathbf\mathbf{1}\otimes{ H) \operatorname{CNOT} (\mathbf{1}\otimes H) 。 $$

有效率地建置受控單一運算是一項重大挑戰。 實作此作業最簡單的方式是,建構基礎閘道的受控版本資料庫,並以其受控的對應項取代原始單一作業中的每個基本閘道。 通常,這樣很浪費時間,聰明的深入解析通常可用來將幾個閘道取代為受控版本,以達到相同的影響。 基於這個理由,如果已知優化的手部微調版本,架構可讓您執行控制或允許使用者定義單位的受控制版本。

閘道也可以使用傳統資訊來控制。 例如,傳統方式控制的反閘道只是一般的反閘道,但只有在傳統位元是 $1$ 而非量子位元時才適用。 在這種意義上,傳統方式控制的閘道可視為量子程式碼中的 if 陳述式,其中的閘道只會在程式碼的一個分支中套用。

與單一量子位元的情況一樣,如果任何 $4\times 4$ 單一矩陣可以由此集合的閘道乘積近似到任意精確度,則雙量子位元閘道集合是通用的。 通用閘道集合的其中一個範例是 Hadamard 閘道、T 閘道和 CNOT 閘道。 藉由取得這些閘道的產品,您可以在兩個量子位上近似任何一元矩陣。

量子糾纏

考慮兩個量子位 $A$ 和 $B$ 的迭加,讓全域系統的狀態為

$$\ket{\psi}_{AB}=\frac1{\sqrt2}\ket{{00} + \frac1{\sqrt2}\ket{{11}$$

在這種狀態下,當您以標準基礎測量這兩個量子位元的狀態時,只可能會有兩種結果:$|00\rangle$ 和 $|11\rangle$。 請注意,每個結果的機率 $\frac{1}{2}$都相同。 取得 $|01\rangle$ 和 $|10\rangle$ 的機率為零。 如果您測量第一個量子位,而且您取得其處於 $|0\rangle$ 狀態,則即使沒有測量,第二個量子位也是處於 $|0\rangle$ 狀態的正數。 測量結果是相互關聯的,且量子位元會互相「糾纏」。

注意

此範例使用兩個量子位,但量子糾纏不限於兩個量子位。 一般而言,多量子位系統可能會共享糾纏。

糾纏的量子位相互關聯,因此無法彼此獨立描述。 也就是說,在糾纏配對中某個量子位的狀態發生任何作業,也會影響另一個量子位的狀態。

如需實際的實作,請參閱 探索搭配 Q# 和 Azure Quantum 的量子糾纏的教學課程。

純狀態的糾纏

純量子狀態會依單一 ket 向量或 wavefunction 特性分類,而且無法以其他量子狀態的統計混合 (或凸合併) 形式撰寫。 在 Bloch 球體上,純狀態是以球體表面的點表示,而混合狀態則以內部點表示。

如果無法將其寫入為子系統產品狀態的組合,即 $\ket{\phi}_AB a_A b}_B\otimes\ket{$,則純狀態 $\ket{\phi}_{{AB}\ket{}$}= 會糾纏。

例如,請考慮狀態 $$\ket{\psi}_{AB{1}{2}\frac{=} (\ket{{00} + + \ket{{10} +) \ket{01}\ket{{11}$$

一開始,狀態 $\ket{\psi}_{AB}$ 看起來不像產品狀態,但如果我們將狀態重寫為

$$\ket{\psi}_{AB}{2}}{1}{\sqrt{\frac{= (\ket{0}_A +_A) \ket{\frac{1}{\sqrt{\otimes{0}{2}} (\ket{{1} _B +{1}\ket{_B) \ket{= +_A +_B \ket{}}$$

狀態 $\ket{\psi}_{AB}$ 是產品狀態,因此不會糾纏。

混合狀態中的糾纏

混合量子狀態是純狀態的統計集合。 如果混合狀態 $\host$ 無法撰寫為產品狀態 $\擷取 \擷=取^A}\otimes \{擷{取^B}$,適用於某些密度矩陣$\擷取^\geq{{$}A}\geq 0 ,則不會有量子或傳統相互關聯。

如果可寫入為子系統產品狀態的凸凸組合,混合狀態 $\r$ 可分隔,例如

$$\_j p_j =\sum\_j p_j \_j p_j{ ^A}_{j\otimes} \rho^{B}_{j}$$

其中 $p_j 0、 \sum p_j = 1$ 和 $\p_j^A}_{j\geq} 0、\p_j{^{B}_{j}\geq 0$。\geq

如果混合狀態 $\trop$ 無法分隔,即無法寫入為產品狀態的凸合組合,就會糾纏。

提示

可分隔狀態只包含傳統相互關聯。

瞭解傳統相互關聯

傳統相互關聯是因為我們缺乏系統狀態的知識。 也就是說,有一些與傳統相互關聯相關聯的隨機性,但可以藉由取得知識來消除。

例如,請考慮兩個方塊,每個方塊都包含一個球。 我們知道這兩個球都是相同的色彩,可以是藍色或紅色。 如果我們開啟一個方塊,並發現內部的球是藍色,則我們知道另一個球也是藍色。 因此,它們相互關聯。 不過,開啟方塊時所擁有的不確定性是因為缺乏知識,這不是基本概念。 在開啟方塊之前,球是藍色的。 因此,這是傳統相互關聯,而不是量子相互關聯。

由兩個方 $塊 \rho_{box}$ 所形成之系統的混合量子狀態可以寫入為

$$\rho_boxes{1}{2}=}\frac{ ({\ket{ red_{A}\otimes}\ket{}\bra{ red}\bra{}_B) +\frac{{1}{2} (\ket{藍色}\bra{}_A藍色_A\otimes\ket{藍色_B) }\bra{}$$

請注意,狀態 $\rho_{box 是}$ 可分隔的,其中 $p_1 p_2 ==\frac{1}{2}$ 只包含傳統相互關聯。 混合可分隔狀態的另一個範例是

$$\ (=\ket{0}\bra{\frac{{1}{2}{0}_A _B) \otimes\ket{0}\bra{0}+\frac{1}{2} (\ket{1}\bra{1}_A _B) \otimes\ket{{1}\bra{{1}$$

現在,請考慮下列狀態:

$$\ (=\ket{{1}{4}{00}\bra{00}\frac{+ + \ket{\ket{11}\bra{00}{11}\bra{\ket{{11}{00}\bra{11}) =\ket{\phi^+}\bra{\phi^+}$$

在此情況下,我們對狀態的瞭解是完美的,我們知道系統 $AB$ 處於 Bell 狀態 $\ket{\phi^+}$$且 \royal$ 是純狀態。 因此,沒有傳統相互關聯。 但是,如果我們測量子系統 $A$ 上的可觀察值,我們會取得隨機結果,以提供子系統 $B$ 狀態的相關信息。 此隨機性是基本概念,也就是這些是量子相互關聯。

包含傳統和量子相互關聯之量子狀態的範例為

$$\ (=\frac{{1}{2}\ket{\phi^+}\bra{\phi^+} + \ket{\phi^-}\bra{\phi^-) }$$

提示

  • 如果糾纏狀態 $為純$ 量,則它只包含量子相互關聯。
  • 如果糾纏狀態 $是混合的,$ 則它同時包含傳統和量子相互關聯。

多量子位元系統

我們遵循兩個量子位案例中所述的相同模式,從較小的系統建立多量子位元量子狀態。 此類狀態的建立方式是形成較小狀態的張量積。 例如,考慮在量子電腦中編碼位元字串 $1011001$。 您可以將此編碼為

$$ 1011001 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}。 $$

量子閘道的運作方式完全相同。 例如,如果您想要將 $X$ 閘道套用至第一個量子位,然後在第二個和第三個量子位之間執行 CNOT,您可能會將此轉換表示為

\begin{\begin{align}& (X \otimesCNOT}_{12}\otimes\mathbf{1}\otimes{ \mathbf \mathbf{\mathbf{1}\otimes \mathbf{{\otimes\mathbf{1}\mathbf{1}) \begin{bmatrix} 0 1 1\begin{bmatrix}\end{bmatrix}\otimes\\ 0 \\\begin{bmatrix}\end{bmatrix}\otimes\\\end{bmatrix}\otimes\begin{bmatrix}\\\end{bmatrix}\begin{bmatrix}\end{bmatrix}\otimes\\\begin{bmatrix}\\\otimes0 1 0 1 0 1 0 0\begin{bmatrix}\end{bmatrix}\otimes1 \\\end{bmatrix}\\&\qquad\qquad\equiv\operatorname{0011001. \end{align}

在許多量子位元系統中,通常需要配置和解除配置做為量子電腦暫存記憶體的量子位元。 這類量子位元稱為「輔助」。 根據預設,您可以假設量子位狀態會在配置時初始化為 $e_0$ 。 您可以進一步假設它會在解除分配之前再次 $傳回e_0$ 。 此假設很重要,因為如果輔助量子位元在解除配置時與另一個量子位元暫存器纏結,則解除配置的程序將會損毀輔助的量子位元。 基於這個理由,您一律假設這類量子位會在發行前還原為其初始狀態。

最後,雖然需要將新的閘道新增至閘道,以實現兩個量子位元量子電腦的通用量子運算,但是在多量子位元的情況下,不需要引進任何新閘道。 閘道 $H$、$T$ 和 CNOT 構成多個量子位元的通用閘道集合,因為任何通用單一轉換可分成一系列雙量子位元旋轉。 然後,您可以利用針對兩個量子位案例開發的理論,並在您有許多量子位時再次使用它。

注意

雖然到目前為止已使用的線性代數表示法當然可以用來描述多量子位狀態,但隨著您增加狀態的大小,它變得越來越麻煩。 例如,長度為 7 位元之字串的資料行向量為 $128$ 維度,這導致使用先前所述之標記法來表示該向量變得非常棘手。 相反地, 使用 Dirac 表示法來簡化量子狀態表示法的符號縮寫。 如需詳細資訊,請參閱 Dirac 表示法

下一步