
作者 | 馬超
出品 | 程序人生(ID:coder_life)
近日谷歌的有關量子霸權的論文登上了Nature雜志150年刊的封面位置,而再次罷占各大媒體的頭條位置,其實這篇文章(https://www.nature.com/articles/s41586-019-1666-5)之前曾經短暫上過NASA的網站,筆者也曾經介紹過過相關論文的情況詳見https://blog.csdn.net/BEYONDMA/article/details/101151544?utm_source=app,而這次美國的伊萬卡公主甚至也直接發推,官宣美國實現量子霸權。
雖然這次谷歌的論文中聲稱他們的量子計算機僅用200秒就完成了傳統計算機需要上萬年才完成的任務,不過ibm等公司也公開回懟稱,如果優化算法超算也僅需要幾天時間就可以完成,完全談不上什么霸權。其實筆者后面也會講道量子計算應用的領域有限,此次的量子采樣任務也的確和量子霸權關系不大,媒體略顯過度炒作了,筆者本文繼續使用最通俗的語言與代碼來帶各位讀者體驗一下量子霸權。
什么是量子霸權
通俗的講就是量子計算機碾壓傳統超算的算力。量子計算的速度之源其實是量子比特,以谷歌本次所講的量子芯片為例,其內部構造如下:

我們可以看到與傳統芯片不同的是量子單元由于量子糾纏的存在是有特定的關聯關系的,這種不同計算單元中存在的糾纏關系是傳統超算各計算單元所不具備的性質。以IBM有關leverage secondary Storage.的論文所述例子如下,當然這只是文中片斷僅用于示例:

也就是說在某種特定任務的情況下,量子芯片每增加一個量子單元那么它的算力可以呈指數級上漲,而傳統計算機每增加一個CPU其算力只能線性上漲。那么隨著量子單元的增加,量子芯片的計算能力必將遠超現在的超算。
量子計算的限制
由于量子單元所表示的量子經特并不是簡單的0和1,還有疊加態與相互的糾纏態,其數學表達式非常復雜,無法用于通用計算,對于每種計算任務都需要為量子計算單獨設計算法。換言之量子計算機并不是通用計算機,只能用于特定的任務。
量子霸權的由來
由于量子計算的性質十分復雜,需要非常高超的數學知識才難設計量子算法,而且應用的領域不廣,所以在很長一段時間里人們還沒有太重視量子計算機的發展,直到用于因式分解的量子算法shor橫空出世,說起來其基本并不復雜,具體如下:
步驟1.隨機取正整數a,a
步驟2.定義函數,求函數f(x)的周期r,如果r為奇數則重取a,再求r,直到r為偶數為止。
步驟3.由和可用的輾轉相除法求與N的最大公約數n1,n1即為N的一個因子。至此N的因式分解即完成。
這個算法的精髓就是步驟2,它將因式分解問題轉化為了求周期r的問題,而求周期的小能手傅里葉變換恰是量子計算的擅長所在。我們知道傅里葉變換是將函數由時域映射到頻率域的過程,而頻率就是周期的倒數,所以周期問題可以以用傅里葉變換求解,而傅里葉變換的算子與量子比特契合度較高,是量子計算的拿手好戲。所以所謂量子霸權的邏輯是SHOR算法能夠攻破rsa算法,而rsa算法又是整個信息安全的基石,所以掌握了量子計算機就等于破解了整個信息安全身份認證體系,從而實現霸權。可以說如果沒有SHOR算法的提出,那么也就沒有量子霸權的概念了。
用Python體驗量子算法
目前IBM推出的qiskit是非常棒的Python量子模擬器,不過最近新注冊用戶可能有些困難。如果各位讀者之前有IBM Q的帳號可以到他們在線的Notebookhttps://quantum-computing.ibm.com/jupyter環境去感受一直量子傅里葉變換,當然讀者如果有Python3.6和C++的編程環境,直接使用pip install qiskit命令即可完成安裝, 具體量子傅氏變換的代碼及注釋整理如下:
import math
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
import warnings #忽略告警
warnings.filterwarnings( 'ignore')
#定義量子傅里葉變換函數qft
def qft(circ, q, n):
"""n-qubit QFT on q in circ."""
forj in range(n):
fork in range(j):
circ.cu1(math.pi/float( 2**(j-k)), q[j], q[k]) #套用傅里葉就換
circ.h( q[j])
n = 3#量子比特數量
q= QuantumRegister(n)
c = ClassicalRegister(n)
qft_n = QuantumCircuit( q, c) #定義量子電路,后面可以可視化
qft(qft_n, q, n)
fori in range(n):
qft_n.measure( q[i], c[i])
print(qft_n.qasm)
# 可視化
from qiskit.tools.visualization import circuit_drawer
circuit_drawer(qft_n,filename= './qft_circuit') #可視化
然后打開在你運行以上代碼的目錄打開qft_circuit文件就能看到咱們剛剛定義的量子電路了,具體效果如下:

谷歌所做的工作
本次谷歌的量子計算機是一塊包含54個量子比特的超導量子計算芯片Sycamore ,不過可惜的是其中一個比特損壞了,所以實際是53量子比特,它使用超低溫狀態下的鋁實現約瑟夫森結,整體運行在20mK以下的環境,以保證超導的狀態。
本次的計算任務是量子采樣,簡單的理解就是量子狀態的采集,這個任務可以被廣泛應用在量子力學的研究中。根據結果來看Sycamore 200秒約可采樣100萬次,并且最終結果的保真度預計有0.2%;作為對比,谷歌預計超算 Summit 要得到保真度為0.1% 的結果,需要耗費1萬年。
不過值得一提的由于SHOR算法要求的計算錯誤率不能超過0.7%,所以目前以Sycamore 的精度還不能承擔破解rsa體系的任務。由于量子不確定性效應,隨著量子比特的增加,控制整個計算芯片的難度也大大增加,谷歌科學們甚至提出了使用機器學習的方式,這在我之前的博客中已經有說明了(https://blog.csdn.net/BEYONDMA/article/details/101151544?utm_source=app)這里不加贅述了,不過能實現如此多單元的量子計算機也實屬創舉。
寫在最后
雖然量子計算只能應用于特定場景,且量子霸權主要也主要是指量子計算可以破解rsa安全體系,但是也不能否定本次谷歌在量子計算領域的進展與成果。客觀的講谷歌只是邁向了通向量子霸權之路的第一步,但是所有偉大的IT項目都是從“hello world”做起的。
用谷歌CEO皮柴的話講這就是這一里程碑對量子計算世界的意義:一個充滿可能性的時刻。
☞20 行 Python 代碼說清量子霸權!