20 行 Python 代码说清量子霸权!
導讀:美國實現量子霸權了嗎?本文用最通俗的語言與代碼來帶各位讀者體驗一下量子霸權。
本文經授權轉自公眾號程序人生(ID:coder_life),作者:馬超
近日谷歌的有關量子霸權的論文登上了Nature雜志150年刊的封面位置,而再次罷占各大媒體的頭條位置,其實這篇文章之前曾經短暫上過NASA的網站,而這次美國的伊萬卡公主甚至也直接發推,官宣美國實現量子霸權。
雖然這次谷歌的論文中聲稱他們的量子計算機僅用200秒就完成了傳統計算機需要上萬年才完成的任務,不過ibm等公司也公開回懟稱,如果優化算法超算也僅需要幾天時間就可以完成,完全談不上什么霸權。
其實筆者后面也會講道量子計算應用的領域有限,此次的量子采樣任務也的確和量子霸權關系不大,媒體略顯過度炒作了,筆者本文繼續使用最通俗的語言與代碼來帶各位讀者體驗一下量子霸權。
01 什么是量子霸權
通俗的講就是量子計算機碾壓傳統超算的算力。量子計算的速度之源其實是量子比特,以谷歌本次所講的量子芯片為例,其內部構造如下:
我們可以看到與傳統芯片不同的是量子單元由于量子糾纏的存在是有特定的關聯關系的,這種不同計算單元中存在的糾纏關系是傳統超算各計算單元所不具備的性質。以IBM有關leverage secondary Storage.的論文所述例子如下,當然這只是文中片斷僅用于示例:
也就是說在某種特定任務的情況下,量子芯片每增加一個量子單元那么它的算力可以呈指數級上漲,而傳統計算機每增加一個CPU其算力只能線性上漲。那么隨著量子單元的增加,量子芯片的計算能力必將遠超現在的超算。
02 量子計算的限制
由于量子單元所表示的量子經特并不是簡單的0和1,還有疊加態與相互的糾纏態,其數學表達式非常復雜,無法用于通用計算,對于每種計算任務都需要為量子計算單獨設計算法。換言之量子計算機并不是通用計算機,只能用于特定的任務。
03 量子霸權的由來
由于量子計算的性質十分復雜,需要非常高超的數學知識才難設計量子算法,而且應用的領域不廣,所以在很長一段時間里人們還沒有太重視量子計算機的發展,直到用于因式分解的量子算法shor橫空出世,說起來其基本并不復雜,具體如下:
步驟1:隨機取正整數a,a<N,且與N互質。一般由輾轉相關法可得
步驟2:定義函數,求函數f(x)的周期r,如果r為奇數則重取a,再求r,直到r為偶數為止。
步驟3:由和可用的輾轉相除法求與N的最大公約數n1,n1即為N的一個因子。至此N的因式分解即完成。
這個算法的精髓就是步驟2,它將因式分解問題轉化為了求周期r的問題,而求周期的小能手傅里葉變換恰是量子計算的擅長所在。
我們知道傅里葉變換是將函數由時域映射到頻率域的過程,而頻率就是周期的倒數,所以周期問題可以以用傅里葉變換求解,而傅里葉變換的算子與量子比特契合度較高,是量子計算的拿手好戲。
所以所謂量子霸權的邏輯是SHOR算法能夠攻破rsa算法,而rsa算法又是整個信息安全的基石,所以掌握了量子計算機就等于破解了整個信息安全身份認證體系,從而實現霸權。可以說如果沒有SHOR算法的提出,那么也就沒有量子霸權的概念了。
04 用Python體驗量子算法
目前IBM推出的qiskit是非常棒的Python量子模擬器,不過最近新注冊用戶可能有些困難。如果各位讀者之前有IBM Q的帳號可以到他們在線的Notebook環境去感受一直量子傅里葉變換:
https://quantum-computing.ibm.com/jupyter
當然讀者如果有Python3.6和C++的編程環境,直接使用pip install qiskit命令即可完成安裝,?具體量子傅氏變換的代碼及注釋整理如下:
import?mathfrom?qiskit?import?QuantumRegister,?ClassicalRegister,?QuantumCircuitimport?warnings??#忽略告警warnings.filterwarnings('ignore')#定義量子傅里葉變換函數qftdef?qft(circ,?q,?n):"""n-qubit?QFT?on?q?in?circ."""for?j?in?range(n):for?k?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)for?i?in?range(n):qft_n.measure(q[i],?c[i])print(qft_n.qasm())#?可視化from?qiskit.tools.visualization?import?circuit_drawercircuit_drawer(qft_n,filename='./qft_circuit')#可視化然后打開在你運行以上代碼的目錄打開qft_circuit文件就能看到咱們剛剛定義的量子電路了,具體效果如下:
05 谷歌所做的工作
本次谷歌的量子計算機是一塊包含54個量子比特的超導量子計算芯片Sycamore ,不過可惜的是其中一個比特損壞了,所以實際是53量子比特,它使用超低溫狀態下的鋁實現約瑟夫森結,整體運行在20mK以下的環境,以保證超導的狀態。
本次的計算任務是量子采樣,簡單的理解就是量子狀態的采集,這個任務可以被廣泛應用在量子力學的研究中。根據結果來看Sycamore ?200秒約可采樣100萬次,并且最終結果的保真度預計有0.2%;作為對比,谷歌預計超算 Summit 要得到保真度為0.1% 的結果,需要耗費1萬年。
不過值得一提的由于SHOR算法要求的計算錯誤率不能超過0.7%,所以目前以Sycamore 的精度還不能承擔破解rsa體系的任務。由于量子不確定性效應,隨著量子比特的增加,控制整個計算芯片的難度也大大增加,谷歌科學們甚至提出了使用機器學習的方式,這里不加贅述了,不過能實現如此多單元的量子計算機也實屬創舉。
06?寫在最后
雖然量子計算只能應用于特定場景,且量子霸權也主要是指量子計算可以破解rsa安全體系,但是也不能否定本次谷歌在量子計算領域的進展與成果。客觀的講谷歌只是邁向了通向量子霸權之路的第一步,但是所有偉大的IT項目都是從“hello world”做起的。
用谷歌CEO皮柴的話講這就是這一里程碑對量子計算世界的意義:一個充滿可能性的時刻。
有話要說👇 Q:你覺得量子霸權重要嗎? 歡迎留言與大家分享 猜你想看👇更多精彩👇在公眾號對話框輸入以下關鍵詞查看更多優質內容!PPT|?報告|?讀書|?書單|?干貨?大數據|?揭秘|?Python|?可視化AI|?人工智能|?5G|?中臺機器學習|?深度學習|?神經網絡合伙人?|?1024|?段子|?數學 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的20 行 Python 代码说清量子霸权!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你用Python实现查找算法
- 下一篇: 6个案例手把手教你用Python和Ope