【技術】初嘗量子計算開放果實

IBM、D-Wave相繼開放其量子計算平臺,分別介紹其“求15的質因數”與“地圖填色問題”官方案例,以體驗與傳統開發之間差異。

一、引子:佳果香腮尚未緋[1]

當今兩大領跑者IBM與D-Wave(Google聯合NASA采購過其計算機),已先后對其量子計算能力進行了部分開放或開源[2][3](分別為去年5月、今年1月)

受其“誘惑”筆者近兩個月到相關園子里做了一圈調查體驗(注:筆者與大多數IT從業者一樣,在量子計算、量子物理方面背景為零),三句話概括當前感受的話:

  • 果甚香
  • 果未甘
  • 有藩籬

2015年Google曾實測D-Wave 2X(1000+個量子位)量子退火方式計算機,對規模為1000比特的問題,相比用傳統硬件模擬退火算法要快上10^8倍[4]。這種退火(Annealing)方式能將一部分NP-Complete復雜度問題轉換為多項式復雜度,具體通過將問題先編寫/映射成QMI指令再物理作用到量子比特上的方式來進行,本文中將以官方文檔中的“地圖填色問題”為例做體驗式介紹。而在更高級的機器學習圖像識別領域,Google也已公開過實績[5](2009年)

IBM則采用了更為通用的量子門設計模式,能對一元二元乃至多元量子比特做相當于經典邏輯門的計算。這種Universal的架構,能用于處理Shor算法這樣在已知量子算法中堪稱復雜而最具實際價值的問題——因為它能用來攻破當今數字安全基石RSA加密的數學核心、即“大質因數分解”;本文也將介紹IBM官方文檔中“求15的質因數”的實例。不過IBM通用設計仍只實現了5個量子位[6],據稱幾年內將達到50位、實現“量子霸權”(即計算力超過地球所能容納的最大傳統計算機 注:未考慮DNA NUTM計算機)。

那么為什么兩家要先后對這一尖端、高價值的研究成果予以開放呢?

答案是“生態圈”。盡管量子計算已經取得了一定成果,但距離實用商業化還有較長一段距離(45年[^MIT_enval]);而如讀者很快將領略到的,量子計算與傳統開發之間存在著極大差異(如果不是說完全不同的話~),且仍處于比傳統匯編語言更初級的階段。佳果雖好,尚未緋紅,要讓更多傳統人才加入量子計算領域、研究出更多算法/應用,盡快提升自家果園的成熟度的話,開放,應該會是一個多贏的選擇。

限于調查時間,文章主干之外一定還會存在未盡問題,將以“#延伸思考#”標簽標識;而限于篇幅,對于主干內容之外的關聯知識,也將標記“#擴展閱讀#”標簽、或提供外部鏈接方式。

二、果園外的藩籬

即便只是想要一睹佳果芳澤,都需翻越過幾片并不算低淺的藩籬,

  1. 需一定的量子物理知識

量子力學(Quantum Mechanics)奠基人費曼和波爾都曾告誡過自己學生,“不要問為什么,而只要搞清楚量子力學允許你去做什么”,此后100多年大家確實只是照著這樣做、就已收獲了豐碩果實:

  • 電子一脈:晶體管、電腦、手機…
  • 光子一脈:激光
  • 其他:能源、核聚變

可另一方面,先賢的話也確實界定了量子力學的理解難度——尤其是因為其有違直覺(counter-intuitive),后文將會擇要講解理解量子計算所需的兩個量子力學知識:

  • 量子疊加態(superpostion)
  • 量子糾纏(entanglement)
  1. 缺乏中文資料
    量子力學的普及文章是有的,但截至發稿為止、尚未見到對兩大陣營開放平臺的較為深入的中文評測、對比。
    因此,文中也會適當出現英文用語以便于擴展閱讀、及避免歧義。

  2. 對缺少數學背景的開發者來說較為頭痛的數學算式
    主要是線性代數,但很多又是專門用來表征“有違直覺”的量子力學的,如狄拉克符號、布洛赫球面、貝爾不等式,足以令心智不堅者卻步。好在相關的英文版維基百科更新得很完整及時,可供查證。

  3. 概念多多,卻缺乏系統逐級深入的資料(即便是英文的院系教程),需自行篩選整理才能深入

循著筆者的足跡,可望以盡量短的路徑穿越過這些藩籬。

三、D-Wave的量子果園

D-Wave果園坐標(依照推薦足跡順序)

3.1 第一站,qbsolv工具范例

只需搭建有cygwin/unix + python + make環境qbsolv需被make),就能輕松執行起demoStates.sh觀看退火算法(模擬器)得出的結果,

  • 輸入:美國51州的關聯定義usa.adj,空白美國地圖blank_US_state_map.svg
  • 輸出:已填色美國地圖usa.qbout.xaa.svg,中間文件usa.qubo,usa.qbout
圖3-1 D-Wave qbsolv工具范例“美國地圖填色”運行結果

四色問題屬于NP-Completed復雜度問題,傳統專業課必教、易于描述但卻神秘(19世紀提出至今未獲人工證明),很適合用來展現量子計算的能力。

最初GitHub上的這個官方Sample運行結果還不正確,提交Bug后修改了usa.adj文件中兩個州的鄰接關系解決了問題。

3.2 第二站,“開關組游戲”講解QUBO問題

緊接著第二站,Quantum Computing Primer的1.3節、1.4節給出了簡單易懂的“開關組游戲”例子,簡而言之,就是我們要能令如下算式取得最低值的x序列解,

QUBO問題:求令此算式取最低值的x解(Q為矩陣,x為向量)

D-Wave的退火式量子計算最擅長解決的這種QUBO問題[7](二次非約束二進制優化,目前有簡述成“離散最優化”的),可更直觀的表述為下圖,

圖3-2 開關組游戲 - 求weight、strength矩陣乘積最小解
(圖3-2 出處[8])

引入兩個概念就能解釋這個游戲,

  • 權重(weight):由每個開關上的數字標識,相當于QUBO算式中的Qii,當該開關打開時將計入合計值
  • 強度(strength):由兩個開關之間的數字標識,相當于QUBO算式中的Qij,當兩個開關均打開時將計入合計值

在D-Wave官方資料中,會對weight、strength命名為h、J,或是a、b、以及Qii、Qij,請注意其實質即可。

問題在于,這樣的一個圖論“游戲”,是無法簡單求解的,而只能暴力求解(對每個開關嘗試開或關),也就意味著NP復雜度(=O(2^N)),在10個開關時還算好,當有100個開關時、嘗試次數就已暴漲到1,267,650,600,228,229,401,496,703,205,376(=10^30)

據估算,此游戲的開關數達到500個時,傳統計算機就得計算到宇宙末日了……

奇妙的地方來了。

3.2.1 量子疊加態 - 初階簡易理解

在量子計算機中,最基本的單元——量子比特(quantum bit,簡稱qubit),或者說上述游戲中的“開關”,是“同時”以1(開)或0(關)方式存在的。沒錯,你可以把這段話多讀上幾遍。

這就是研讀量子計算所需涉及的兩個量子力學主題中的一個——疊加態(superposition)。量子力學是那么的“有違直覺”(counter-intuitive),所幸這個簡化版的解釋已足夠了解D-Wave的例子了。

你只需看作,這些量子“開關”在猶豫不決于它們該處于何種狀態,對于給定的如前圖的“開關組游戲”,傳統情境下還需要人工逐一去遍歷嘗試,而在微觀量子情境下,所有的可能性已經同時并存在那里了!而退火機制則提供了一種方式,通過施加然后撤除特定的“權重、強度”磁場(即Q矩陣,參照QUBO算式)、量子“開關”進入然后又脫離疊加態、決定自己“開”或“關”(稱為“坍縮”),最終整體安定于一個“最低能量狀態”,也就求得了QUBO問題的最優解或次優解(QC Primer - 1.4)。IBM的量子門機制則留待后述。

重要的一點,量子計算機的結果是概率式(probabilistic)的,不同于傳統計算機的決定式(deterministic)。也就是說運行幾百或幾千遍,重復出現次數最高的、才是“最優解”中真正的最優。當然這種額外開銷對于10^30這樣的傳統計算指數級成本來說可以忽略,而且作為副產品的“次優解”、對很多研究來說恰恰是大有用處的。

“沒有對比就沒有傷害”,100個開關時, 原本需高達1030次的遍歷(O(2N)),使用100個量子開關,1次經過控制的“坍縮”就可能解決;因此核心問題已經轉變成、如何將目標問題轉換成QUBO問題?

糾正:目前不少非專業新聞中報導量子計算之所以性能卓著是因為“除了0、1之外,還能表示‘0或1’狀態”(于是…三進制?),純屬訛傳。

#擴展閱讀# 如果不介意額外切換出去20分鐘,有一個經典實驗更具體的再現了“疊加態”、量子的這種“猶豫不決”,那就是雙縫干涉實驗(關鍵語句:“電子同時通過了兩條狹縫,然后,自己和自己發生了干涉!”“一旦想要觀察電子到底通過哪條狹縫?干涉條紋便立即消失了!”)

3.3 第三站,軟件架構(Software Architecture

原文濃縮為下圖,只需看QUBO的部分。

圖3-3 D-Wave軟件架構
(圖3-3 出處[9])

具體到開源的qbsolv“美國地圖填色”范例,目標問題(這次是地圖填色,而非開關組了)、也需要被表征為一個QUBO問題或者說QUBO矩陣,具體是通過adj2qubo.py,將美國51州相鄰關系數據轉成了usa.qubo文件,其格式非常簡單:

c 中間文件usa.qubo,表征了一個Q矩陣,將成為qbsolv工具的輸入
c AK                 <--- c打頭為注釋行,AK是州名縮寫
  0 0 -1             <--- 定義權重Qii,所以前兩位相等,第三位即權重值
  1 1 -1 
  2 2 -1 
  3 3 -1             <--- 注意用4個物理位來定義一個邏輯節點(4色)
c AK   1 neighbors  4 external couplers  <--- 注釋,將定義AK內部連接
  0 1 2              <--- 4個物理位之間的窮舉連接
  0 2 2 
  0 3 2 
  1 2 2 
  1 3 2 
  2 3 2 
c AK linked to   HI  <--- 注釋,將定義AK與HI之間連接
  0 40 1             <--- 定義強度Qij,前兩位為關聯qubit序號,第三位即強度
  1 41 1 
  2 42 1 
  3 43 1 

這個Q矩陣將會被神秘(但已開源)的qbsolv工具用模擬退火算法生成一個最優解usa.qbout(本例中是204個量子位的序列,每個州需用4個位表征,原理后述),如果開啟qbsolv的-r seed隨機種子,還能獲得不同的解。最終plotmap.sh將被用來基于usa.qbout對空白美國地圖SVG文件填色。

那么,adj2qubo.py又是按照什么算法基于一份地區相鄰關系數據、決定出QUBO矩陣中權重與(連接)強度的取值的呢?

3.4 第四站,官方編程手冊四色問題詳解

最后一站,會略有燒腦情節

限于篇幅精力只做簡述,以便體會“目標問題如何轉為QUBO問題”。如需開發解決新問題,還請參考原文。

如何通過設置Q矩陣使得目標命題的要求條件被蘊含其中,從而在最終QUBO算式的最低能量解“火退石出”(退火)時、讓X向量自動指向目標命題的解呢?

  • QUBO算式:f(x) = SUM(Qii Xi) + SUM(Qij Xi Xj),退火能在給定Q矩陣情況下、自動調整X向量、取得最低值解
  • Q矩陣:Qii=節點i的權重,Qij=節點i,j之間連接的強度
  • X向量:Xi=節點i,經典態下取1或0
方法一,通過預設特定的Qii、Qij,使得不合適的量子比特Xi組合無法成為最低值解

觀察兩個qubit(量子比特)X1,X2的情況,f(x) = Q1*X1 + Q2*X2 + Q12*X1*X2(權重Qii簡化表示為Qi,后同)。

  • X1=X2=0時,f(x)=0。只需設置Q1<0, Q2<0就能使得這種情況被排除(即其他解永遠會比0取值更低)
  • X1=X2=1時,如果想把這一種相等情況也排除,該怎么設置?
    使得Q1 + Q2 + Q12 = 0就能排除了!
  • 綜合而言,不妨令Q1=-1, Q2=-1,然后Q12=2就能排除X1=X2

這就是最簡單的,滿足了“兩個量子比特有且僅有一個為1”這一要求條件的Q矩陣取值;而這一條件,就可以被映射到“四色問題”中“一個地區有且僅有一色有效”這樣的命題條件上(可自行計算,4個qubit或更多時設置Qii=-1, Qij=2仍能滿足該條件)。

回顧前文的usa.qubo權重內部連接的取值,是不是正是-12。任意一個地區(如AK)也都需要4個qubit來表征(代表四種顏色)。

方法二,用兩個以上物理位(chain)表征一個邏輯位,一組邏輯位(unit cell)表征一個命題對象,進一步設置對象間連接的強度值

圖3-4 地區的物理比特表征,及地區間不同色命題條件表征
(圖3-4 出處[10])

我們先看左側、即一個地區,竟然用了8個“qubit”來構成。可其實你只需要記得這是“考慮到了硬件可行性”的物理qubit,每排的2個物理qubit會映射到一個邏輯qubit、這才是usa.qubo中定義的一個節點。而這種由4個邏輯qubit(合成1個unit cell)表征的地區,還能進一步連接到其他地區(如右側)滿足“不同色邏輯關聯”(命題條件)的需求。

#擴展閱讀# 用多個而非一個物理qubit來映射一個“邏輯qubit”,是因為需要在表征命題對象的邏輯qubit組內部建立起“完全連接”(兩兩之間都有連接),但硬件架構上無法直接對4個qubit建立完全連接,可參看硬件概述 1.1、1.2中的圖解

幾個要點:

  • chain的內部取平均值
    用來表征一個邏輯qubit的多個物理qubit被稱為chain,chain內的物理位的權重是要取平均值的(e.g.-0.5),與其他chain之間的連接強度也取平均值(e.g.1)。若使用qbsolv工具的話已經無需關注物理位映射邏輯位問題了。
  • “一個地區有且僅有一色”條件的滿足
    這個之前已講過,具體到上圖(3-4),就是4個chain(即邏輯qubit)之間的連接強度取值為2,4個邏輯qubit各自的權重取值為-1即可。
  • “相鄰地區間不同色”條件的滿足
    讀者可先自行思索一下如何設置Q矩陣。
    這個命題條件的實質,可以表達為“當某一色在一側被采用,且在另一側也被采用時,對QUBO算式加入懲罰值”;上圖(3-4)中的每個跨地區連接、連接了代表本地區取相應顏色的邏輯位,因此是一個2 qubit的算式,在Q1=0, Q2=0, Q12=1時,兩側都取相同顏色的情況就會遭受f(x)=1的懲罰。Q1=0, Q2=0不影響既有值,因此只需設置代表地區間連接的Qij=1即可。可檢查usa.qubo是否是這樣。
方法三,用多個unit cell的合并(clone)表征特殊的命題對象

首先請注意在qbsolv范例的usa.qubo文件中并沒有看到這種合并(clone),可能是qbsolv中的算法已能自動解決了。

圖3-4:2 采用clone來表征與四個以上州有連接的州
(圖3-4:2 加拿大地圖,出處[10]

官方編程手冊3.4節中的這張圖顯得未免繁瑣——對于有4個以上接壤州的“大州”、竟然需要象“華容道”一樣人工編排各州的位置、來使得用2個unit cell合并出的“大州”能獲得正確的相鄰關系表征?所幸是在qbsolv工具的.qubo文件中、solve.c中都已不再看到相關內容。如果需做這種“clone”(合并)的話,使得兩個邏輯位權重為1、連接強度為-2就能達到“合二為一”的效果。

另外,當QUBO矩陣大到硬件環境不能接受時,可以被分割成subQUBO逐一解決、再合并得出結果[7](參見qbsolv中的solve.c)

※※※※※※※※

D-Wave的量子果園采摘日便至此告一段落。

如上可知,D-Wave的量子計算機具有一定局限性,不過對于能用QUBO算式表征的課題確實性價比很高,硬件方面最新已推出了高達2,000量子比特的四代機(2017/1/25)[11]

#延伸思考# 退火方式對目前機器學習開發帶來的改變。這方面官方雖沒有提供范例,但早已有了實際成果[5]。對于能轉換成QUBO矩陣的問題、可采用“四色問題”的辦法,機器學習則屬于不能人工給出Q矩陣的,怎么辦?可采用類似監督學習的方法,讓程序自行演化出一個最合適的QUBO矩陣(QC Primer - 2.3、2.4)。

四、IBM的量子果園

相比起D-Wave果園在整合上的欠缺,IBM接待四海八荒賓朋的園林就顯得中規中矩得多了:

IBM果園坐標——“量子體驗”Quantum Experience

硬件方面IBM雖然只做到5個量子比特[6],但他們有能力對每個比特做類似于傳統邏輯門的運算、具有通用性,因此才說50個量子比特就已能實現“量子霸權”。

4.1 第一站,零基礎者成長手冊

這第一站,在筆者第一遍訪問時還沒有,屬于新裝修的,不過對零基礎的人來說,確實大大降低了學習曲線的攀爬陡峭度。

4.1.1 Quantum Score(量子五線譜)

初入IBM園林,不僅有高懸的奇香異果,甚至還有悠揚的仙樂飄來。

原來IBM把自家的量子開發IDE,硬是打造成了一部譜曲器(Composer):

圖4-1-1 量子譜曲器
(圖4-1-1 出處[12])

十分直觀易懂,似乎多余的講解都會唐突到設計者的匠心。5個量子比特構成名副其實的“五線譜”(Score),可將右側琳瑯滿目的量子邏輯門拖曳到五線譜上、譜寫成“量子樂章”,最后粉色儀表盤一樣的操作、將從量子位測量結果存放到傳統比特寄存器中。圖示的簡單例子,就使得兩個量子位達到了反向的“量子糾纏態”(后述)。

選擇右上角的委托真機運行(Run)或模擬器即刻運行(Simulate),就能獲得演奏這一段曲目的效果。例如如下的柱狀圖,便顯示了在反向糾纏態下兩個量子比特會取相反值(01、10各半)。注意,第一個量子比特會出現在最低位(最右側),與傳統習慣一致。

圖4-1-1:2 量子譜曲器 - 結果柱狀圖
(圖4-1-1:2 出處[12])

亂入:園林深處,奇幻靈動的量子邏輯門,美妙的神之樂章,竟令人不禁想起了身著紅色神斗衣的搖光星米伊美、在撫動魔音。。。

4.1.2 量子疊加態 - 高階三維度詮釋

在講述IBM架構的特色“量子邏輯門”之前,需要在至今為止的“量子疊加態”定義上做進一步的提升——或者說“升維”解釋。

“同時以0和1方式存在”(參照D-Wave章節),聽起來似乎只是在1個維度上取離散值,可實際上卻需要用3個維度來做可視化表征

先從1維升至2維。引入狄拉克符號,一個量子比特包含兩個能量等級|0>|1>,我們只需借用線性代數中的概念、先簡單將其理解成兩個正交的二維向量,相當于|0>|1>各占據不相干的維度。

圖4-1-2 狄拉克符號表征標準基準(standard basis)
(圖4-1-2 出處[13])

再從2維升至3維。一個量子比特取0或1的概率,可以在這樣一個等式中用系數來表征:a|0>+b|1>,其中參數a、b各自的絕對值平方,將分別映射到取0或1的概率,可知總滿足|a|2+|b|2=1(當a或b等于1時取值|0>|1>)。而a、b不僅可取任意正數負數、甚至還可以是復數,由此推出,

圖4-1-2:2 布洛赫球面
(圖4-1-2:2 出處[14])

上圖稱為布洛赫球面(Bloch Sphere),球半徑為1,分別有X、Y、Z三個維度,量子比特的“奇幻靈動”位置、就必可表征為球面上的某個點,

  • Z軸維度最為直觀,正向|0>負向|1>為標準基準(standard basis)。對量子的測量只能基于Z軸進行,如需測量其它軸坐標、需進行軸對稱變換、即經過量子邏輯門計算(后述)。

    • 注:|0>是能量等級最低的狀態,稱為ground state(基態),物理上通過接近絕對零度的溫控來近似達到(IBM做到了15mk,即比絕對零度僅高0.015度),使得在測量時只有極低概率坍縮為取1值。
  • X軸也并不復雜,當位于正負軸向球面上時,a^2=b^2=1/2,量子都可能有一半概率坍縮到0或1;其它沿著XZ平面相切于球面的點也是類似含義。

    • X軸正負向的極點被命名為|+>|->,稱為對角基準(diagonal basis)。
  • Y軸最有違直觀,不過也無非因為引入了復數i(即i^2=-1),更直觀的話,可采用軸間夾角θ與φ表征一個量子向量|ψ>。

    • 新出現的圍繞Z軸的旋轉角度φ,表征了量子的相位(phase),這一部分也是用傳統計算機所無法模擬出的關鍵所在。

4.1.3 量子邏輯門

理解了布洛赫球面對量子比特的三維表征后,譜曲器中琳瑯滿目的邏輯門的本質就無非就只是各種軸對稱變換和旋轉變換。

單量子位門

第一組:X門

顧名思義,X門將使得量子位繞X軸做對稱變換(即旋轉180度)。常用場景,將居于Z軸頂端的|0>(也是能量被壓至最低的初始狀態)、經X門計算后轉為|1>(激發態)。

其矩陣表述為:

X門變換矩陣

第二組:H門

H門的含義,是繞X軸Z軸的45度夾角軸、作軸對稱變換。其作用尤為常用,就是使得基態|0>被轉變成|+>,即具有平均概率的疊加態。

之前我們說過,對量子比特只能做基于Z軸的測量,那么如何做基于X軸的測量呢?只需先進行H門轉換(軸對稱是可逆操作),再基于Z軸測量即可。

其矩陣表述為:

H門變換矩陣

第三組:Z門、S/S+門、T/T+門

這一組的邏輯門,都屬于相位(phase)操作,即、繞Z軸的旋轉。

Z門,是基于Z軸的軸變換,即180度旋轉,會使得|+>被轉成|->

S門,則是繞著Z軸作90度旋轉,會使得|+>被轉到Y軸正向相位。但因為S門不是對合可逆的,所以設置一個它的逆操作S+門。

T門,是繞著Z軸作45度相位旋轉,也有一個逆操作T+門。在Toffoli門中發揮到作用(本文略)。注:T門也是第一個出現的“非Clifford門”,在“深度”(個數)足夠時,能使得量子比特能位于布洛赫球面的任意位置。[15]

同理可知,量子比特基于Y軸的測量如何實現?先用一個S+門轉換到X軸,再用H門轉換到Z軸,即可基于Z軸測量了。

所有相位變換,令其繞Z軸旋轉的夾角(即相位)為φ的話,可用一個變換矩陣來表達:

相位變換矩陣,e^iφ = cos(φ)+i*sin(φ),φ=[-2π,2π]
多量子位門

CNOT:帶控制位的NOT(Controlled-NOT)

首先請記得多量子比特的情況下,第一個量子比特也是被表示于最右側,例如|0001>表示第一個量子比特為|1>

CNOT門的含義,就是僅當第一個量子位為|1>時,才使得第二個量子取反(即X門),是條件邏輯的基石。

多量子門使得信息在量子比特間獲得關聯流轉。而涉及更多量子位的邏輯門,都可以由之前介紹的邏輯門合成(將在量子算法章節舉例)。

4.1.4 量子糾纏態

在了解了多量子位的基礎上,就能以觀察兩個量子比特為例,引出第二個量子力學核心概念——量子糾纏態。

簡單的說,形如以下算式(參考單量子位取值|+>時),兩個量子既不處于標準基準(如|00>|01>),又在兩者之間表現出“有關聯”(算式分子部分如果是|00>+|01>就屬于無關聯了),就稱它們為處于“糾纏態”(Entanglement)。

反向糾纏的量子對,只可能以相反的坍縮值被測量

事實上,算式分子部分還可以是|11>+|00>,以及|11>-|00>|10>-|01>。這四種狀態,被稱為“貝爾態”(Bell States),所有的雙量子狀態都可以這4種貝爾態為基底作線性組合表述(當然也可以以4種標準基態作基底),盡管無法做三維表述。

著名的“薛定諤的貓”,其實也是在經典實體"貓"和量子"放射性原子"兩者之間構建了“糾纏態”:a|活貓, 原子未衰變> +b|死貓, 原子衰變了>[16]

當對量子的研究也經歷了“無極生太極”(單量子,疊加態)、“太極生兩儀”(雙量子,糾纏態)之后,后續的變化就比傳統二進制時代更為豐富多彩了。

量子糾纏態下“一個量子被測定/坍縮為0時、其關聯量子必定會被測定/坍縮為1”(反向糾纏時)的特性,首先就是,使得信息仿佛能被以“超過光速的速度”傳遞!當然其實這傳遞并不是基于動作,而是基于關聯量子隱形傳輸(以1993年IBM的Bennett等六人團隊的研究為開始[17])、量子加密等一系列研究已不斷基于糾纏態結出碩果(至今,中科大專家領銜鋪設的量子通信京滬干線已達到了2000km的水平[18][19])。

希望對量子力學方面做更全面了解的IT技術者,推薦參考張天蓉老師的科普文章,以及郭光燦院士的公開課視頻

如何在計算環境中產生一對糾纏態的量子比特呢?有了邏輯門就十分簡單,

圖4-1-4 量子門實現雙量子位糾纏態(反向)

利用之前的知識可知,對q[0]使用了H門使之進入了疊加態(|+>),對q[1]則使用了X門使之反轉為|1>,如此一來,在CNOT門的作用下,最終坍縮的結果只可能是|10>或者|01>(記得第一位位于最右端),實現“糾纏”。

(細心的讀者可以發現這一邏輯門設置與圖4-1-1是一樣的,其最終測量結果也就是圖4-1-2所示的結果)

#擴展閱讀# 三粒子糾纏態。進一步擴展到三個量子比特時,會出現拓撲學中有趣的Borromean環和Hopf環。[20]

4.2 第二站,完整用戶手冊——量子算法

有了更堅實的基礎概念、量子門工具打底,就可以去采摘更具實用價值的果實了。

筆者第一次來訪時就只有這第二站的“完整用戶手冊”,等到出了簡明扼要的“新手手冊”才深切感受到內容編排效果的差異…(當然這也可能是完整版手冊的作者確實懂得的太多不適應科普簡化所致)

建議,可直接跳到“量子算法”章節(新鏈接),這部分是完整版手冊特有的。

4.2.1 量子計算發展史簡介

完整用戶手冊中講解的經典算法,都曾在量子計算發展史上具有重大意義。為此我們先回顧一下“歷代記”。

1981年5月,理查德?費曼在波士頓MIT校園、做了題為“Simulating Physics With Computers”的報告,使得計算機科學家也開始關注量子力學。
1992年12月,Deutsch–Jozsa算法問世,這也是第一個顯示出量子計算能比傳統計算提升指數級性能的算法。
1994年,Shor算法問世于貝爾實驗室,量子計算的研究才真正成為學術界及一些大型工業研究部門的矚目課題——因為Shor算法大幅降低了“大質因數分解”的復雜度、動搖到了被認為最不可破解的RSA加密算法的基石!
1996年5月,Grover算法同樣問世于貝爾實驗室,將遍歷查找的復雜度降低為N的根號倍,這使得常用的對稱鍵加密算法也受到了挑戰。
2001年7月,IBM研究中心研制出一臺7量子比特的NMR(核磁共振)計算機,并成功用它演示Shor算法做了15=3x5的質因子分解。
2011年5月,加拿大D-Wave公司公布了第一臺128量子比特的“商用量子計算機”D-Wave-One,并售出了1000萬美金的高價。
2013年5月,谷歌與NASA合作成立了量子人工智能實驗室,配置了512位的D-Wave量子計算機,邀請科學家參與量子機器學習的研究。
2016年5月,IBM開放量子體驗平臺。
2017年1月,D-Wave將qbsolv工具開源。

量子算法如何對“同時存在的2^N種可能性”做出驚鴻一瞥、取得目標解的呢?讓我們借著名的Shor算法做一了解。

4.2.2 Shor算法——大質因數分解

當一個整數大到232位數時, 已經需要2,000個CPU年來求解其質因數了,這屬于一個復雜度呈指數增長的NP-Hard問題,也因此被用作為RSA加密算法的核心。

尋階問題(Period finding)

早在1970年代,就發現若能破解另一個NPH問題——求得取模指數方程的“階”,就能降低質因數分解的復雜度。

階(Period)的定義:對于給定的N(因數分解的對象)和a(與N互質),找到能使得a^r-1成為N的倍數的最小的那個r,該值就稱為“a對N取模的階(period)”。

如何保證a與N互質呢?可參照一下多數開發者都應該學過的、能快速求出最大公約數的GCD算法(歐幾里得輾轉相除法)。

舉例而言,令N=15、a=7,遍歷嘗試過程如下,

使得取模為1的第一個指數r,就是階。

IBM這篇完整手冊對“period”的描述有失直觀,其實r的本質是一個周期數,即a^0 mod N等于1、直至a^r mod N再次為1之間、其實余數是以周期性循環出現的(如1,7,4,13,1..,由模乘的特性決定)。

從階到質因數分解

首先需要找到一個偶數階。隨機取a,如果GCD算法獲得與N的公約數則直接得到質因數,否則滿足互質可求階,階為奇數時重選a即可,統計已證明絕大多數的階為偶數。

第二步,a^r-1N的倍數,就意味著N的質因數(通常只有2個,否則破解難度就更低了)有極高概率分別分布在它的兩個因數之中!

  • a^(r/2)-1不可能是N倍數(否則r/2應該才是階)
  • a^(r/2)+1也不是N倍數時,即上式右側的兩個乘數都不可能包含N的所有因數、而只可能各自都包含(至少)一個。于是“質因數分解”問題簡化為、將N分別與a^(r/2)-1a^(r/2)+1做GCD運算。
  • a^(r/2)+1是N倍數時,重選隨機數a

量子計算簡化尋階問題

限于篇幅本文需做出較多的省略。Shor算法中會涉及Deutsch–Jozsa算法中用到過的量子干涉(interference)特性、Grover算法中用到過的神諭酉矩陣電路、以及相位估算(phase estimation)算法需深入了解這些概念的讀者可查看相關各章節

首先,“神諭”矩陣(Oracle)是一個當符合特定值時會促成振幅放大(amplitude amplification)、否則維持基本不變的特殊酉矩陣。如下圖、就是經過兩次(兩種)Oralce矩陣變換后、符合特定值的表征比特獲得高出平均值振幅的圖例。

圖4-2-2 Oracle矩陣變換的效果

反復這一“搖簽”一樣的過程,就最終能獲得一根“神諭”的上上簽……

f(x) = a*x mod N 就可以被作為一個Oracle矩陣Ua。繼續以a=7, N=15為例,從“x=1”起,輸出(7)作為新的x輸入首尾相連的話(注:相當于a^r mod Nr=1,2,3…),將滿足1 → 7 → 4 → 13 → 1 → …的周期循環。這種Ua矩陣可以通過如下的量子門電路實現:

U7電路,輸入為1(Q4經過X門bit-flip為1),輸出將為7

上圖紅框部分即為U7電路(a=7),可自行證明其滿足上述輸入輸出周期循環的要求(原理參見Markov and Saeedi 2012)。

有了Ua電路,通過相位估算法就能近似求得Ua矩陣的特征值(eigenvalues)、即e^iψ周期(參照相位變換矩陣)——a的階r特征向量使用[0,0,…,1]即可(因為a^0=1)。(為了求得高精度,這里還用到了一個技巧,即不直接用Ua來求,而是使用特征值相同的Ub(b=a,a^2,a^4...a^(2^p); 2^p≈N^2))

為了搭建Ua“模乘”(modular multiplication)這樣的量子電路、還涉及到量子操作必須能“可逆”的特性,對此感興趣的可參考可逆量子電路(reversible classical circuits)

D-Wave的退火機制目前尚無法實現Shor算法[21]

※※※※※※※※

#擴展閱讀# “量子糾錯”:在有量子門的真機環境中(退火機制下無此需求),伴隨著物理原理的問題、如退相干(Decoherence),使得需為糾錯校驗付出額外的資源。

4.3 第三站,Composer或QASM

量子譜曲器(Composer)在第一站中已經做過說明。IBM用戶手冊中每一篇主題的最后,都有量子門的示例,并可以直接點擊用譜曲器打開,或是直接觀看計算結果,十分方便。

當你使用Composer時會要求你登錄。無需申請賬號,國內使用GitHub賬號即可。

另外,凡是能在譜曲器中打開的量子五線譜,都能通過點擊位于量子門右側的“QASM”分頁切換到QASM代碼模式,這種量子匯編代碼本身就很直觀,加上能與可視化編輯的五線譜互換后就更加通俗易懂了。

圖4-3 QASM量子匯編代碼
(圖4-3 出處[12])

4.4 第四站,IBM量子體驗社區

這里也是IBM做得相對更好的地方,直接面向互聯網集思廣益,突出了開放平臺的初衷。

筆者目前并未在社區中深入更多,不過看到過一份量子門版的解“地圖填色”問題的實例,讀者可自行參考。

圖4-4 5地區填色問題
圖4-4:1 5地區填色問題量子門設置

五、小結:風雨幾經到枝魁[1]

2017年初,MIT、也就是36年前費曼第一次宣講量子力學可與計算機結合的大學,評選了全球十大突破性技術[22],實用型量子計算機名列其中,成熟期預估為4~5年。

量子計算的前路并不平坦,與傳統計算之間有著較大的差異,也因此IBM與D-Wave紛紛著力于宣傳相關的技術,邀請有志人士參與了解、凝聚成更強的社區力量。希望本文能為相關的知識普及、范式轉換盡一份微力。


  1. 詩句取自網絡:https://zhidao.baidu.com/question/15979565.html ? ?

  2. IBM Is Now Letting Anyone Play With Its Quantum Computer:https://www.wired.com/2016/05/ibm-letting-anyone-play-quantum-computer/ ?

  3. Quantum Computing Is Real, and D-Wave Just Open-Sourced It:https://www.wired.com/2017/01/d-wave-turns-open-source-democratize-quantum-computing/ ?

  4. Research Blog: When can Quantum Annealing win https://research.googleblog.com/2015/12/when-can-quantum-annealing-win.html ?

  5. Research Blog: Machine Learning with Quantum Algorithms https://research.googleblog.com/2009/12/machine-learning-with-quantum.html ? ?

  6. IBM thinks it’s ready to turn quantum computing into an actual business, 2017/03: https://qz.com/924433/ibm-thinks-its-ready-to-turn-quantum-computing-into-an-actual-business/ ? ?

  7. Partitioning QUBOs for quantum acceleration: http://www.dwavesys.com/sites/default/files/partitioning_QUBOs_for_quantum_acceleration-2.pdf ? ?

  8. D-Wave Quantum Computing Primer: https://www.dwavesys.com/tutorials/background-reading-series/quantum-computing-primer ?

  9. D-Wave Software: https://www.dwavesys.com/software ?

  10. Programming with D-Wave: Map Coloring Problem: https://www.dwavesys.com/sites/default/files/Map%20Coloring%20WP2.pdf ? ?

  11. The D-Wave 2000Q System: https://www.dwavesys.com/d-wave-two-system ?

  12. IBM Quantum Experience - Composer: https://quantumexperience.ng.bluemix.net/qstage/#/editor ? ? ?

  13. IBM Quantum Experience - Full User Guide, Section1-2: https://quantumexperience.ng.bluemix.net/qstage/#/tutorial?sectionId=71972f437b08e12d1f465a8857f4514c&pageIndex=1 ?

  14. IBM Quantum Experience - Full User Guide, Section1-5: https://quantumexperience.ng.bluemix.net/qstage/#/tutorial?sectionId=71972f437b08e12d1f465a8857f4514c&pageIndex=4 ?

  15. IBM Quantum Experience - User Guide, Section3-3: https://quantumexperience.ng.bluemix.net/qstage/#/tutorial?sectionId=050edf961d485bfcd9962933ea09062b&pageIndex=2 ?

  16. 科學松鼠會 ? 走近量子糾纏(8)——糾纏態及實驗: http://songshuhui.net/archives/83645 ?

  17. 科學松鼠會 ? 走近量子糾纏(18)——量子隱形傳輸(一): http://songshuhui.net/archives/84316 ?

  18. 量子通信京滬干線——歐美沒有的,讓我先來做| 徐令予: https://zhuanlan.zhihu.com/p/25616262?refer=fengyun ?

  19. China’s 2,000-km Quantum Link Is Almost Complete: http://spectrum.ieee.org/telecom/security/chinas-2000km-quantum-link-is-almost-complete ?

  20. 科學松鼠會 ? 走近量子糾纏(13)——從糾纏態到Qubit: http://songshuhui.net/archives/83860 ?

  21. IBM Quantum Computing Push Gathering Steam: https://www.nextplatform.com/2016/07/15/ibms-quantum-story-reels-interest ?

  22. 重磅發布:《麻省理工科技評論》發布2017年全球十大突破性技術榜單 http://www.v4.cc/News-3674473.html ?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容