量子力學的額外複雜性:未來量子計算機將如何糾錯?
據國外媒體報道,量子糾錯的話題性遠不如”量子霸權”,對於量子計算機的應用而言,量子糾錯卻有著遠超過量子霸權的重要性。 那麼,實用化的量子計算機將採用什麼樣糾錯方法? 最近,研究者在一台真正的機器上進行了演示。
單個量子比特的狀態需要被換到9個量子比特上才能進行糾錯
1994年,當時還在新澤西州貝爾實驗室工作的數學家彼得·秀爾證明,量子計算機解決某些問題的速度要比經典機器快得多,甚至達到指數倍。 問題在於,我們能造出量子計算機嗎? 懷疑者認為,量子態過於脆弱,以至於環境將不可避免地混淆量子計算機中的資訊,使其根本不是量子態。
一年後,彼得·秀爾做出了回應。 經典的糾錯方案是通過測量單個比特來糾錯,但這種方法不適用於量子比特(qubit),因為任何測量都會破壞量子態,從而干擾量子計算。 秀爾找到了一種方法,可以在不測量量子比特自身狀態的情況下,檢測是否發生了錯誤。 這一方法標誌著量子糾錯領域的開端。
隨著這一領域的蓬勃發展,大多數物理學家開始將秀爾的演算法視為構建實用化量子計算機的唯一途徑。 如果沒有這種方法,就無法提升量子計算機的性能,使其能夠解決真正困難的問題。
與通常的量子計算一樣,開發糾錯代碼是一回事,而在工作機器中實現它則是另一回事。 不過,在2021年10月初,由美國馬里蘭大學物理學家克裡斯·門羅領導的研究團隊報告稱,他們成功演示了秀爾的糾錯迴路在運行時所必需的多個要素。
那麼,彼得·秀爾是如何解決這個難題的呢? 簡單來說,他利用了量子力學的額外複雜性。
重複比較
彼得·秀爾在設計糾錯編碼時仿照了經典中繼器的編碼,其中包括複製每一比特的信息,然後定期檢查這些副本。 如果其中一個比特不同於其他比特,計算機就可以糾正這個錯誤並繼續計算。
在秀爾設計的量子糾錯編碼中,他用三個獨立的”物理”量子比特來編碼資訊的單個量子比特,即”邏輯”量子比特。 當然,他的量子中繼編碼不可能和經典版本完全一樣。 量子計算的優勢本質上來自量子比特可以同時存在於0和1的”疊加”中。 由於測量量子態會破壞這種疊加,因此沒有直接的方法來檢查是否發生了錯誤。
經典的糾錯方案是通過測量單個比特來糾錯,但這種方法不適用於量子比特(qubit),因為任何測量都會破壞量子態,從而干擾量子計算。 為了解決這一問題,量子糾錯編碼需要另闢蹊徑,對量子比特的狀態進行檢測
相反,秀爾找到了一種判斷這三個物理量子比特是否處於相同狀態的方法。 如果其中一個量子比特不同,就表明發生了錯誤。
檢查量子比特是否發生錯誤,與解決一個簡單的邏輯難題相差無幾。 如果給你三個看起來一模一樣的球,但其中一個可能有不同的重量;再給你一個簡易天平,你會用什麼測量方法確定其中有沒有品質不同的球? 如果有,是哪個球?
答案是,先挑出兩個球並比較它們的重量,然後用剩下的球替換其中一個,並再次檢查。 如果天平兩次都保持平衡,那麼所有的球都是一樣重的;如果天平只平衡一次,那麼被替換的球或用來替換的球是重量不同的;如果天平兩次都不平衡,那麼靜止不動的球就是品質不同的那個。
秀爾編碼用兩個額外的「輔助」量子比特替換了天平。 首先,比較第一個輔助量子比特與第一個和第二個物理量子比特;然後,比較另一個輔助量子比特與第二個和第三個物理量子比特。 通過測量這些輔助量子比特的狀態,就可以在不干擾三個包含資訊的物理量子比特的情況下,了解它們是否處於相同的狀態。
這段編碼防止了所謂的「比特翻轉」(bit flip)——經典計算中唯一可能發生的錯誤。 然而,量子比特還有另一個潛在的錯誤來源。
疊加是量子計算的關鍵,但重要的不僅僅是量子比特的值,量子比特之間的相對”相位”也很重要。 你可以將相位想像成波,其描述的是波峰和波谷的位置。 當兩個波同相時,它們的波紋是同步的。 如果兩個波發生碰撞,就會產生相長干涉(constructively interfere),合併成一個兩倍大的波;但如果兩個波是反相的,那麼當一個波處於峰值時,另一個波則處於最低點,它們就會相互抵消,即相消干涉(destructive interference)。
量子演算法利用了量子比特之間的相位關係,設置了這樣一種情況:讓計算的正確結果相長干涉,由此被放大,而錯誤的結果則通過相消干涉被消除。 不過,如果某個錯誤導致了相位翻轉,那麼相消干涉就會變成相長干涉,量子計算機就會開始放大錯誤的結果。
彼得·秀爾發現,他可以使用與比特翻轉相似的原理來糾正相位錯誤。 每個邏輯量子比特被編碼成3個量子比特,而輔助量子比特會檢查其中一個相位是否翻轉。 然後,秀爾將這兩種編碼結合起來,獲得了編碼可以將一個邏輯量子比特轉換為9個物理量子比特,從而糾正比特翻轉和相位錯誤。
容錯
秀爾的編碼原則上可以保護單個邏輯量子比特不出錯。 但如果誤差測量本身就存在錯誤呢? 在這種情況下,當你試圖糾正不存在的錯誤時,就可能出現比特翻轉,不知不覺地引入一個真正的錯誤。 在某些情況下,這會導致錯誤級聯傳播到編碼中。
秀爾的編碼也沒有考慮如何操作由邏輯量子比特構建的量子計算機。 在1996年,經過連續三年的開拓性研究,彼得·秀爾提出了容錯的概念。 容錯編碼可以處理由環境引入的錯誤,由對這些量子比特的不完美操作引入的錯誤,甚至由糾錯步驟本身引入的錯誤——前提是這些錯誤發生的頻率低於某個閾值。
就在2021年10月,一個研究團隊宣布,他們成功使用了培根-秀爾編碼(Bacon-Shor code)——秀爾編碼的故障保護版本——來演示一個完全容錯的量子計算機所需的幾乎所有工具。 他們將一個邏輯量子比特編碼到9個離子的量子態中,然後使用4個輔助量子比特,證明可以在容錯的條件下執行量子計算所需的所有單量子比特操作。 結果表明,容錯量子計算機是可行的。
不過,距離實現這個目標還很遙遠,只有當量子計算機達到大約100個邏輯量子比特時,我們才會看到糾錯所帶來的優勢。 這樣的機器需要大約1300個物理量子比特,因為每個邏輯量子比特需要9個物理量子比特加上4個輔助量子比特(目前最大的量子處理器是IBM新發佈的Eagle,有127個物理量子比特),只有到這個時候,我們才能開始建造量子比特工廠,然後引入糾錯編碼。