[量子計算,與你有關]Part3-量子糾錯編碼

       歡迎來到YuleZhang的量子計算專欄,本專欄圍繞着《量子信息與量子計算》陳漢武編展開,奉行費曼學習法,儘可能的用生動的語言和自己的理解來拆解這本書,從而不斷鞏固和進步,歡迎與我一起學習,同時也期待你寶貴的建議!

一、前言

       前面我們提到過量子的疊加態、糾纏態等神奇的性質,正是因爲這些性質使得量子世界總是蒙着一層面紗,儘管已經撥開重重迷霧,仍是不得見其“素顏”。並且量子的這些狀態在量子信道上進行傳輸時,還會受到環境噪聲和自身相干性的影響,導致將要轉發的信息“面目全非”。於是類似於傳統信道的處理方式(例如海明碼糾錯等),我們在量子信道中也加入糾錯編碼,用來保證我們傳輸數據的準確和可靠性。
在這裏插入圖片描述

二、經典糾錯編碼

       爲什麼不直接學量子糾錯編碼方式呢,因爲量子糾錯就是在經典糾錯的基礎之上發展過來的,只是進行了適當的拓展而已。理解了這個,相信對於量子糾錯你就已經掌握一半的內容了,下面來看一看“巨人的肩膀”是什麼樣的。
       先來設想一個最簡單的場景,你要給你遠在異地的女朋友發消息。假設這個信道容易被幹擾,我們設你發1它收到0和發0收到1的概率爲pp,也就是說你女朋友收到正確信息的概率是1p1-p。如下圖所示。
在這裏插入圖片描述
       那麼爲了保證一定的容錯率,爲了你的女票能正確收到信息。我們將傳送的1bit1bit數據重複三次再發出去,即當你發000表示你要發0,當你發111表示你發的是1。當你女票收到信息之後,採用多數決定法解碼,如圖所示
在這裏插入圖片描述
       這樣處理確實能夠糾正大部分錯誤,可也有“漏網之魚”,即當所發的數據中兩個或兩個以上的比特位都被噪聲影響時,那麼女票就完全理解錯了。這時候我們來計算一下這種情況發生的概率。兩個比特錯就是C32p2(1p)C_3^2p^2(1-p),三個比特都錯就是C33p3C_3^3p^3,設p=0.01p=0.01則,那麼其錯誤概率就是
C32p2(1p)+C33p3=(32p)p2=0.000298<0.01C_3^2p^2(1-p)+C_3^3p^3 = (3-2p)p^2=0.000298<0.01
       可以看到通過三比特重複編碼,明顯降低了誤碼率。

三、量子糾錯編碼

       下面“主角”即將出場——量子糾錯編碼,通過邏輯門操作結合上述多數決定法來實現量子糾錯。這裏要注意了!!!量子信道傳輸出現錯誤一般有以下三種情況

  1. 比特反轉錯誤
  2. 相位反轉錯誤
  3. 比特和相位都發生反轉錯誤

       而經典的比特傳遞僅考慮比特反轉錯誤。並且,顯然第三種情況是第一種和第二種同時作用的結果,對應的糾錯也可以結合。

3.1 bit反轉信道的量子糾錯編碼

       這種情形跟經典信道的反轉很類似,還是比較容易處理的。二者的顯著區別就是信道中輸入的信號變爲了ψ=α0+β1|\psi⟩=\alpha|0⟩+\beta|1⟩。類比傳統的情況,也就是說有1p1-p的概率收到的沒有發生錯誤,即原樣輸出。而有pp的概率在傳輸過程中發生了反轉。
       咦,到了這裏停一下。量子裏面的反轉恰好可以用XX門來表示,也就是說有pp的概率使得女票得到XψX|\psi⟩的結果,總結起來就是下圖
在這裏插入圖片描述
       同樣的我們把傳輸的信息重複三次,注意這裏使得編碼保持線性。所以就有了以下式子,實際傳輸時的內容爲ψ=α000+β111|\psi⟩=\alpha|000⟩+\beta|111⟩

qubit 編碼
|0⟩ |0⟩|0⟩|0⟩=|000⟩
|1⟩ |1⟩|1⟩|1⟩=|111⟩

       那麼實現信息重複的量子電路是什麼樣的呢,請看下圖
在這裏插入圖片描述
       可以看到圖中有兩個控制非門,當輸入ψ|\psi⟩爲1時,第二位和第三位的0比特都發生反轉,也就得到了111|111⟩。同理當輸入ψ|\psi⟩爲0時,第二位和第三位的0比特不發生反轉,得到了000|000⟩,大功告成,這就是編碼器了。
       下面考慮解碼器的功能,是不是跟傳統信道一模一樣呢(那個多數決定法)!那麼量子電路怎麼設計呢,科學家們已經幫我們解決了這個問題,其組成也是控制非門,下面來看看它的結構
在這裏插入圖片描述
       可以看到,接收方添加2位qubit輔助信息,將其初始化爲00|00⟩,同收到的3qubit信息一同送入解碼器。若傳輸的信息沒有發生反轉,那麼經過4個控制非門演算,其狀態將順序發生如下變化
在這裏插入圖片描述
       只需測量最後2位qubit,就能準確的判斷出錯誤發生的位置。其對應關係如下
在這裏插入圖片描述
       當我們找出錯誤比特的位置,那麼就能通過XGateX-Gate演算反轉自動糾正錯誤了。
       很顯然上述解碼過程有些抽象,下面將舉一個具體的例子來幫助理解。待發送內容爲ψ=α0+β1|\psi⟩=\alpha|0⟩+\beta|1⟩,利用上述的編碼器編碼得到ψ=α000+β111|\psi⟩=\alpha|000⟩+\beta|111⟩。假設在傳輸的過程中第2個qubit發生反轉錯誤,即接收方收到了α010+β101\alpha|010⟩+\beta|101⟩。不要着急,將這段序列送入解碼器(圖4-4)。通過一系列控制非門的運算,那麼到虛線處計算的結果爲α01011+β10111=(α010+β101)11\alpha|01011⟩+\beta|10111⟩=(\alpha|010⟩+\beta|101⟩)|11⟩       隨後測定輔助位,以α2+β2=1|\alpha|^2+|\beta|^2=1的概率測定到輔助位爲11|11⟩,查表發現其對應着第二位錯誤,對第二位實施XGateX-Gate即可得到正確的結果。
       對於bit反轉的錯誤到這裏就結束了,總結一下就是先採用三次重複編碼器編碼,隨後傳輸,收到信息後添加輔助位送入解碼器。將解碼器的2位輔助輸出位查表,找到對應的錯誤位置,最後XGateX-Gate糾正就完美了!

3.2 位相反轉信道的量子糾錯編碼

       有了上面比特反轉的基礎,我們就能迅速明確我們發送的信息將以1p1-p的概率在傳輸時沒有被幹擾改變,同時也有pp的概率在傳輸時發生位相反轉
       到了這裏再停一下,位相反轉是不是可以用ZGateZ-Gate來表示呢,於是同理得到了下圖(位相反轉信道)
在這裏插入圖片描述
       隨後呢,就是將輸入ψ=α0+β1|\psi⟩=\alpha|0⟩+\beta|1⟩送入編碼器(上圖4-3),得到ψ=α000+β111|\psi⟩=\alpha|000⟩+\beta|111⟩。將其經過位相反轉信道傳送,如果第一位qubit發生了位相反轉,即接收方收到的信息爲α000β111\alpha|000⟩-\beta|111⟩。對於這種情況顯然就不能用比特反轉裏的多數決定法了,它面對此類問題顯然毫無對策。
下面來回顧一下HH門(Hadamard變換)
H=12[1111]H=\frac{1}{\sqrt{2}} \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]
H門有如下的性質
HH=H2=12[1111][1111]=[1001]=IH*H=H^2=\frac{1}{2} \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]= \left[ \begin{matrix} 1 & 0\\ 0 & 1\\ \end{matrix} \right]=I
HZH=12[1111][1001][1111]=[0110]=X HZH=\frac{1}{2} \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 0\\ 0 & -1\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 1\\ 1 & -1\\ \end{matrix} \right]=\left[ \begin{matrix} 0 & 1\\ 1 & 0\\ \end{matrix} \right]=X
       上述公式推算中,II表示單位矩陣,XX表示比特反轉門。於是對於位相反轉錯誤可以將其轉爲比特反轉錯誤,隨後再用比特反轉信道糾錯碼就能實現糾錯,獲取正確的數據,總結如圖4-6所示。
在這裏插入圖片描述
       其中虛線表示信息的不同位置,左側是發送方,中間是傳輸過程中,右側是接收方。下面來看看編碼器和解碼器的示意圖(圖4-7和圖4-8)。
在這裏插入圖片描述
在這裏插入圖片描述
       相信已經非常直觀了,爲了便於理解,還是舉個例子,詳細過一遍這個過程。爲了描述方便,先用下列方法定義狀態+|+⟩|-⟩
+=H0=12[1111][10]=12[11] |+⟩=H|0⟩=\frac{1}{\sqrt{2}} \left[\begin{matrix} 1 & 1\\ 1 &-1 \end{matrix}\right]\left[\begin{matrix} 1 \\ 0 \end{matrix}\right]=\frac{1}{\sqrt{2}}\left[\begin{matrix} 1 \\ 1\end{matrix}\right]
=H1=12[1111][01]=12[11] |-⟩=H|1⟩=\frac{1}{\sqrt{2}} \left[\begin{matrix} 1 & 1\\ 1 &-1 \end{matrix}\right]\left[\begin{matrix} 0\\ 1 \end{matrix}\right]=\frac{1}{\sqrt{2}}\left[\begin{matrix} 1 \\ -1\end{matrix}\right]
       老規矩,信息經過重複碼重複三次,隨後每一個bit做HH門運算,就能得到以下3qubit的疊加態。
αH0H0H0+βH1H1H1=α++++β \alpha H|0⟩H|0⟩H|0⟩+\beta H|1⟩H|1⟩H|1⟩=\alpha |+++⟩+\beta |---⟩
       上面就是經過編碼器編碼後的結果,現在就要將這個結果發給對方啦!然鵝,在發送過程中,又有人惡意搞破壞,讓第二位qubit發生了位相反轉錯誤。想誤導你呵呵,導致對方接收到了α+++β+\alpha|+-+⟩+\beta |-+-⟩。不過還好我們有圖4-8解碼器。先將得到的內容送入HH門進行運算。根據下面的運算公式我們得到經HH門運算的結果爲α010+β101\alpha |010⟩+\beta|101⟩
H+=H(H0)=0H=H(H1)=1 H|+⟩=H(H|0⟩)=|0⟩ \\ H|-⟩=H(H|1⟩)=|1⟩
       下面就又轉化成爲bit反轉問題,將其送入圖4-4所示的解碼器再進行反轉運算就好了。總結一下,相比於bit反轉的電路,位相反轉在原有的基礎上添加了HH門,巧妙的將問題進行了轉化,從而最終能解開原有信息的面紗。

3.3 bit和位相同時發生反轉

       有了上面的鋪墊,這種情況應該比較顯而易見了,我們的思路就是先糾正bit反轉錯誤,再將位相錯誤轉爲bit反轉錯誤,最後再次糾正bit反轉錯誤,就能得到正確信息。帶着這個思路,下面我們來看看編碼器的樣子。
在這裏插入圖片描述
       HH門及之前的很容易理解,跟位相反轉一樣。隨後又在輸出之前每一bit添加了重複三次操作,這主要是爲了能夠直接用來糾正bit反轉錯誤
       到了這裏可能有人會問了,爲什麼最開始的三位重複qubit不能直接用來糾正bit反轉錯誤呢。還記得上面提到的位相反轉錯誤最終轉爲bit反轉錯誤嗎?因此,開始的三位重複qubit是用來給位相反轉處理後的bit反轉預留的重複碼,是留着用來完成位相錯誤糾正操作的。
       下面來看看解碼器的示意圖
在這裏插入圖片描述
       從圖中可以看到,與我們上述描述一致,先對每一位糾正bit錯誤,隨後直接送入4-8的位相反轉糾正電路就能成功搞定bit和位相同時發生錯誤的糾錯電路。
       以上就是本次學習的主要內容,內容有一些抽象,需要反覆理解鞏固!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章