現在是時候建立一個程式碼來糾正多種類型的錯誤了。這也讓我們有機會展示一種稱為程式碼串聯的程式碼建構技術。
在代碼串聯中,我們首先使用特定代碼將邏輯量子位元編碼為 𝑛 資料量子位元。然後,我們對每個進行編碼 𝑛 資料量子位元單獨使用相同或另一個代碼。為了說明這一點,請回想一下,在相位翻轉程式碼中,邏輯基礎狀態被編碼為
現在,我們將獲取三個資料量子位元中的每一個,並使用位元翻轉重複碼對它們進行編碼。回想一下,在位元翻轉重複碼中,加號和減號狀態編碼為
當我們將此編碼應用於相位翻轉編碼中的三個量子位元中的每一個時,我們得到
從視覺上看,我們可以畫一個樹形圖來展示如何首先透過相位翻轉程式碼將一個量子位元編碼為三個,然後透過位元翻轉程式碼將三個量子位元中的每一個量子位元編碼為另外三個。
將一個邏輯量子位元映射到九個量子位元的狀態
首先讓我們證明它可以修正九個資料量子位元中任何一個的位元翻轉和相位翻轉錯誤。
假設第四個量子位元發生一個𝑋 錯誤。
如何偵測到這種情況發生了?我們將以位元翻轉程式碼的方式進行以下syndrome測量。
單量子位元的 𝑍 錯誤稍微更難發生。例如,如果 𝑍 前三個量子位元中的任何一個發生錯誤,第一個區塊中的符號將會改變。為了 𝑖 = 0 , 1 , 2
若從外部程式碼來看,編碼是
然後 𝑍𝑖 的 𝑖 = 0 , 1 , 2 是
在這個層級上,很容易看出錯誤偵測策略。將相位翻轉碼的錯誤偵測過程應用於三個編碼的量子位元(在外層)。我們稍後將討論如何做到這一點。
現在,我們想要證明 Shor code不僅可以檢測並糾正錯誤 𝑋 和 𝑍 錯誤。還有一個錯誤是 𝑌 錯誤,只是 𝑌= 𝑖𝑍𝑋 ,即位元翻轉和相位翻轉誤差的組合。例如, 將導致基礎狀態損壞
在兩個位置均偵測到此錯誤 𝑋 檢測階段,以及 𝑍 檢測階段,並在這兩個階段進行修正。首先,我們檢測 𝑋 錯誤,發現第四個翻轉了並修復。然後我們檢測 𝑍 錯誤並確定中間區塊遇到錯誤並修復它。
因此,到目前為止我們已經證明 Shor 碼可以糾正集合中的所有錯誤,
參考資料:https://github.com/abdullahkhalids/qecft