量子糾錯碼——Stabilizer codes

對於錯誤,通常有兩種:dom

  • random: 錯誤以必定的機率發生在每一個比特上(對這種問題的研究通常是信息論中,信道熵一類的問題)
  • worst case: 錯誤發生在某個比特上,這也是糾錯碼襄陽解決的問題

經典線性碼:

主要是利用了定義在有限域\(\mathbb{F}_{2}\)上的線性代數,\(\mathbb{F}_{2}=\{0,1\}\),而後定義了兩個操做,\(+\)\(\cdot\)編碼

\(\cdot\)和正常的乘法同樣,只有在\(1 \cdot1\)的時候結果爲1,其他都爲0,而\(+\)則有一點小不一樣,由於這是一個封閉的有限域,因此\(1+1\)不等於2而是等於0,計算結果模2。spa

如今已經有了\(\mathbb{F}_{2}\),每個比特都是這麼的一個空間,若是咱們有n比特,那麼咱們的空間就是\(\mathbb{F}_{2}^{n}\),在這個空間上咱們能夠定義向量。code

假定我有了線性獨立向量\(g_1,...,g_k\)咱們把寫着稱之爲generator of the code,由他們咱們能夠張成封閉子空間 \(C\)\(C \geq \mathbb{F}_{2}^{n}\),這個空間的中的向量均可以由\(a_1g_1+a_2g_2+...+a_kg_k\)表達,其中\(a_1,...,a_k\)也都屬於\(\mathbb{F}_{2}\),這個空間的維度爲k。generator

這裏咱們定義一個矩陣G,他的每一列都由generator \(g_1,...,g_k\)表示,因此這是一個\(n*k\)的矩陣。若是用屬於\(\mathbb{F}_{2}^{k}\)的向量來表示\(a_1,...,a_k\),則上面的式子就能夠變成\(Ga\),這至關因而一個映射,把空間\(\mathbb{F}_{2}^{k}\)映射成了\(C\)class

這至關於就是一個編碼方法了,把\(\mathbb{F}_{2}^{k}\)空間裏的k位向量,編碼成\(C\)空間裏的n位向量,咱們只須要作一個矩陣和向量的乘法便可。方法

用一個例子來講明一下:im

多數碼:咱們的碼字空間就是\(C=\{0^n,1^n\}\),用n個0來表示0,n個1來表示1,G就是一個簡單的全1的列向量。tab

如今來看咱們的編碼結果,\(\begin{pmatrix} 1\\1\\...\\1\end{pmatrix}a=\begin{pmatrix} x_1\\x_2\\...\\x_n\end{pmatrix}\)di

對於向量x有什麼是要知足的嗎?

若是咱們的編碼計算沒有問題的話,咱們的\(x_1=x_2\),\(x_2=x_3\),……,\(x_{n_1}=x_n\),這個永也能夠用另外一個種方式表達,\(x_1+x_2=0\)由於只有在他們同時爲1或者同時爲0的時候纔會加起來爲0。

爲此,咱們能夠定義一個新的矩陣H,\(H= \begin{pmatrix} 1 &1 & 0& ... & 0 \\ 0 & 1 & 1 & ... & 0 \\ ... \\ 0 & 0 & ... & 1& 1 \end{pmatrix}\)只有對角線上兩個1,其餘都是0.

有這個矩陣有什麼用呢?

若是咱們有了這個矩陣,咱們能夠用來驗證咱們的編碼是否是對的,經過計算\(Hx=0\)若是等於0,那麼咱們的編碼就是對的,若是不等於0,那麼咱們的編碼就發生了錯誤。

H也就是咱們的檢測矩陣 check matrix,若是G是n*k 的矩陣的話,H就是(n-k)*n的矩陣。

咱們聊這麼久的線性碼的意義何在?

由於咱們能夠把H 也就是 check matrix 拓展到量子的領域,也就是咱們的Stabilzer code。

經典線性碼,有兩種等價的描述,\(C_{c l}=\operatorname{Im}(G)=\operatorname{ker}(H) \leq \mathbb{F}_{2}^{n}\)

對H來講,C空間裏的任意一個向量都和H的每個行向量的內積都是0,\(H x=0 \Longleftrightarrow\langle x, h\rangle = 0 \forall h \in \operatorname{Im}(H^{\dagger})\)

從量子的角度來看,咱們的量子碼字空間\(C=span\{|x\rangle: x \in C_{cl}\}\)和它對應的check aatrix H。

\(\forall h \in \operatorname{Im}(H^{\dagger})\)咱們選擇這麼一個操做\(Z^{h}=Z_{1}^{h_{1}} \ldots Z_{n}^{h_{n}}\)做用在 $|x\rangle $ 上,獲得\(Z^{h}|x\rangle=Z_{1}^{h_{1}}\left|x_{1}\right\rangle \otimes \ldots \otimes Z_{n}^{h_{n}}\left|x_{n}\right\rangle=(-1)^{\langle h, x\rangle}|x\rangle\)。由於\(\langle h, x\rangle=0\),因此\(Z^h|x\rangle=|x\rangle\)

也就是說,\(|x\rangle\)\(Z^h\)特徵值爲1的特徵向量。

\(C=\left\{|\psi\rangle: Z^{h}|\psi\rangle=|\psi\rangle \forall h \in \operatorname{Im} H\right\}\)這個條件的另外一種描述方法就是\(|\psi\rangle\) is stabilized by\(Z^h\)

Stabilizer是什麼?

定義

Stabilizer group(S)是什麼?

簡單來講,stabilizer group(S)就是知足瞭如下兩個條件的Pauli羣的子羣。

Pauli羣是什麼?

\(\left\{\omega^{c} X_{j}^{a_{j}} Z_{j}^{b_{j}}\right\}_{j=1, \ldots, N}^{a_{j}, b_{j}, c=0, \ldots, d-1}\)其中 \(w=e^{2\pi i/d}\) ,而且這個羣是封閉的。

那麼須要知足的兩個條件是什麼呢?

  1. S裏面的全部的元素都是對易的,便可以交換,S is an abelian subgroup of \(P_n\)
  2. -I不在S裏面

這兩個條件實際上是統一的,能夠相互推導,在S裏沒有-I很容易理解,若是有了-I,那麼知足\(-I |x \rangle = |x\rangle\)\(|x\rangle\)就只有0向量了。

若是在S裏面沒有-I,那麼反對易的元素也不在S裏面,Pauli矩陣要麼是對易要麼反對易,若是它們是反對易的,則存在\(S \ni g h g h=-g h h g=-I\),與第二個要求矛盾。

Stabilizer 子空間

Stabilizer 子空間就是\(V_S=\{|\psi\rangle: g|\psi\rangle=|\psi\rangle, \forall g \in S\}\)

一個stabilizer group(S)就有一個對應的stabilizer subspace,S裏面的任意一個操做做用在這個子空間裏都不會有什麼變化。

例子
  • \(V_{S}=\operatorname{span}\{|00\rangle\}\),對於這個子空間,\(S=\{I I, I Z, Z I, Z Z\}=\langle I Z, Z I\rangle\),之因此後面還劃出來了一個IZ和ZI,那麼是由於II和ZZ能夠經過這兩個相乘獲得,咱們也說, S is generated by IZ,ZI。
  • \(V_{S}=\operatorname{span}\{|000\rangle,|111\rangle\}\)這就是咱們先前說的重複編碼,對於這個子空間,他的S就是\(S=\langle Z Z I, I Z Z\rangle\)前面的兩個ZZ保證的是第一個比特和第二個比特是相同的,後面兩個ZZ保證的是第二個比特和第三個比特是相同的。
  • \(V_{S}=\operatorname{span}\{|+++\rangle,|---\rangle\}\)對於這種狀況,找他的S也很容易,由於就是一個換基的過程\(S=\langle X X I, I X X\rangle\)
投影算子

如今咱們還能夠來描述這個子空間的投影算子,咱們能夠先定義一個\(\Pi_{S}\)使得\(\Pi_{S}=\frac{1}{|S|} \sum_{g \in S} g\)

若是\(g \in S\),那麼\(g \Pi_{S}=\Pi_{S}\),證實這一點很容易,由於:

\(g \sum_{h \in S} h=\sum_{h \in S} g h=\sum_{h^{\prime}=g h \in S} h^{\prime}\)

\(g \in S\)一樣也能夠導出\(g^{\dagger} \in S\),由於S是一個封閉可逆的羣,那麼咱們能夠得出麼\(g^{\dagger} \Pi_{S}=\Pi_{S}\),即麼\(\Pi_{S}^{\dagger} \Pi_{S}=\Pi_{S}\)

這說明了\(\Pi_{S}\)是一個投影算子。

接下來要說明\(\Pi_{S}\)投影的子空間就是咱們想要的\(V_S\),這個分爲兩方面:

  1. 對任意的\(|\psi\rangle\)\(g \in S\)來講,\(g \Pi_{S}|\psi\rangle=\Pi_{S}|\psi\rangle\),也就是\(\Pi_{S}|\psi\rangle \in V_{S}\)
  2. 若是\(|\psi\rangle \in V_{S}\),則\(\Pi_{S}|\psi\rangle=|\psi\rangle\),即\(V_{S} \subseteq \Pi_{S}\)

綜上,咱們能夠說,\(\Pi_{S}=\operatorname{Proj}\left(V_{S}\right)\)是子空間上的投影算子。

咱們如今能夠來計算子空間的維度,讓\(|S|=2^{\ell}\),generator \(S=\left\langle s_{1}, \ldots, s_{\ell}\right\rangle\)

子空間的維度提及來簡單,就是全部stabilizer特徵值爲1所對應的特徵空間的交集,可是誰知道他們是怎麼相交的呢?還好咱們有投影算子。

咱們能夠說,\(\operatorname{dim} V_{S}=\operatorname{tr} \Pi_{S}\),這裏的特徵值只有0和1,而trace會把1給累加起來。

\(\operatorname{tr} \Pi_{S}=\frac{1}{|S|} \sum_{g \in S} \operatorname{tr} g=\frac{1}{2^{\ell}} \sum_{g \in S} 2^{n} \delta_{g, I}=2^{n-\ell}\)

只有\(g=I\)的時候trace纔有值,其餘狀況就是普通的Pauli,trace爲0,而什麼狀況\(g=I\)呢?事實上只有一種狀況,那就是全部的a都爲0,由於他們是線性獨立的,因此咱們子空間的維度是\(2^{n-l}\)

錯誤檢測

回顧咱們經典的檢測矩陣H,咱們有\(x \in C_{c l} \Longleftrightarrow H x=0\),並非全部的錯誤咱們都能檢測,若是這個錯誤是把一個可能的碼字,變成另外一個可能的碼字,那麼H怎麼能知道這個是錯誤而不是一個正確的操做的?

若是錯誤正好是\(H(x+e)=H e=0\),那麼這種錯誤就是不可檢測的錯誤。

量子版本的stabilizer code也是如此。

那麼,哪些錯誤是不能檢測的呢?

那就是若是我犯了這個錯誤,可是我依舊在這組stabilizer的子空間裏,這種錯誤就是不可檢測的,由於我分不出來這到底是錯誤仍是操做。

假設\(|\psi\rangle \in V_{S}\)\(E \in P_{n}\),則:\(E|\psi\rangle \in V_{S} \quad \Leftrightarrow \quad g E|\psi\rangle=E|\psi\rangle \forall g \in S\)

\(g E|\psi\rangle=E|\psi\rangle\)意味着\(g E|\psi\rangle=Eg|\psi\rangle\),則Eg和gE是相等的,E和g對易。

若是咱們的錯誤和咱們的stabilizer對易,那麼這種錯誤就是咱們不能檢測出來的錯誤。

問題接下來就變成了,如何判斷Pauli算子是否對易。

首先,全部的Pauli均可以寫成\(p=(-1)^{a} X^{b} Z^{c}\)的形式,對於\(a \in \mathbb{F}_{2}, b, c \in \mathbb{F}_{2}^{n}\)

那麼假定咱們有另外一個Pauli \(q=(-1)^{a^{\prime}} X^{b^{\prime}} Z^{c^{\prime}}\)

\(p q=(-1)^{a+a^{\prime}} X^{b} Z^{c} X^{b^{\prime}} Z^{c^{\prime}}\)

對於中間的\(Z^{c} X^{b^{\prime}}=Z_{1}^{c_{1}} \cdots Z_{n}^{c_{n}} X_{1}^{b_{1}^{\prime}} \cdots X_{n}^{b_{n}^{\prime}}=X^{b^{\prime}} Z^{c}(-1)^{\left\langle b^{\prime}, c\right\rangle}\),即,若是Z和X在這一位上都有,那麼就會有一個-1.

那麼如今pq就變成了,\(p q=(-1)^{a+a^{\prime}+\left\langle b^{\prime}, c\right\rangle} X^{b+b^{\prime}} Z^{c+c^{\prime}}\)

同理,qp能夠寫成\(q p=(-1)^{a+a^{\prime}+\left\langle b, c^{\prime}\right\rangle} X^{b+b^{\prime}} Z^{c+c^{\prime}}\)

很容易發現,\(p q=(-1)^{\left\langle c, b^{\prime}\right\rangle+\left\langle b, c^{\prime}\right\rangle} q p\),若是-1上面的指數是0,那麼他們就對易,反之,若是上面的指數是1,那麼他們就反對易。

而這個,咱們又能夠寫成這樣的形式\(\left\langle c, b^{\prime}\right\rangle+\left\langle b, c^{\prime}\right\rangle=\left(\begin{array}{ll}b^{T} & c^{T}\end{array}\right)\left(\begin{array}{cc}0_{n} & I_{n} \\ I_{n} & 0_{n}\end{array}\right)\left(\begin{array}{l}b^{\prime} \\ c^{\prime}\end{array}\right)=\left(\begin{array}{ll}b^{T} & c^{T}\end{array}\right) \Lambda\left(\begin{array}{l}b^{\prime} \\ c^{\prime}\end{array}\right)\)

因此泡利矩陣是否對易的關鍵記載於看\((b c)\)\((b' c')\)之間是否垂直了,這裏垂直的頂i的是定義是symplectic inner product

相關文章
相關標籤/搜索