1. 程式人生 > 資訊 >量子力學的額外複雜性:未來量子計算機將如何糾錯

量子力學的額外複雜性:未來量子計算機將如何糾錯

北京時間 11 月 29 日訊息,據國外媒體報道,量子糾錯的話題性遠不如“量子霸權”,對於量子計算機的應用而言,量子糾錯卻有著遠超過量子霸權的重要性。那麼,實用化的量子計算機將採用什麼樣糾錯方法?最近,研究者在一臺真正的機器上進行了演示。

▲單個量子位元的狀態需要被換到 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 個物理量子位元),只有到這個時候,我們才能開始建造量子位元工廠,然後引入糾錯編碼。