共用方式為


量子運算中的 Dirac 表示法

Dirac 表示法 是描述量子狀態和作業的簡潔且強大的方式。 它以物理學家保羅·迪拉克的名字命名,保羅·迪拉克在20世紀30年代發展了這個表示法。 Dirac 表示法用於量子運算,以描述量子狀態、量子作業和量子測量。

本文介紹 Dirac 表示法,並示範如何使用它來描述量子狀態和作業。

Dirac 表示法中的向量

Dirac 表示法中有兩種類型的向量:bra 向量,對應於行向量,而 ket 向量,對應於列向量。

如果 $\psi$ 是數據行向量,則可以在 Dirac 表示法中將其寫入為 $\ket{\psi}$,其中 $\ket{\cdot}$ 表示它是 ket 向量。

同樣地,數據列向量 $\psi^\dagger$ 會以 $\bra{\psi}$表示,這是 大括弧 向量。 換句話說,通過對$\psi$的轉置矩陣的每個元素套用逐項複共軛來獲得$\psi^\dagger$。 夸克符號直接表示 $\braket{\psi|\psi}$ 是向量 $\psi$ 與其自身的內積,根據定義為 $1$。

更普遍地說,如果 $\psi$ 和 $\phi$ 是量子狀態向量,則其內部乘積為 $\braket{\phi|\psi}$。 此內部乘積表示測量狀態$\ket{\psi}$$\ket{\phi}$的機率為 $|\braket{\phi|\psi}|^2$。

計算基礎狀態 $0$ 和 $1$ 分別表示為 $\begin{bmatrix} 1 \ 0 \end{bmatrix}=\ket{{0}$ 和 $\begin{bmatrix} 0 \ 1 \end{bmatrix}=\ket{1}$。

範例:表示具有 Dirac 表示法的 Hadamard 作業

讓我們使用 Dirac 表示法將 Hadamard 閘道 $H$ 套用至量子狀態 $\ket{0}$ 和 $\ket{1}$:

$$ \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix}=H\ket{{0}=\ket{+}$$

$$ \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ -1 \end{bmatrix}=H\ket{{1}=\ket{-}$$

產生的狀態會對應至 Bloch 球體上 $+x$ 和 $-x$ 方向中的單位向量。 這些狀態也可以使用 Dirac 表示法作為 $\ket{0}$ 和 $\ket{1}$ 的總和來擴展。

$$ \ket{+}=\frac{{1}{\sqrt{2}}(\ket{0} + \ket{1}) $$

$$ \ket{-} = \frac{1}{\sqrt{ {2}}(\ket{0} - \ket{1}) $$

計算基礎向量

每個量子狀態一律可以表示為計算基礎向量的總和,而且這類總和很容易使用 Dirac 表示法來表示。 相反的也是事實,即狀態 $\ket{+}$ , $\ket{-}$ 也構成量子狀態的基礎。 您可以從這個事實中看出這個基礎

$$ \ket{0} = \frac{1}{\sqrt{2}}(\ket{+} + \ket{-}) $$

$$ \ket{1} = \frac{1}{\sqrt{2}}(\ket{+} - \ket{-}) $$

以 Dirac 表示法為例,請考慮剎車 $\braket{0 1,這是介於 0 |}$ 到 $1$$ 之間的$內部乘積。 它可以撰寫為

$$ \braket{0 | 1}=\begin{bmatrix} 1 & 0 \end{bmatrix}\begin{bmatrix}0\\ 1\end{bmatrix}=0. $$

這個範例指出$\ket{{0}$ 和$\ket{{1}$是正交向量,意思是$\braket{0 | 1}=\braket{1 | 0}=0$。 此外,根據定義$\braket{0| 0}=\braket{1| 1}=1$,這意味著兩個計算基向量也可以稱為正交規範化

下列範例會使用這些正交屬性。 如果您有狀態 $\ket{\psi}={\frac{3}{5}}\ket{{1} + {\frac{{4}{5}}\ket{0}$ ,那麼因為 $\braket{1 | 0}=0$ ,所以測量 $1$ 的機率是 1。

$$ \big|\braket{1 |\psi}\big|^2=\left|\frac{{3}{5}\braket{1 | 1} +\frac{{4}{5}\braket{1 | 0}\right|^2=\frac{{9}{{25}。 $$

張量積表示法

Dirac 表示法很適合用來表示 張量乘積。 張量乘積在量子計算中非常重要,因為由兩個不相關聯的量子暫存器描述的狀態向量是這兩個狀態向量的張量乘積。

任何兩個量子狀態向量 $\psi 和 \otimes 的張量乘積 \phi$$\phi$$\psi$ 是以 dirac 表示法撰寫為 $\ket{\psi}\otimes\ket{\phi}$。 依照慣例,您也可以將張量乘積寫為 $\ket{\psi}\ket{\phi}=\ket{\psi\phi}$。

例如,兩個量子位被初始化為零狀態的狀態 $\ket{{0}\otimes\ket{0}=\ket{0}\ket{0}=\ket{00}$。

範例:使用 Dirac 表示法描述疊加

另一個如何使用 Dirac 表示法來描述量子狀態的例子是,考慮以下等效的量子狀態表示方法,其中這個量子狀態是對每一個長度為 n 的可能位元字串的均等疊加。

$$H^n{\otimes}\ket{0}=2^\frac{1}{{n/2}}\sum_{j=0}^{2^n-1}\ket{j}=\ket{+}^{\otimesn}. $$

在這裡,您可能會想知道為什麼總和從 $0$ 到 $2^{n}-1$ 的 $n$ 位元。 首先,$2^{n}$ 種不同的組態是 $n$ 位元可以取的。 您可以看到這種配置,方法是注意到一個位元可取 $2$ 種值,但兩個位元可以取 $4$ 種值,以此類推。 一般而言,這表示有 $2^n$ 種不同的可能位元串,但任何其中編碼的最大值是 $1\cdots 1=2^n-1$,因此是其總和的上限。 此外,在此範例中,您沒有使用 $\ket{+}^{\otimes n}=\ket{+}$,類似於 $\ket{{0}^{\otimes n}=\ket{{0}$。 此符號慣例專用於每個量子位都初始化為零的計算基態狀態。

使用 Dirac 表示法來表達線性

Dirac 表示法的另一個特點是它是線性的。 例如,針對兩個複數 $\alpha$ 和 $\beta$,你可以撰寫

$$ \ket{\psi} \otimes ( \alpha\ket{\phi} + \beta\ket{\chi})=\alpha\ket{\psi}\ket{\phi} + \beta\ket{\psi}\ket{\chi}。$$

您可以在 Dirac 表示法中展開張量乘法符號,讓在狀態向量之間取張量乘積,最終看起來就像一般乘法一樣。

Bra 向量遵循與 ket 向量類似的慣例。 例如,向量相當於狀態向量 $\bra{\psi}\bra{\phi}$$\psi^\dagger\otimes\phi^\dagger=(\psi\otimes\phi)^。\dagger$ 如果 ket 向量$\ket{\psi}$$\alpha是 \ket{0} + \beta\ket{1}$,則該向量的 bra 向量版本是 $\bra{\psi}=\ket{\psi}^\dagger=(\bra{{0}\alpha^* + \bra{1}\beta^*)$。

例如,假設您想計算使用量子程式時測量狀態 $\ket{\psi}=\frac{3}{5}\ket{{1} + \frac{4}{5}\ket{0}$ 的機率,以測定該狀態是 $\ket{+}$ 還是 $\ket{{-}$。 裝置輸出狀態為 $\ket{-}$ 的機率是

$$|\braket{- |\psi}|^2=\left|\frac{({1}{\sqrt{ - {2}}\bra{0}\bra{)({1}\frac{3}{5}\ket{ + {1}\frac{{4}{5}) \ket{0}^2\right|-=\left|5\frac{3}{\sqrt{ + {2}}5\frac{^2{4}{\sqrt{2}}\right|=\frac{{1}{{50}.$$

負號出現在機率計算中是量子干擾的一種表現,這是量子運算取得傳統運算優勢的機制之一。

ketbra 或外部產品

在 Dirac 表示法中值得討論的最後一個項目是 ketbra 或外積。 外部乘積以 Dirac 表示法表示為 $\ket{\psi}\bra{\phi}$。 外積是透過矩陣乘法定義為$\ket{\psi}\bra{\phi}=\psi\phi^\dagger$的量子狀態向量$\psi$和$\phi$。 這個表示法的最簡單且可以說最常見的範例是

$$ \ket{0} \bra{ {0} = \begin{bmatrix}1\\ 0 \end{bmatrix}\begin{bmatrix}1&0 \end{bmatrix}=\begin{bmatrix}1 &0 0\\&0\end{bmatrix}\qquad\ket{1}\bra{1}=\begin{bmatrix}0\\ 1 \end{bmatrix}\begin{bmatrix}0&1 \end{bmatrix}=\begin{bmatrix}0 &0 0\\&1\end{bmatrix}. $$

Ketbras 通常稱為投影機,因為它們會將量子狀態投射到固定值上。 由於這些作業不是單一的(甚至不保留向量的常態),量子計算機無法決定性地套用投影機。 不過,投影機在描述測量對量子狀態的動作時,會執行一項漂亮的工作。 例如,如果您將狀態 $\ket{\psi}$ 測量為 $0$,則狀態因測量而經歷的結果轉換為

$$\ket{\psi} \right箭頭 \frac{(\ket{{0}\bra{{0})\ket{\psi}}{|\braket{0|\psi}|}=\ket{{0},$$

正如您所預期的那樣,如果您對狀態進行測量並發現它是 $\ket{0}$。 若要重申,這類投影機無法在量子計算機中具決定性的狀態上套用。 相反地,頂多可以隨機應用,結果 $\ket{0}$ 會以某種固定的機率出現。 這類測量成功的機率可以寫入為處於狀態的量子投影機預期值

$$ \bra{\psi}(\ket{0}\bra{0})\ket{\psi}=|\braket{\psi| 0}|^2,$$

這說明投影機提供了一種表達測量程式的新方式。

相反地,如果您考慮測量多量子位狀態的第一個量子位為 $1$,您也可以使用投影機和 Dirac 表示法方便描述此程式:

$$P(\text{第一個量子位 = 1})=\bra{\psi}\left(\ket{{1}\bra{{1}\otimes\mathbf{\mathbf{1}^{\otimes n-1}\right) 。 \ket{\psi} $$

在這裡,身分識別矩陣可以方便以 Dirac 表示法撰寫為

I+1&0 0 &1. $$

針對有兩個量子位的情況,投影機可以展開為

$$ \ket{1} \bra{1} \otimes \mathbb{I}=\ket{{1}\bra{1}\otimes (\ket{0}\bra{0}+\ket{1}\bra{{1})=\ket{10}\bra{{10} + \ket{{11}\bra{{11}。 $$

而且您可以看到,此投影機與使用數據行向量表示法之多量子位狀態的測量可能性討論一致:

$$P(\text{第一個量子位= 1})=\psi^\dagger (e_{10}e_{10}^\dagger + e_{{11}e_{{11}^\dagger)\psi=|e_{{10}^\dagger\psi|^2 + |e_{11}^\dagger\psi|^2,$$

這與多量子位測量的討論相符。 不過,將這個結果擴展到多量子位情況,使用 Dirac 表示法來表達會比使用縱向量表示法更直接,並且這樣的處理方式與先前的處理完全相當。

密度運算元

另一個使用 Dirac 表示法表達的實用運算符是 密度運算符,有時也稱為 狀態運算符。 作為量子狀態向量,密度運算符會描述系統的量子狀態。 雖然量子狀態向量只能代表 純狀態,但密度運算符也可以代表 混合狀態

更一般而言,如果符合下列條件,則指定的矩陣 $\rho$ 是有效的密度運算符:

  • $\rho$ 是複數矩陣
  • $\rho = \rho^{\dagger}$ (也就是 $\rho$ 是 Hermitian)
  • 每個 \rho$ 的特徵值 $p$$都是非負數
  • \(\rho\) 的所有特徵值總和為 1

這些條件一起保證 $\rho$ 可以視為合奏。 量子狀態向量的$\ket{\psi}$密度運算符採用 \rho _i p_i $_i=\sum的形式\ket{\psi_i}是 \rho \bra{\psi}$的特徵值分解$,然後 $\rho$ 描述具有機率$p_i$的合奏 =\rho{\ket{\psi}\text{ _i。}}$

純量子狀態的特點是單一 ket 向量或 wavefunction,無法寫入為統計混合,或 凸合,其他量子狀態。 混合量子狀態是純狀態的統計集。

Bloch 球體會以球體表面的點表示純狀態,而混合狀態則以球體內部點表示。 球體的中心基於對稱表示為單一量子位元的混合狀態。 狀態的純潔性可以可視化為接近球體表面的程度。

這個將狀態表示為矩陣而非向量的概念通常很方便,因為它提供一種方便的方式來表示機率計算。 它也可讓您在相同的形式主義中描述統計不確定性和量子不確定性。

密度運算子 $\rho$ 代表純狀態,當且僅當以下條件成立:

  • $\rho$ 可以撰寫為狀態向量 $的外部乘積 \rho=\ket{\psi}\bra{\psi}$
  • $\rho =\rho^2$
  • $tr(\rho^2)=1$

若要判斷給定的密度運算符 $\rho$ 有多接近於純態,您可以查看 $\rho^2$的跡,也就是其對角線元素的總和。 密度運算子當且僅當 tr(\rho) = 1 時,才代表純狀態。

Q# 與量子狀態相等的閘道序列

值得提出的最後一點關於量子代表法和 Q# 程式語言:先前,本文提到量子狀態是量子運算中資訊的基本物件。 然後,令人驚訝的是,在 Q# 中竟然沒有量子狀態的概念。 相反地,Q# 僅透過用來準備作業的方法來描述所有狀態。 上一個範例是這個定義的絕佳圖例。 與其表示為暫存器中每個量子比特列的統一迭加,您可以將結果表示為$H^{\otimes n}\ket{0}$。 這個指數地更短的狀態描述具有可用傳統方式推理的優勢。 它也會簡潔地定義它必須透過軟體堆疊傳播以實作演算法的作業。 因此,Q# 被設計為發出閘序列,而不是量子狀態,不過,在理論上,這兩種觀點是等效的。