2022年諾貝爾物理學獎由Alain Aspect、John F. Clauser和Anton Zeilinger三位科學家共同獲得,他們獲獎的主要原因是通過量子糾纏實驗進一步證明了量子力學的正確性,使得量子信息系統成為一門真正的科學,這將進一步推動量子計算機的發展。隨著元宇宙時代來臨,傳統計算機的速度已經無法滿足運算的需要,量子計算將成為主流。本期我們將深入介紹量子計算機的發展過程,以及量子糾纏理論在量子計算機中的作用。
文|安迪
量子計算機發展簡史
量子計算機是一種利用量子力學現象(如量子疊加和量子糾纏)對數據進行運算的計算機。傳統計算機使用二進位數(位)來存儲和處理信息,每個數位最多有1種狀態(0或1),而量子計算機則使用的是量子比特(qubits),可以同時存在多種狀態,這使得它能夠比傳統計算機處理和存儲更多的信息,並更快地解決問題。
量子計算的歷史可以追溯到20世紀80年代。1981年在麻省理工學院舉辦的第一屆計算物理大會上,理察·費曼(Richard Feynman)提出了一種新的計算方法,即量子計算。他認為,量子計算可以比傳統的計算機更快地解決複雜的問題。他的想法引起了許多科學家的興趣,並開始研究量子計算的可能性。當時與會的還有物理學家保羅·貝尼奧夫(Paul Benioff),和費曼討論能否在經典計算機中有效模擬量子系統不同,貝尼奧夫的關注點是能否構造出沒有耗散、且遵循量子力學進行操作和運算的計算機模型。
接下來的幾年裡,研究人員開始了對量子計算潛力的探索。
1994年,美國貝爾實驗室的科學家彼得·秀爾(Peter Shor)開發出分解大數質因子的量子算法,可以在數小時以內完成傳統計算機需要數十年時間才能完成的運算量。這一算法被稱為「Shor算法」,它使得量子計算變得更加可行,引起了許多科學家的興趣,陸續開發出其他量子算法,如Grover算法。
進入21世紀,量子計算研究繼續推進。2011年,世界上第一台商用量子計算機由加拿大D-Wave系統公司開發出來(圖1、圖2),其後IBM、谷歌等大公司也相繼推出了自研的量子計算機產品。中國科研單位及各大公司也紛紛進入量子計算機的賽道,成績十分耀眼。
圖1 D-Wave One的宣傳廣告
圖2 D-Wave系統的內部結構
如今,量子計算已經是一個非常活躍的研究領域,量子計算機被應用於各種場景,比如被用來解決機器學習、人工智慧和網絡安全等領域的問題(圖3)。
圖3 2021年11月,IBM發布第一台封裝100多個量子比特的量子計算機
量子計算機的工作原理
量子計算機是基於量子力學的原理實現的,它利用量子比特來表示信息,並使用量子糾纏等技術實現複雜的量子算法。量子比特可以同時處於多種狀態,這讓它能夠比傳統計算機存儲和處理更多的信息。而量子糾纏則是一種特殊的量子態,它使得多個量子比特之間的狀態相互影響,從而實現複雜的量子算法(圖4)。
圖4 量子糾纏
小知識:什麼是量子糾纏
量子糾纏是一種非常有意思的現象,在這種現象中,兩個或多個粒子以一種特別的方式連接在一起,以至於每個粒子的量子狀態不能獨立於其他粒子來描述,那怕粒子之間相隔很長一段距離。這意味著粒子之間可以說是「糾纏」的,一個粒子的量子態的任何變化都會反映到另一個粒子的量子態中。
量子糾纏可以用來構建量子計算機的量子門,量子門和經典邏輯門一樣也操縱二進位輸入,但它還要涉及到狀態向量(圖5、圖6)。另外,量子糾纏還可以實現量子存儲,用來存儲量子算法的輸入和輸出。此外,量子糾纏也可以用來實現量子傳輸,用來在量子計算機的不同部分之間傳輸量子信息。
圖5 傳統計算機經典邏輯門列表
圖6各種量子門
對於非物理專業的人來說,很容易混淆量子這個概念。雖然量子通常是原子、光子、質子、中子、電子等基本粒子的統稱,但量子不是粒子,它本質上是用來計量能量的最小單位的物理量。量子的概念最早由普朗克於1900年提出。普朗克認為黑體輻射中的輻射能量不是連續的,而是一份一份地進行,他將每一份的能量稱之為能量子(a quantum of energy),意為最小的一份能量單元。這種按某個最小單位及其整數倍劃分的方式被稱為「量子化」。原子、光子等等之所以常被人們理解成量子,就因為它們是構成物質的最小單位(當然還可以繼續細分,圖7),作為能量的最基本的攜帶者,它們可以在不同的狀態之間進行轉換,從而影響物質的性質。
圖7 基本粒子的結構關係與尺寸關係
傳統計算機依靠控制集成電路對信息進行記錄和運算,而量子計算機則通過控制原子或其他小粒子的狀態進行信息的記錄和運算。傳統計算機採用二進位編碼,通過單個電路的開關之分(或者高電平與低電平的差別)來確定該比特位(bit)的狀態,每個比特只能取一種狀態,要麼是0要麼是1。在這種設計下,如果我們想表達4種不同的符號,就需要2個比特,它們可以組合成4種不同的形態:00、01、10、11。如果想要表達256種可能的符號(比如經典的擴展ASCII碼),就需要8個比特(2的8次方等於256,圖8)。不過,8比特雖然能夠表達出256種狀態,但在同一時間它只能存儲其中的1種狀態。假如我們想要把256個擴展ASCII字符全都存儲下來,就需要256個這樣的8比特存儲單元。1比特稱之為1個字位(bit,簡寫為1b),8比特則稱之為位元組(Byte,簡寫為1B),也就是想要完整存儲擴展ASCII碼錶,至少需要256B大的存儲器。
圖8 二進位擴展ASCII碼錶
到了量子計算機中,這一情況大為改觀。量子計算機的基本信息單位是量子比特(qubit),具有量子疊加的特性,同一個量子比特的狀態既可以是0也可以是1(圖9)。雖然要表達一個ASCII碼字符依然需要8個量子比特,但不同的是,只需要這樣1個8量子比特存儲器就可以包含所有256個字符(2的8次方)。
圖9 傳統計算機1比特有2種狀態(0和1),1量子比特則有2個基態——「|0?」 和 「|1?」 ,每個基態是0和1的疊加
量子疊加的特性使得量子存儲器有著超高的存儲量。印度民間有這樣一個故事:一個棋手陪國王下棋,國王問他想要什麼獎勵,棋手答說,只要在棋盤的第1個小格里放1粒麥子,第2個小格里放2粒,第3小格放4粒,以此類推,下一格都是上一格的倍數即可。國王一開始不以為然,輸了之後兌現承諾,才發現取全世界500年生產的麥子,也填不滿第64個棋盤格子(2的64次方)。量子存儲正如這個棋盤的格子,是呈指數級增長的,假設有一個100量子比特的寄存器,理論上它的容量相當於1.26×10的21次方個1TB的硬碟那麼大,遠遠超出了普通人的想像。當然這只是理論上的一種可能,真正實現量子存儲需要非常複雜的技術(圖10)。
圖10 中國科學家實現的多自由度復用量子存儲實驗裝置
量子計算機不僅容量巨大,它的運算速度也是傳統計算機難以超越的。假設我們有一個100萬條的成員大數據,要想找出其中某個特定的成員,傳統計算機一般採用逐條搜索的方式,可以想像其工作量之大。即使有各種優化算法,這個搜索過程耗費的資源也是驚人的。而量子計算機最大的特色就是它採用的並行計算的方式,比如同時對100萬條記錄進行檢索、驗證,瞬間即可以完成操作,傳統計算機的速度根本難望其項背(圖11)。
圖11 量子計算採用並行計算方式
提示:以上我們僅從便於普通用戶理解的角度出發,分析了量子計算機的工作原理,只是一種形象的解釋,它實際上和專業量子計算機概念有著不小的差距(因為會涉及到很多專業物理學和數學知識),這點還請大家注意。
量子計算機的硬體結構
量子計算機硬體架構基於量子比特網絡構建,量子比特是量子信息的基本單位。這些量子比特通過量子電路相互連接,其電路是一組量子門,控制量子比特之間的信息流。另外,量子電路還要連接到經典計算機上,用於控制量子電路並讀取計算結果。
量子計算機的硬體結構主要有:
量子比特單元(qubits)
量子控制器(quantum controller)
量子糾纏源(quantum entanglement source)
量子操作器(quantum operator)
量子探測器(quantum detector)
量子比特是量子計算機的基本構成單元,它可以同時表示兩種狀態:0和1。量子控制器是用來控制量子比特的,它可以控制量子比特的狀態,以及量子比特之間的相互作用。量子糾纏源則是用來產生量子糾纏的,它可以使量子比特之間產生糾纏,從而使量子計算機的性能更加強大。量子操作器用來操作量子比特。最後,量子探測器用來檢測量子比特的狀態。
圖12 量子計算機機房
量子計算機的軟體結構
量子計算機架構由三個主要組件組成:量子處理器、經典處理器和量子程式語言。量子處理器負責執行量子算法,而經典處理器負責管理量子處理器並為用戶提供接口(圖13)。量子程式語言用於編寫可以在量子處理器上執行的程序。
量子程式語言:用於編寫量子程序的高級程式語言,如Q#、Qiskit、OpenQASM等。
量子編譯器:將量子程序編譯成量子指令,以便在量子計算機上執行。
量子模擬器:用於模擬量子程序的軟體,可以模擬量子程序的執行過程,以及量子程序的結果。
量子調試器:用於調試量子程序的軟體,可以檢查量子程序的正確性,以及量子程序的性能。
量子庫:提供量子程序的可重用組件,可以提高量子程序的開發效率。
圖13 量子計算機架構
量子計算機的局限和挑戰
穩定性是量子計算機當前面臨的最大挑戰。量子計算機的運行依賴於量子比特,而量子比特的穩定性是非常脆弱的,它們很容易受到外界環境的影響而發生變化,這就導致了量子計算機的運行結果不可預測。因此,要想讓量子計算機發揮出最大的作用,就必須解決量子穩定性的問題。
目前量子計算機的局限性有:
1、量子計算機的硬體設備仍然處於發展初期,其可用的量子比特數量有限,而且容易受到外界環境的干擾,使得量子計算機的可靠性和穩定性受到限制。
2、目前量子計算機的程式語言和編程模型仍然處於發展初期,缺乏統一的編程模型和程式語言,使得量子計算機的應用受到限制。
3、目前量子計算機的算法研究剛剛起步,仍然缺乏有效的量子算法。
4、量子計算機所能糾纏的量子位的數量有限。
量子計算機的應用領域
目前量子計算機的主要用途是解決各種複雜系統的問題,如模擬物理系統、搜索大型資料庫、解決密碼學問題等等。它還可以用於機器學習、人工智慧、量子力學等領域(圖14)。
圖14 量子計算機的應用領域
搜尋引擎優化:量子計算機可以更快地搜索大量數據,提高搜尋引擎的性能。
模擬:量子計算機可以模擬複雜的物理系統,從而更好地理解它們的運行原理。
機器學習:量子計算機可以更快地訓練機器學習模型,提高機器學習的性能。
密碼學:量子計算機可以更快地破解密碼,提高安全性。
金融:量子計算機可以更快地分析金融數據,提高金融分析的準確性。
醫療:量子計算機可以更快地分析醫療數據,提高醫療診斷的準確性。
無人駕駛:量子計算機可以更快地分析車輛數據,提高無人駕駛的安全性。
結束語:
量子計算機的發展前景非常樂觀。隨著量子計算機技術的不斷發展,它將能夠解決傳統計算機無法解決的複雜問題,比如量子力學模擬、金融風險分析、機器學習等。量子計算機的發展必將改變我們的生活方式,改善我們的工作效率,提高我們的生活質量。
原文刊登於2022 年 12月 27 日出版《電腦愛好者》第 22 期
END
更多精彩,敬請期待……