共用方式為


量子運算中的 Dirac 表示法

Dirac 表示法 的設計符合在量子力學中表達狀態和線性代數的精確需求。 它以物理學家保羅·迪拉克的名字命名,保羅·迪拉克在20世紀30年代發展了這個表示法。 Dirac 表示法是描述量子狀態和作業的簡潔且強大的方式。 它用於量子運算來描述量子狀態、量子作業和量子測量。

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

數據行向量表示法的限制

雖然 數據行向量表示法 在線性代數中很常見,但它通常用於量子運算,尤其是在處理多個量子位時。 例如,當您定義 $\psi$ 為向量時,不會明確清楚是否 $\psi$ 為數據列或數據行向量。 因此,如果 $\phi$ 和 $\psi$ 是向量,則同樣不清楚是否\psi$$\phi甚至定義,因為 $\phi$ 和 $\psi$ 的形狀在內容中可能不清楚。 除了向量圖形的模棱兩可之外,使用線性代數表示法表達甚至簡單的向量可能很麻煩。 例如,如果您想要描述 $n$ 量子位狀態,其中每個量子位接受值 $0$,則您會將狀態正式表示為

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\otimes\begin{bmatrix}\cdots1 \\ 0 。\end{bmatrix} $$

評估此張量產品是不切實際的,因為向量位於指數較大的空間中。 因此,這個表示法實際上是可使用先前表示法來指定之狀態的最佳描述。

Dirac 表示法中的向量類型

Dirac 表示法中有兩種類型的向量: 胸罩 向量和 ket 向量,因此命名是因為在一起時形成 剎車 或內部產品。 如果 $\psi$ 是數據行向量,則可以將它寫入 Dirac 表示法為 $\ket{\psi}$,其中 $\ket{\cdot}$ 表示它是單位數據行向量,例如 ket 向量。 同樣地,數據列向量 $\psi^\dagger$ 會以 表示 $\bra{\psi}$。 換句話說, $\psi^\dagger$ 是藉由將專案複雜結合套用至 的轉置 $\psi$專案來取得。 胸罩表示法直接表示法表示法是 $\braket{\psi|\psi}$ 向量 $\psi$ 本身的內部乘積,其定義 $為 1$。

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

下列慣例用來描述編碼零和一個值的量子狀態(單一量子位計算基礎狀態):

$$\begin{bmatrix}1 \\ 0,0 \end{bmatrix}\qquad\begin{bmatrix}{0}\ket{\\=1 。\end{bmatrix}=\ket{{1} $$

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

下列表示法通常用於描述將 Hadamard 閘道套用至 $\ket{0}$ 和 $\ket{1}$所產生的狀態。 這些狀態會對應到 Bloch 球體上 +x$ 和 $-x$ 方向的$單位向量:

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

這些狀態也可以使用 Dirac 表示法做為 和 $\ket{1}$的總$\ket{0}$和來擴充:

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

計算基礎向量

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

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

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

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

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

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

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

Tensor 產品表示法

Dirac 表示法也包含隱含 張量乘積 結構。 這個結構很重要,因為在量子運算中,兩個不相關量子緩存器所描述的狀態向量是兩個狀態向量的張量乘積。 如果您想要解釋量子計算,請簡潔描述張量乘積結構或缺乏結構非常重要。 張量乘積結構表示您可以針對任何兩個量子狀態向量$\phi$撰寫 $\psi\otimes\phi$ ,並以 $\psi$ 作為 。$\ket{\psi}\otimes\ket{\phi}$ 不過,藉由在向量之間寫入$\otimes$慣例是不必要的,而且您可以撰寫\ket{\psi\ket{\phi}\phi}$\ket{\psi}$= 。 如需向量和張量產品的詳細資訊,請參閱 Quantum Computing 中的向量和矩陣。 例如,兩個量子位初始化為零狀態的狀態為:

$$\ket{0}\otimes\ket{0}=\ket{{0}\ket{{0}=\ket{{00}=\begin{bmatrix}1 \\ 0\otimes\end{bmatrix}\begin{bmatrix} 1 \\ 0=\end{bmatrix}\begin{bmatrix} 1 \\ 0 0 \\ 0 .\\ \end{bmatrix} $$

同樣地,整數 $p 的狀態 $\ket{p}$$ 代表以二進位表示法編碼整數 $p$ 的量子狀態。 例如,如果您想要使用不帶正負號的二進位編碼來表示數位 $5$ ,您可以同樣將其表示為

$$\ket{1}\ket{0}\ket{1}=\ket{101}=\ket{5}. $$

在此表示法中,$\ket{0}$不需要參考單一量子位狀態,而是參考儲存0$二進位編碼的$量子位緩存器。 這兩個表示法之間的差異與內容是清楚的。 此慣例適用於簡化第一個範例,其可透過下列任何方式撰寫:

$$\begin{bmatrix}1 \\ 0\cdots\otimes\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 0{0}\ket{\otimes\cdots|\otimes\ket{0}==\end{bmatrix} 0\cdots=\ket{\rangle{0}^ n{\otimes}$$

其中 $\ket{0}^{\otimes n}$ 代表 n$\ket{0}$$ 個量子狀態的$張量乘積。

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

另一個如何使用 Dirac 表示法來描述量子狀態的範例,請考慮下列對等方式來撰寫量子狀態,該量子狀態是長度 n 的每個可能位字串$相等迭加$

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

在這裡,您可能會想知道為什麼總和從 $0$ 到 $2^{n-1$} 的 $n$ 位。 首先,請注意 $n$ 個位可以採用的 2^{n}$ 個不同組態$。 您可以藉由指出一個位可以接受 $2$ 個值,但兩個位可以採用 $4$ 個值等等來看到這個值。 一般而言,這表示有 $2^n$ 個不同的可能位字串,但其中任何 $一個都編碼的最大值 1\cdots 1=2^n-1$ ,因此是總和的上限。 請注意,在此範例中,您並未在$\ket{類似 $\ket{{0}^{\otimes n{0}$}\ket{= 中使用 +}^{\otimes n}=\ket{+ 。}$ 這個表示法慣例會保留給計算基礎狀態,每個量子位初始化為零。 雖然這種慣例在此案例中是明智的,但不適用於量子運算文學。

使用 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^\otimes\phi\dagger^\dagger=(\psi\otimes\phi)^。\dagger$ 如果 ket 向量是\ket{0} $\alpha+ \beta\ket{1}$,則向量的胸罩向量$\ket{\psi}$版本是 $\bra{\psi}=\ket{\psi}^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*)$ 。

例如,假設您想要計算測量狀態的機率 +\ket{0}$ 使用量子程式來測量狀態$\ket{\psi}\frac{3}{5}={1}\ket{為 $\ket{+}$ 或 。$\ket{{-}$\frac{4}{5} 然後,裝置將輸出狀態 $\ket{-}$ 為的機率

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

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

ketbra 或外部產品

在 Dirac 表示法中討論的最後一個專案是 ketbra 或外部產品。 外部產品以 Dirac 表示法表示為 $\ket{\psi}\bra{\phi}$,有時稱為 ketbras,因為胸罩和ket 會以相反順序出現剎車。 外部乘積是透過矩陣乘法定義為 $\ket{\psi}\psi=\phi\bra{\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}\bra{1}=\qquad\ket{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}{0}\bra{)\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 表示法撰寫為

$$\mathbb{I}{0}=\ket{\bra{0}+\ket{\bra{1}={1}\begin{bmatrix}1&0 0\\& amp;1 \end{bmatrix}。 $$

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

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

然後,您可以看到這與使用數據行向量表示法之多量子位狀態的測量可能性討論一致:

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

這符合多量子位測量討論。 不過,將這個結果一般化為多量子位案例,使用 Dirac 表示法來表示法比數據行向量表示法更直接,而且完全相當於先前的處理。

密度運算元

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

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

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

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

純量子狀態是以單一ket 向量或 wavefunction 為特徵,不能寫入為其他量子狀態的統計混合(或 凸合)。 混合量子狀態是純狀態的統計合奏。

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

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

密度運算子 $\rho$ 代表純狀態,只有在:

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

若要判斷指定密度運算符 $\rho$ 與純量有多接近,您可以查看 \rho^2$ 的追蹤(也就是對角線元素的總和)。$ 密度運算子只有在 tr(\rho ^{2})=1$ 時,才會$代表純狀態。

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

值得關於量子表示法和 Q# 程式設計語言的最後一點:本檔開頭提到量子狀態是量子運算中資訊的基本物件。 然後,它可能會出人意料的是,沒有 Q# 量子狀態的概念。 相反地,所有狀態只會由用來準備它們的作業來描述。 上一個範例是此範例的絕佳圖例。 您可以以 H^{\otimes n}\ket{0}$ 表示結果$,而不是在緩存器中的每個量子位字串上表示統一迭加。 這個指數較短的狀態描述不僅具有您傳統理由的優點,而且能簡潔地定義透過軟體堆疊傳播以實作演算法所需的作業。 因此, Q# 是設計來發出網關序列,而不是量子狀態;不過,在理論上,兩個檢視方塊是相等的。

下一步