本文授權轉載於huang萊因哈特的知乎回答
導讀:本文主要介紹了量子計算的基本原理,簡要的量子算法,幾種具體的物理實現方法(如光量子,核磁共振),以及D-wave的構造及工作方式。
要理解量子計算主要從量子算法和量子計算的實現上來看。有些童鞋認為量子計算機不一定比經典計算機快,只適用於特殊情況,需要特殊的算法。這當然沒有錯,但是這個是很片面的。量子計算的優勢主要來自於硬體與經典計算機的完全不同。量子計算的能力主要來自於量子的相干性(疊加態)。這是經典計算機永遠不可能達到的。所以量子計算機的計算速度是一定要大於經典計算機的。
當然就跟經典計算機一樣,需要優秀的算法,才能使計算能力儘量使用。對於量子計算來說,就需要量子算法來使得量子計算機的計算速度得到最大的利用。比較著名的是shor,Grover,quantum random walk。要找到一個量子算法超越所有的經典算法還是有難度的,當然很多童鞋在做,而且這裡也很多關於這些的回答,我也只做過quantumhidden markov model,發了一篇文章就轉向做實現去了,所以我也不去湊這個熱鬧啦。關於量子算法可以參考其他問題的回答,有些還是不錯的,也是專業的。
但是,這裡幾乎沒有人去詳細討論量子計算的硬體(或者只是我沒有看到),如果要去理解量子計算機的工作原理是不可能繞過硬體去討論的。首先,什麼是通用的量子計算機,有沒有標準去衡量。DiVincenzo『s7 requirements for the implementation of quantum computation (http://arxiv.org/abs/quant-ph?0002077)。這7(5+2)個條件是作為量子計算實現的最核心的條件,說到量子計算機就離不開這7個條件是如何做到的。有興趣的童鞋可以自己讀論文。
現在,物理系統的實現已經有很多很多方案了,比如光子(線性光學),核磁共振(NMR),腔QED,量子點(quantumdot),Redberg atom,離子阱(ion trap),超導系統。這些都是十分有前景的物理實現的方法。他們在7個條件中各有千秋,也各有短板,所以現在都不能稱得上最完美的設計。感興趣的童鞋可以自己找論文去讀。這裡就不多說了。
再說說量子計算模型,主要有3種,量子線路模型(quantum circuit mode),one way quantum computation model 和絕熱量子計算模型( adiabatic quantum computationmodel)。量子線路模型是把量子計算過程化成像經典計算一樣有不同的「邏輯門」(當然是量子層面的操控)作用在量子態上,最後得到所期待的量子態。one-way quantum computation model 是把量子計算,化成通過隱態傳輸(teleportation)和測量二維團簇態(clusterstate),使得我們可以得到我們想要的量子操控(量子邏輯門)。絕熱量子計算模型,是通過先把問題劃歸成複雜的哈密頓量(Hamiltonian)的基態(ground state)的問題(即找到基態就可以找到最終結果),然後開始與一個簡單的哈密頓量,通過絕熱過程最後得到所需要的基態。可以證明的是量子線路模型和one way quantum computationmodel,絕熱量子計算模型都是等價的。但是基於這3種模型來設計出的量子計算機是千差萬別的。
我比較熟悉的是光子(線性光學)和核磁共振,腔QED還行。所以我詳細一些說下光子系統和核磁共振系統的實現方法。當然基於約瑟夫森結的超導系統也會提到,畢竟這是大名鼎鼎的D-wave的實現方法。
1.光學系統
首先,量子比特可以是光子的位置(一般來說是用波導),也可以是光子的極化。也就是說,光子出現在波導1中即是|0>態, 出現在波導2中即是|1>態,或者光子垂直極化是|0>,水平極化是|1>。那麼波導分束器(2 個波導耦合來實現)就是一個hadamard門,而對於極化量子比特來說就是PBS(極化分束器)。對于波導量子比特來說相位翻轉門可以是用溫度來控制波導來實現相位變化,也可以用扭曲2個波導耦合來實現相位變化。而對於極化量子比特是用HWP(半波片)或者是QWP(四分之一波片)來實現。這就是通用的單量子比特門。而受控非門可以用非線性光學來實現糾纏,或者採用一組不平衡的分束器,加上後選擇(post-selection。這樣光量子計算機就搭建好了,就可以通用的實現量子線路模型了。
2.D-WAVE的介紹
D-wave量子計算機的最基本的元件就是約瑟夫森結了。約瑟夫森結中定義了量子比特。要理解約瑟夫森結,首先就要理解約瑟夫森效應是什麼。我們把兩個超導體放的特別近(注意材料已經成了超導態了),會產生一種超導電流流過約瑟夫森結,而不需要在約瑟夫森結兩端加上任何的電壓。產生這個現象的原因是,兩個超導體發生了耦合。因為,超導體的波函數在超導體外 (在超導體內是復常數n),當兩個超導體很近的時候,兩個波函數就產生了重疊,這就是耦合,導致了約瑟夫森效應的產生。而d-wave 的量子計算機的量子比特就是運用了這個原理。
這裡是D-wave官方給出的介紹網站,我主要用他們介紹的視頻的截圖(copyright:D-wave company)。Introduction to the D-Wave QuantumHardware
這個就是一個最基本的一個量子比特,首先一個X的地方就是一個約瑟夫森結,一圈一圈的是電感。約瑟夫森結是由導體鈮(Nb)和絕緣體AIO_x組成的。當導體Nb都成了超導態時,就產生了約瑟夫森效應,因為都是超導體,所以就可以產生一個一直在環中轉的電流。這樣我們就可以定義順時針的電流為|0>,逆時針的電流為|1>。而控制量子比特的是用一個外部磁場來辦到,如第一幅圖種外加一個向屏幕外的一個磁場,磁通量為. 然後本身由於超導電流產生的磁通量為
.所以整個系統的哈密頓量就可以得到:
其中 E_J是約瑟夫森結的電荷的電量,C_J是約瑟夫森結的電容。這些都可以根據材料設計而設計。
當我們的電感足夠大時(這個才是這個設計中添加電感的真正原因),外加的磁場時,這個哈密頓量就可以變成了一個像雙勢阱的形式,而兩個勢井,一個就是|0>,另一個|1>。這個兩個勢井是對稱的,所以就一半機率是|0>,一半機率是|1>了。當改變外加磁場時,兩個勢井會不對稱,向一邊傾斜,這樣就控制了量子比特了。
這個還是改進版的一個量子比特,這裡有兩個環,可以用兩個外加磁場來控制,這樣控制就更加精確了。
這個是最終的一個量子比特的設計,紅色箭頭代表的時外加磁場的方向,這樣可以用4個外加磁場進行一個量子比特的控制。
這個是一個完整qubit的設計,橘黃色這塊是調節電感的L值的。
這一塊是loop中current補償系統,為了使得在qubit中的磁通量保持一致,雖說是超導體,但是還是有電流上的損失。所以需要這個補償的設計。
這一塊當然就是測量部分了。最後得到qubit的結果。
這個是一個集合,4行4豎一共8 量子比特的晶片。藍色的是一個這8個量子比特之間的相互耦合。紅色的是跟外面其他單元的量子比特之間相互耦合。
這個就是整個D-wave one的128個量子比特的晶片(CPU)了(8*16)。這就是D-wave one的基本物理實現。
————————————————————————
D-WAVE如何實現量子退火
正如前文所說的那樣,量子退火是屬於絕熱量子計算模型的。假設大家都對模擬退火比較熟悉了。那麼簡而言之,量子退火就是把熱波動(由熱能量把處於低能量的位置翻過一個能量山,以跳出局部最優解)變成了量子隧穿效應(與越過能量的高度成反比,越過能量的長度成指數)。模擬退火算法是慢慢降低溫度,使得達到全局最優解,而量子退火是保持溫度不變,而慢慢降低量子隧穿效應。從而達到全局最優解。這就是量子退火的最基本的思想。
現在就討論一下怎麼基於上面的D-wave晶片(fig 9)去實現這個算法的。
首先,我們要討論一下要解決的問題的哈密頓量是什麼。一般來說,選取的是伊辛模型。
前面說到我們的D-wave one 有128個量子比特(由不同的電流方向定義),當量子比特=|0>, 其測量值是1。而當量子比特=|1>, 其測量值是-1 。而在未測量之前量子比特屬於疊加態。是從 i 的測量變到 j 的測量值的概率。而 h_i 是第i個量子比特的局域場。 是由figJ_{i,j} 8中的藍色和紅色的耦合器所控制。而 h_i 是由fig 4 那4個磁場所控制的。(加一句,藍色和紅色的耦合器,雖然在視頻中看不清是怎麼組成的,但是我知道是用電容和電感進行控制的。)
我們要解的問題就是已知所有的J_{i,j}和 h_i,以求得這個系統的最低能量(求出所有量子比特的測量值是能量最低的)。這個問題是一個NP-hard問題,在經典計算機中是不能有效的求解的。而D-wave就能有效的解決。這就是D-wave的厲害之處。
一開始,整個系統的哈密頓量是這樣的,
A是由一個外加的橫向磁場所構成,B是由一個係數構成。一開始,橫向的磁場很大(A特別的大),所以量子隧穿效應特別明顯。而B=0。隨著時間的變化,我們慢慢的把外加橫向磁場減弱,一直到沒有橫向的磁場,這樣使得最後A=0(量子隧穿效應很小很小,可以忽略),而B這個常數最後變成B=1. 所以最後的系統的哈密頓量就變成了伊辛模型的了,這個過程中,系統自然而然的演變到了最低的能量態了。最後再讀出量子比特中的數據就可以了。
有同學就問了,為什麼D-wave是量子的,有什麼證據沒有。一開始D-wave公司不公布其技術細節,其實現在也沒有公布。所以,學術界一直很懷疑D-wave到底是不是量子的。而2014年的時候,有篇naturephysics的論文證明了D-wave就是量子的。http://www.nature.com/nphys/journal/v10/n3/full/nphys2900.html
結果如下圖所示:
Dw是D-wave上的結果。SQA是量子模擬退火的結果。SA是經典模擬退火法。SD是自旋動力學。我們可以見到D-wave跟SQA是幾乎一樣的,與經典的結果完全不同。所以D-wave是量子計算機無疑。
但是有人說D-wave不是通用的量子計算機,所以不能稱為量子計算機。的確,現在D-wave是只能做到伊辛模型的最小值。但是前面也說到絕熱量子計算模型也是通用的,所以D-wave是有可能成為通用型的量子計算機,而難度在於怎麼把你要解決的問題如何劃歸到以新模型上來。
補充:
其實量子計算機沒有大家想像的那麼遙遠。也許通用型的量子計算機還有很長的路要走,但是有些特別簡單的量子計算機就可以加速一些很基本的問題,比如取樣問題(參見 Experimental boson sampling :Nature Photonics : Nature Publishing Group)。只要我們在電子計算機中加入這個量子計算的元器件就可以加速一些經典的算法。
————————————
核磁共振系統
繼續跟大家討論在NMR(核磁共振)系統中的量子計算的實現。
本質上來說核磁共振,就是原子核在磁場中的進動的。原子核在強磁場中,原子核的自旋與強磁場受到的相互作用。就如同高速旋轉的陀螺(原子核的自旋)有一定角度的傾斜,雖然受到重力(強磁場)的力。但是並沒有倒,反而是繞著豎直的軸在旋轉,就這就是旋進或者進動。在核磁共振中,繞著豎直的軸的轉動頻率就是拉莫爾頻率。(而在化學中,就可以通過核磁共振的頻譜,對照不同的元素的拉莫爾頻率來知道樣本中的成分,這是題外話,與量子計算無關)
現在就必須定量的分析一下原子核在強磁場中的哈密頓量。其中有兩個耦合的效應,一個叫做磁偶極耦合(magneticdipole-dipole coupling),這個是相當於兩個磁鐵,磁場之間的相互作用。另一個是叫J耦合(J coupling),這個是由於原子核的核外的電子云與另外一個原子核的核外電子云有重疊。所以產生了相互影響。但是兩種耦合都可以描述成一種形式,都用J來表示強度。所以整個系統的哈密頓量就是,
其中 i 和 j 是代表不同的原子核。w_0 就是前面所說的拉莫爾頻率。
現在的問題是,我們就是如何改變原子核的自旋方向的問題。如果再在水平方向上加入一個強磁場,的確是可以改變自旋的方向,第一,前面的強磁場已經很強了,很難做到水平方向磁場也強。第二,也不利於量子態的控制。所以人類的智慧就體現出來了,我們可以加一個很微弱的水平電磁場但是於我們要改變的拉莫爾頻率是共振的,所以這樣通過共振就可以慢慢改變其自旋的方向了。水平電磁場是射頻場。這裡我就直接給出射頻場(RFfield)的哈密頓量:
這裡,我們可以看到是由兩個水平方向的電磁場控制(x,y 方向)所以也控制了自旋在兩個方向的變化。而且我們還可以看到,可以用3個變量進行控制,第一個是射頻電磁場的頻率,第二個是電磁場的作用時間,第三個是電磁場的相位(相位)。就通過這3個變量組成一個控制脈衝,然後可以由很多不同的脈衝組成一系列的控制脈衝。這樣就可以十分精確的控制量子態了(也就是任意的單量子門了)。在核磁共振中,很明顯原子核自旋上就qubit=|0>, 自旋下就是qubit=|1>。
好啦。這個就是核磁共振中的量子計算原理。
(本文較原文有所改動,主要是對一些英語專業詞彙翻譯成了中文,如有不妥歡迎指出。同時可以通過原文連結看作者原文)