如何評價Google使用量子計算機在量子化學計算領域取得的最新成果?

原始文獻:

Phys. Rev. X 6, 031007 (2016)

新聞:

【重磅】谷歌量子計算在量子化學領域取得實質突破(附論文) -- 新智元 -- 傳送門


瀉藥,這篇文章挺簡單明了的,想要詳細了解都可以讀讀

文中介紹了兩個實驗,一個是用variational quantum eigensolver解UCCSD方程,另一個是傳統量子計算機的解法,我只讀了前一部分,因為顯然第一個實驗的效果更好,而第二個實驗是用來對比的

基本思路很簡單,用一組ansatz來表示氫分子的基態波函數,|Psi
angle=sum_ic_i|i
angle,其中係數{c_i}待定,能量表達式為

E=langlePsi|H|Psi
angle

他們用量子計算機來計算能量E,然後用經典的方法最小化E,得到係數{c_i}和氫分子的基態能量。

整個演算法的總體框架是經典的,但是求解能量這部分如果用經典演算法的複雜度是O(e^n),量子計算機的複雜度文中沒提,但我大致估算一下應該是O(n^6log^6 n)左右(當然也可能更低),總的來說是非常漂亮的工作,也很有啟發意義。

幾點caveats:

1. UCCSD本身是一個經典近似演算法,和它同級別的其他演算法,比如CCSD,是有經典的多項式解法的,只是由於UCCSD本身特殊的構造,才只有指數解法

2. UCCSD還特別適合量子演算法,因為它使用的ansatz用量子計算機特別容易製備,這個是不容易推廣到其它方法的,實際上,對同級別的CCSD和UCCSD

經典難度:UCCSD &>&> CCSD

量子難度:CCSD &>&> UCCSD

3. 優化演算法還是經典的,這也沒什麼大問題,問題在於量子演算法似乎不能提供能量梯度。實際上在這篇文章中,整個波函數只有一個參數c_i=c_i(	heta),所以直接掃描一遍就可以找到使能量最低的	heta。但是一旦體系大一些,參數的數目是大約O(n^4)增長的,這個時候沒有梯度要完成這個優化問題實在不敢想像

先這樣,如果看的人多再補充

----------

突然發現,類似的實驗其實在我大清已經實現過了(不禁唱起了校歌),比如https://arxiv.org/abs/1506.00443,不過使用的是離子阱實現量子比特,而google他們這篇文章用的是超導量子比特,他們對我大清文章的評價是

「all five prior experiments represent the Hamiltonian in a configuration basis that cannot be efficiently decomposed as a sum of local Hamiltonians, and then exponentiate this exponentially large matrix as a classical preprocessing step」

似乎意思是他們用來演化|Psi_0
angle的哈密頓量H
實現的不夠好,還是指數複雜度的,而Google的實現讓H達到多項式複雜度了(這部分具體怎麼回事還沒有細看~)

----------------------- 分割線 -------------------

補充一下評論中提到的幾個問題

第一個是關於解量子化學問題的複雜度。所有量子化學的演算法,基本上都是在問一個問題:給定原子核的位置,求解電子的波函數|Psi
angle。這個波函數,根據定義,表示了「電子處在每個狀態的概率」,即

P(r_1,r_2,dots,r_n)=|Psi(r_1,r_2,dots,r_n)
angle|^2

其中r_i表示第i個電子的位置(當然電子有所謂的全同性,相互之間是不能區分的,但是和現在說的複雜度的關係不大)。一旦有了這個波函數,一切分子的性質都可以算出來。

波函數|Psi
angle是解薛定諤方程得出來的,但是我們現在先不管解方程,著看錶示波函數的複雜度。最簡單的辦法是把三維空間分出格點,讓r_i遍歷這些格點,每一組{r_i}對應一個數。假如空間的格點數目是k	imes k	imes k,那我們需要存多少個數呢?k^{3n}個!隨著電子數目指數增加的!所以,要不了幾個電子,我們計算機的硬碟都存不下了。

連答案都存不下,還怎麼解呢?

所以,現代量子化學的主要課題之一,就是通過近似,減小儲存波函數需要的參數數目。而找到合理的近似,既能高效的「壓縮」波函數里的信息,又能讓誤差不太大,還要容易從薛定諤方程解出來,就需要運用數學、物理各方面的知識來解決。

好,扯回量子計算。大家可能敏銳的意識到,量子計算機在表示波函數方面擁有巨大的優勢。原理上,因為量子比特的可疊加性,表示波函數需要的k^{3n}個參數,需要的量子比特數目是

log_2 k^{3n}=3nlog_2 k

隨著電子數目僅僅是線性增加的!實際上,這就是量子計算機最初提出的motivation,見Feynman 1981年的文章,「simulating physics with computers」 https://people.eecs.berkeley.edu/~christos/classics/Feynman.pdf

可是最近這些年,眼看著量子計算機真的快要實現了,有人就開始真的研究如何在量子計算機算高做量子化學計算。最初的設想當然是求精確解了,既然困擾經典演算法最大的波函數表示問題都解決了,求精確解應該是水到渠成的。以Matthias Troyer為首的科學家,不僅理論推導,還用經典計算機模擬量子比特,做了水分子的精確計算,發現求解薛定諤方程的複雜度是O(n^9)(Gate count estimates for performing quantum chemistry
on small quantum computers https://arxiv.org/pdf/1312.1695v3.pdf)

這相對於經典計算的指數複雜度已經是質的飛躍。可是量子計算機單次操作時間太長,並且O(n^9)增長還是特別快,所以依照這個複雜度,我們的有生之年恐怕是不會見到量子計算機比經典計算機更快地求解任何一個波函數了

怎麼辦呢?

於是就有了Google和UCSB的這篇文章:經典演算法可以做近似,量子演算法當然也可以。而且他們還找到了特別適合量子計算機做的近似:UCCSD

現在是第二個問題,UCCSD為什麼特別適合用量子計算做。它的全稱叫unitary coupled cluster with singles and doubles。看到這個名字,可能所有單詞都認識,但是不知道意思。這個方法漫長的由來可以講一本書,但是在這裡,我們只需要知道它是一種參數化波函數的方法,

|Psi
angle=U|Psi_0
angle

其中|Psi_0
angle是一枚近似的波函數,U是一個酉變換算符

(如果看不懂括弧中這段,可以跳過

|Psi_0
angle其實是Hartree-Fock的基態波函數,求解很容易。U=e^{T-T^dagger}

其中T是一組激發算符的線性組合,在UCCSD中展開到2階---因為叫singles and doubles

T=t_{i}^{a}c_a^dagger c_j+t_{ij}^{ab}c_a^dagger c_b^dagger c_jc_i

其中參數t_i^a,t_{ij}^{ab}是通過能量最小化確定的。在經典演算法中,這個波函數求能量極其困難,因此並沒有得到大量應用。

)

我們知道所有的酉變換都可以寫成如下形式

U=e^{iS}

其中S是一個厄米矩陣,如果在實數範圍內是則是對稱矩陣。同時根據最基本的量子力學,態隨時間演化的方程是

|Psi
angle=e^{-itH}|Psi_0
angle

其中H是哈密頓量。所以,換句話說,我們讓量子計算機初始化到表示|Psi_0
angle(這件事難度不大,因為這個態很簡單),然後根據參數化的形式把哈密頓量作用在這個態上一段時間,使得tH=-S=i(T-T^dagger),就得到了我們想要的波函數|Psi
angle。其中的T是含有參數t_i^a,t_{ij}^{ab}的,每次我們都可以選定一組參數,從而算出我們需要的哈密頓量和時間,得到對應於不同參數的|Psi
angle

這個波函數在經典計算機上需要指數複雜度才能表示,而「寫下一個哈密頓量,作用在一個態上一段時間」,這件事是量子計算機最喜歡、最擅長做的了!

這就是為什麼製備UCCSD中的波函數十分容易的原因了。而一旦製備出波函數,計算能量雖然費勁一些,卻也不是什麼太困難的事了。


更加精確而又廉價快捷的顯微技術是化學生物學的瓶頸之一,另一個瓶頸可能就是計算技術了,前者為建模提供數據,後者為模型提供動力,只有這樣生物學才能從實驗科學轉變為數理科學,才能形成真正理論體系,才能進入快速發展期!所以沒有更佳的顯微技術突破之前大家還是洗洗睡吧!


推薦閱讀:

如何評價哈佛大學化學與化學生物學系的George M. Whitesides教授?
日本核泄漏會導致海水污染,以後的海鹽都不能吃了嗎?
一定水面上泡沫破裂速度為什麼越來越慢?
為什麼有的人說在中國搞化學科研沒前途?
對於化學競賽有沒有令人拍案叫絕的口訣?

TAG:物理學 | 化學 | 量子計算理論 | 理論化學 | 計算化學 |