量子計算機的工作原理如何解釋?

比如以3個量子位的量子計算機為例進行解釋,如何利用的糾纏態,如何讀出最終結果?如何實際工作的?為啥D-wave公司利用量子退化演算法的計算機不算量子計算機?


更新與6月3。已完結。特別長,慎點。

——————————————————————————

為了方便閱讀,把提綱列一些(非邏輯順序,時間順序)

1. 寫於5月25

一些量子計算的大概,簡要的量子演算法和 photonic quantum computing的物理實現。

2. 更新於5月27

D-wave 量子計算機的物理實現,包含 josephson junction的控制和如何實現量子計算的qubit的。

3. 更新於5月29

以硬體的觀點來看,D-wave one 是如何實現quantum annealing演算法的。

4. 更新於6月3

NMR量子計算的實現,及其一些拾遺。

寫在前面:

很多小夥伴們覺得本文太多英文術語,不好閱讀。我十分同意,但,我這樣做基於3點,

1. 我本職工作是Phd,所以寫論文,發論文是我的主業,而且由於本人本,碩,博都是在國外,所以有些術語英文對我來說更加舒服。

2. 很多英文術語就是直譯過來,即使我寫了中文,您也不一定能從字面意義理解。而且現在詞典這麼發達,有道啥的都很方便。並且,很多概念不是我寫出中文就能明白的,也方便於給有興趣的同學去查wiki。

3. 本人認為在知乎上大部分小夥伴都是愛智求真的,如果您真的是感興趣於量子計算,我相信這一點點的困難還是沒有問題的。

還有小夥伴建議說我只說十分基礎的概念,不需要進入到這麼細節,說很少有人知道這些細節(其實還有很多技術細節,我沒有描述,留下的全是最重要的,如果我是讀者,少了這些細節我就無法完完全全理解)。首先,我要說的是,如果我只說一些概念,比如 「讓所有的量子位進行演化,演化結束後每個量子位退火成為確定的二進位位,這些具體二進位位的狀態即為計算結果(引用)」。 那麼怎麼演化?怎麼控制?人類能不能操作量子比特?。。。結果是給人十分不明確,感覺量子計算就是科幻,很玄的東西。

所以本文的定位是盡量簡要的給出量子計算機的硬體構造,和量子計算中的操控,如何實現量子計算的。這篇文章只求盡量正確,嚴格的表述出來,總比一些錯誤百出的很多的新聞稿,和某些知乎上的答案要好的多得多。如果你可以可以認真的讀完,一定可以收穫很多。

總之,感謝大家的建議。但是我依然以這樣的行文風格。謝謝。

——————————————————————

——————————————————————

正文:

其實早就想答有關量子計算機實現的問題了,而且很多人對量子計算只是一知半解(或者漏洞百出),只是最近一直改一篇論文,加上沒有玩知乎多久。現在終於有時間了。要做到簡單解釋量子計算機的工作原理,這個還真是不容易,那我就盡量以簡單去解釋解釋好了。

要理解量子計算主要從量子演算法和量子計算的實現上來看。有些童鞋認為量子計算機不一定比經典計算機快,只適用於特殊情況,需要特殊的演算法。 這當然沒有錯,但是這個是很片面的。量子計算的優勢主要來自於硬體與經典計算機的完全不同。量子計算的能力主要來自於量子的coherence (superposition)。這是經典計算機永遠不可能達到的。所以量子計算機的計算速度是一定要大於經典計算機的。

當然就跟經典計算機一樣,需要優秀的演算法,才能使計算能力盡量使用。對於量子計算來說,就需要量子演算法來使得量子計算機的計算速度得到最大的利用。比較著名的是shor,Grover,quantum random walk。要找到一個量子演算法超越所有的經典演算法還是有難度的,當然很多童鞋在做,而且這裡也很多關於這些的回答,我也只做過quantum hidden markov model,發了一篇文章就轉向做實現去了,所以我也不去湊這個熱鬧啦。關於量子演算法可以參考其他問題的回答,有些還是不錯的,也是專業的。

但是,這裡幾乎沒有人去詳細討論量子計算的硬體(或者只是我沒有看到),如果要去理解量子計算機的工作原理是不可能繞過硬體去討論的。首先,什麼是通用的量子計算機,有沒有標準去衡量。DiVincenzo『s 7 requirements for the implementation of quantum computation (http://arxiv.org/abs/quant-ph?0002077)。這7(5+2)個條件是作為量子計算實現的最核心的條件,說到量子計算機就離不開這7個requirements是如何做到的。有興趣的童鞋可以自己讀論文。

現在,物理系統的實現已經有很多很多proposes了,比如photonic(linear optics),NMR,cavity QED,quantum dot,Redberg atom,ion trap,Josephson junction。這些都是十分有前景的物理實現的方法。他們在7個條件中各有千秋,也各有短板,所以現在都不能稱得上最完美的設計。感興趣的童鞋可以自己找論文去讀。這裡就不多說了。

再說說量子計算模型,主要有3種,quantum circuit model,one way quantum computation model 和 adiabatic quantum computation model。Quantum circuit model 是把量子計算過程化成像經典計算一樣有不同的「邏輯門」(當然是quantum operation)作用在量子態上,最後得到所期待的量子態。 one-way quantum computation model 是把量子計算,化成通過teleportation和測量two dimensional cluster state,使得我們可以得到我們想要的quantum operation(quantum gates)。adiabatic quantum computation model, 是通過先把問題劃歸成複雜的Hamiltonian的ground state的問題(即找到ground state就可以找到最終結果),然後開始與一個簡單的Hamiltonian,通過絕熱過程最後得到所需要的ground state。 可以證明的是Quantum circuit model和one way quantum computation model, adiabatic quantum computation model都是等價的。但是基於這3種模型來設計出的量子計算機是千差萬別的。

我比較熟悉的是photonic(linear optics)和NMR,cavity QED還行。所以我詳細一些說下photonic和NMR的實現方法。當然Josephson junction也會提到,畢竟這是大名鼎鼎的D-wave one and two的實現方法。

linear optics。首先,qubit可以是光子的位置(一般來說是用waveguide),也可以是光子的polarization。也就是說,光子出現在waveguide 1中即是|0&>, 出現在waveguide 2中即是|1&>,或者光子vertical polarization是|0&>,horizontal polarization是|1&>。那麼waveguide beam splitter(2 個 waveguide coupling來實現)就是一個hadamard gate,而對於polarization qubit來說就是PBS(polarization Beam splitter)。對於waveguide qubit來說phase shifter gate可以是用溫度來控制waveguide來實現phase change,也可以用扭曲2個waveguide coupling來實現phase change。 而對於polarization qubit是用HWP(half wave plate)或者是QWP(quarter wave plate)來實現。這就是universal single quantum gate。 而C-not gate 可以用nonlinear optics來實現entanglement,或者採用一組不平衡的beam splitter,加上post-selection。這樣光量子計算機就搭建好了,就可以通用的實現quantum circuit model了。

——————————————

更新5月27

終於又有時間了,那就和大家繼續討論量子計算機的實現問題。本來打算是先說NMR的,但是大家似乎沒有太大的興趣。大家只感興趣D-wave quantum computer。那我就先說說D-wave的物理實現方法。其實NMR一直都是被寄予厚望實現通用量子計算機的。我還是會說NMR的,不管有沒有人看。

其實d-wave的josephson junction的工作原理,還得了1k+個贊同。精神可嘉,可惜錯誤比較多,這裡就不點名和給出鏈接了,有興趣的童鞋可以自行對比,畢竟這是科學,希望不要被誤導。

D-wave quantum computer的最基本的element就是josephson junction了。Josephson junction中定義了qubit。要理解josephson junction,首先就要理解josephson effect是什麼。我們把兩個superconductors放的特別近(注意材料已經成了超導態了),會產生一種supercurrent(超電流?)流過josephson junction,而不需要在josephson junction加上任何的電壓。產生這個現象的原因是,兩個超導體發生了coupling。因為,超導體的波函數在超導體外|psi> =ne^{i	heta x}(在超導體內是復常數n),當兩個超導體很近的時候,兩個wave functions就產生了overlap,這就是coupling,導致了josephson effect的產生。(這與waveguide coupling,micro-resonanor coupling原理類似)。而d-wave quantum computer的qubit就是運用了這個原理。

這裡是D-wave官方給出的介紹網站,我主要用他們介紹的視頻的截圖(copyright:D-wave company)。Introduction to the D-Wave Quantum Hardware

這個就是一個最基本的一個qubit,首先一個X的地方就是一個josephson junction,一圈一圈的是inductor。 Josephson junction是由導體Nb和絕緣體AIO_x組成的。當導體Nb都成了超導態時,就產生了josephson effect,因為都是超導體,所以就可以產生一個一直在loop中轉的電流(persistent current)。這樣我們就可以定義順時針的電流為|0&>,逆時針的電流為|1&>。而控制qubit的是用一個外部磁場來辦到,如第一幅圖種外加一個向屏幕外的一個磁場,磁通量為Phi_x . 然後本身由於supercurrent產生的電流形成的磁通量為Phi .

所以整個系統的Hamiltonian就可以得到,

H=-E_J cos{(4 pi e Phi  / h )} + (Phi - Phi_x)^2 / 2L +Q^2/2C_J

where E_J 是josephson junction 所包含的能量,e為一個電子的電量,L為電感的值,Q是josephson junction的charge的電量,C_J是josephson junction的電容。這些都可以根據材料設計而設計。

當我們的L足夠大時(這個才是這個設計中添加inductor的真正原因),外加的磁場Phi _x=h/4e時,這個Hamilonianian就可以變成了一個像雙勢阱的形式,而兩個勢井,一個就是|0&>,另一個|1&>。這個兩個勢井是對稱的,所以就一半幾率是|0&>,一半幾率是|1&>了。當改變外加磁場時,兩個勢井會不對稱,向一邊傾斜,這樣就控制了qubit了。

這個還是改進版的一個qubit,這裡有兩個loop,可以用兩個外加磁場來控制,這樣控制就更加精確了。

這個是最終的一個qubit的設計,紅色箭頭代表的時外加磁場的方向,這樣可以用4個外加磁場進行一個qubit的控制。

這個是一個完整qubit的設計,橘黃色這塊是調節電感的L值的。

這一塊是loop中current補償系統,為了使得在qubit中的磁通量保持一致,雖說是超導體,但是還是有電流上的損失。所以需要這個補償的設計。

這一塊當然就是測量部分了。最後得到qubit的結果。

這個是一個set,4行4豎一共8 qubit的chip。藍色的是一個這8個qubit之間的相互coupling。紅色的是跟外面其他cell的qubits之間相互coupling。

這個就是整個D-wave one的128個qubit的chip(CPU)了(8*16)。這就是D-wave one的基本物理實現。

————————————————————————

更新與5月29

續更。星期五的晚上總是那麼平靜而美好。好了,繼續討論一下,D-wave量子計算機是怎麼基於硬體實現quantum annealing的。

正如前文所說的那樣,quantum annealing 是屬於adiabatic quantum computation model的。假設大家都對模擬退火比較熟悉了。那麼簡而言之,quantum annealing就是把熱波動(由熱能量把處於低能量的位置翻過一個能量山,以跳出局部最優解)變成了量子隧穿效應(與越過能量的高度成反比,越過能量的長度成指數)。模擬退火演算法是慢慢降低溫度,使得達到全局最優解,而quantum annealing是保持溫度不變,而慢慢降低量子隧穿效應。從而達到全局最優解。這就是quantum annealing的最基本的思想。

現在就討論一下怎麼基於上面的D-wave chip(fig 9)去實現這個演算法的。

首先,我們要討論一下要解決的問題的Hamiltonian是什麼。一般來說,選取的是Ising model。

H_{ising}=-sum_{i,j}{J_{i,j} sigma^{z}_{i} sigma^{z}_{j} } - sum_{i}{h_{i} sigma^{z}_{i}}

前面說到我們的D-wave one 有128個qubits(由不同的電流方向定義),當qubit=|0&>, 其測量值是1。而當qubit=|1&>, 其測量值是-1 。而在未測量之前qubit屬於superposition state。J_{i,j} 是從 i 的測量變到 j 的測量值的概率。而 h_i 是 qubit i 的局域場。J_{i,j} 是由fig 8中的 藍色和紅色的coupler所控制。而 h_i 是由fig 4 那4個磁場所控制的。(加一句,藍色和紅色的coupler,雖然在視頻中看不清是怎麼組成的,但是我知道是用電容和電感進行控制的。)

我們要解的問題就是已知所有的J_{i, j} 和 h_i ,以求得這個系統的最低能量(求出所有qubit的測量值是能量最低的)。這個問題是一個NP-hard問題,在經典計算機中是不能有效的求解的。而D-wave就能有效的解決。這就是D-wave的厲害之處。

一開始,整個系統的Hamiltonian是這樣的,

H=- A(t) sum_{i}{sigma_i^x} + B(t) H_{ising}

A是由一個外加的橫向磁場所構成,B是由一個係數構成。一開始,橫向的磁場很大(A特別的大),所以量子隧穿效應特別明顯。而B=0。隨著時間的變化,我們慢慢的把外加橫向磁場減弱,一直到沒有橫向的磁場,這樣使得最後A=0(量子隧穿效應很小很小,可以忽略),而B這個常數最後變成B=1. 所以最後的系統的Hamiltonian就變成了Ising model的了,這個過程中,系統自然而然的演變到了最低的能量態了。最後再讀出qubit中的數據就可以了。

有同學就問了,為什麼D-wave是量子的,有什麼證據沒有。一開始D-wave公司不公布其技術細節,其實現在也沒有公布。所以,學術界一直很懷疑D-wave到底是不是量子的。而2014年的時候,有篇nature physics的論文證明了D-wave就是量子的。 http://www.nature.com/nphys/journal/v10/n3/full/nphys2900.html

結果如下圖所示,

Dw是D-wave上的結果。SQA是量子模擬退火的結果。SA是經典模擬退火法。SD是spin dynamics。 我們可以見到D-wave跟SQA是幾乎一樣的,與經典的結果完全不同。所以D-wave是量子計算機無疑。

但是有人說D-wave不是通用的量子計算機,所以不能稱為量子計算機。的確,現在D-wave是只能做到找Ising model的最小值。但是前面也說到adiabatic quantum computation model也是通用的,所以D-wave是有可能成為通用型的量子計算機,而難度在於怎麼把你要解決的問題如何劃歸到 Ising model 上來。

Something more:

其實量子計算機沒有大家想像的那麼遙遠。也許通用型的量子計算機還有很長的路要走,但是有些特別簡單的量子計算機就可以加速一些很基本的問題,比如sampling problems (參見 Experimental boson sampling : Nature Photonics : Nature Publishing Group)。只要我們在電子計算機中加入這個量子計算的元器件就可以加速一些經典的演算法。

————————————

更新於6月3

今天繼續跟大家討論在NMR(核磁共振)系統中的量子計算的實現。

本質上來說NMR,就是原子核在磁場中的進動的。原子核在強磁場中,原子核的spin與強磁場受到的相互作用。就如同高速旋轉的陀螺(原子核的spin)有一定角度的傾斜,雖然受到重力(強磁場)的力。但是並沒有倒,反而是繞著豎直的軸在旋轉,就這就是旋進或者進動。在NMR中,繞著豎直的軸的轉動頻率就是Larmor frequencies。(而在化學中,就可以通過NMR的頻譜,對照不同的元素的Larmor frequencies來知道樣本中的成分,這是題外話,與量子計算無關)

現在就必須定量的分析一下原子核在強磁場中的Hamiltonian。其中有兩個coupling的效應,一個叫做,magnetic dipole-dipole coupling,這個是相當於兩個磁鐵,磁場之間的相互作用。另一個是叫J coupling,這個是由於原子核的核外的電子云與另外一個原子核的核外電子云有overlapping。所以產生了相互影響。但是兩種coupling都可以描述成一種形式,都用J來表示強度。所以整個系統的Hamiltonian就是,

H_{sys} =1/2( -sum_{i} h omega_0^i sigma_z^i + sum_{i,j} h J_{i,j} sigma_{z}^{i} sigma_{z}^{j} )

其中 i 和 j 是代表不同的原子核。w_0 就是前面所說的Larmor frequence。

現在的問題是,我們就是如何改變原子核的自旋方向的問題。如果再在水平方向上加入一個強磁場,的確是可以改變自旋的方向,第一,前面的強磁場已經很強了,很難做到水平方向磁場也強。第二,也不利於量子態的控制。所以人類的智慧就體現出來了,我們可以加一個很微弱的水平電磁場但是於我們要改變的Larmor frequence是共振的,所以這樣通過共振就可以慢慢改變其自旋的方向了。水平電磁場是RF-frequency field。這裡我就直接給出RF field的Hamiltonian,

H_{control} = - h gamma  B_1 [cos(omega_{rf}t +phi ) sigma_{x} - sin(omega_{rf}t +phi) sigma_y ]

這裡,我們可以看到是由兩個水平方向的電磁場控制(x,y 方向)所以也控制了自旋在兩個方向的變化。而且我們還可以看到,可以用3個變數進行控制,第一個是rf電磁場的頻率,第二個是電磁場的作用時間,第三個是電磁場的相位(phase phi )。就通過這3個變數組成一個控制pulse,然後可以由很多不同的pulse組成一系列的控制pulse。這樣就可以十分精確的控制量子態了(也就是任意的單quantum gate了)。在NMR中,很明顯原子核自旋上就qubit=|0&>, 自旋下就是qubit=|1&>。

而且我就不說很多控制技巧了,比如shaped pulse,composite pulse control。加上這些控制的技巧,錯誤率僅有0.1%或更低。那些說現在量子計算連單qubit也控制不好的,一看就知道是亂說的。

好啦。這個就是NMR中的量子計算原理。

最後,我想說的是,看到題主提到了糾纏態。糾纏態正如我一開始所說,糾纏不是量子計算的本質,量子計算的本質是相干。quantum random walk中不含有任何的糾纏態在裡面,但同樣是通用的量子演算法,quantum annealing也是一樣,沒有任何的糾纏態在裡面,也是通用演算法。量子糾纏的厲害用於量子通信上面。

當然,有量子糾纏可以製備出CNOT gate(通用量子計算機中必要的量子門),但同樣,沒有量子糾纏一樣可以製備出像CNOT gate的量子門。所以不是關鍵所在。當然如果大家還有興趣的話,我可以說一下糾纏態的製備和測量。如果沒有興趣就算啦。當然還有量子控制,量子信息,量子通信這些都是另話了。量子信息,量子通信雖然不是特別熟悉,但本人也是經過專業,系統的訓練過的,也歡迎大家來討論。

(完)

————————————

有什麼要有什麼要討論的,可以在下面留言。有大量的技術細節沒有闡述(當然我也不想闡述過多的細節),所以描述起來可能有不是特別得好。但我可以在評論中補充。這就跟論文一樣,都是改出來的。


最近寫了一篇關於量子計算的小文章:量子計算(一)

作為初學者還有很多理解不夠深入的地方,希望多多指教。

進入公司之後第一次聽到「量子計算」這個概念,一直覺得十分神秘。從維基百科或者知乎上看量子計算機利用量子來提升效率,有極強的並行能力,可以加速很多演算法等。但是個人還是對這個方向了解甚少。直到前幾天聽完組裡面大神的講座,並用《Quantum Computing: From Linear Algebra to Physical Realizations》一書的作為量子計算的入門讀物。讀後豁然開朗,雖然也對這個方向了解也不夠深入,不過還是略做筆記作為分享。作為一個量子計算的初學者,還是有很多理解不夠到位之處,希望大家指正。

  普通計算機一個比特(bit)可以表示 0 或者 1。而量子具有不確定性,這使得一個量子比特(qubit)需要被描述成 α0|0?+α1|1?(量子比特的 0 狀態記作 |0?,1 狀態記作 |1?),其中 |α0|^2+|α1|^2=1。也就是表示了這個量子比特有 |α0|^2 的概率是 |0?,有 |α1|^2 的概率是 |1?。這裡面的 α0 和 α1 都是複數,所以要先取模再平方才是其概率。可以記作 p(0)=|α0|^2, p(1)=|α1|^2, p(0)+p(1)=1。舉例說明:

。。。。。

量子計算(一)

2016年3月20日

-----------------------------------

近期重新閱讀了一些量子計算的演算法,重新整理了一份資料,《量子計算(一)》,供大家參考。後續也會持續更新這些內容。

2017年10月21日


宏觀上來講,我理解為:

我們目前的計算機,拿來跑並行,N個核,撐死能物理並行N個線程。

量子計算機,N個核(qubit),可以並行跑2^N個線程,但是最後只能讀取其中一個線程的結果,而且最終會讀取到哪個線程是(依照一定分布)隨機的,你沒法確定會讀到哪個線程。這就一方面帶來了近乎無窮的計算能力,另一方面需要為量子計算機設計專門的演算法。

我不是搞量子計算的,以上的想法是某次課程的調研作業調研的結果,不知道對不對。


用離子阱實現量子計算的原理請參考Introduction to Ion Trap Quantum Computing 內容簡潔明了,有高中物理基礎應該不難讀懂。


這個講的比較通俗易懂 https://zhuanlan.zhihu.com/p/27387032

不懂量子計算,問了很多大神也只是大概了解了一些,有錯誤請多包涵,並且希望能指出來,先謝過。

經典計算機,執行基礎是與或非三個邏輯門 + 時序控制,基於此可以實現現今計算機中的所有處理單元。無論是數值計算還是其他的邏輯處理,內存控制,都由這三個門搭建而成。有的寫死到電路,有的需要由程序構建。

這三個門,除了非門,都是不可逆的——也就是無法知道前面的輸入狀態。

量子計算是使用量子的特性,從頭實現了一套自己的邏輯門。

量子邏輯門與經典邏輯門完全不同,並且量子邏輯門是可逆的,可以知道輸入狀態。

與經典比特同一時間只能代表零或一其中一個不同,量子比特可以利用量子疊加特性,同時持有兩種相對的狀態,用以代表同時持有零和一。

這導致每增加一個比特,經典計算機只增加一個狀態,而量子計算機增加一倍的狀態,前提是這些量子比特具有相干性。

由於上述特性,量子計算對於大集合中求有限解一類的問題非常擅長,經常拿來說明的例子就是質因數分解的計算。

疊加態本身可以描述成各個狀態的概率波。其具有普通波的各種特性,如干涉……

電子雙縫實驗中,位置處於疊加態的電子,其出現位置的概率波可以通過雙縫進行自我干涉,繼而改變了自己在雙縫後面出現在某處的概率。

量子計算使用測量獲得有限的計算結果。

測量本身是粒子間的作用。目的是破壞量子系統的疊加態,讓其表現為一種既定狀態。

量子計算利用針對性的酉變換(也叫幺正變換)來影響疊加態中各個態的振幅,使得本徵測量的正確結果振幅接近一。


Youtube上有一個關於量子計算機解釋的視頻,播放量6000000次

翻不了,可以將就看下面兩個視頻(一個帶字幕(錄製的),一個不帶)


現在計算機是基於二進位,也就是兩種狀態,比如燈泡只有通電和不同電。我們的cpu,其實裡面有很多納米級小開關,在不停的撥動。

之所以之有兩種狀態是因為金屬通電不通電是最穩定且顯而易見的。

cpu里的一個納米級開關可以表達兩種狀態,兩個納米級開關就是四種,也就是通過那麼多小開關最終表達出你的狀態。

00000000 你可以理解為有8位二進位,每一位,你可以看作一個兩種狀態的開關,通過合作,表達的狀態最大值你可以算出來是255種。

量子計算機,就是一值就可以達到穩定的表達n種狀態。這個難以用普通言語表達。它只需要一個去表達狀態那就是N。

比如破解rsa演算法,2048位的rsa加密要很長時間暴力破解,等你破解完保密有效期都過了。

而如果量子計算機出現,一瞬間就能破解。


經典比特換成量子比特,經典門換成量子門,並且使用的量子門可以模擬任何的量子門。


推薦閱讀:

如何理解「物質波」?
如何理解量子力學中的散射理論?
四大力學在工作實際中都有什麼應用?
「量子」是什麼?
真空態,壓縮態,糾纏態的物理本質到底是什麼?

TAG:量子物理 | 計算機科學 | 量子計算機 |