1. 程式人生 > >漫畫 | 10分鐘看懂量子比特、量子計算和量子算法

漫畫 | 10分鐘看懂量子比特、量子計算和量子算法

而是 空間 bbc 讀取 然而 ec2 技術 完全 光子

請做好準備,即將進入燒腦模式!

技術分享圖片

技術分享圖片

宏觀世界的生活經驗很多都是表象。比如,你可能認為世界的運行是確定的、可預測的;一個物體不可能同時處於兩個相互矛盾的狀態。

在微觀世界中,這種表象被一種叫做量子力學的規律打破了。

量子力學指出,世界的運行並不確定,我們最多只能預測各種結果出現的概率;一個物體可以同時處於兩個相互矛盾的狀態中。

量子計算,就是直接利用量子力學的現象(例如量子疊加態)操縱數據的過程。

在本文中,我們簡單地介紹量子疊加態、量子比特、量子測量和一種實現隨機數據庫搜索的量子算法。

夏天到了,烈日炎炎。當你帶上偏振墨鏡時,從某種程度上講,你就已開始接觸量子計算了。

技術分享圖片

為什麽這麽說呢?因為光的偏振正好“同時處於兩個相互矛盾的狀態”中,也就是量子疊加態。在量子計算中,光子的偏振就可以用來實現量子比特。

首先,光是一種電磁波,組成它的粒子叫做光子。電磁波的振動就像繩子抖動一樣,可以朝這兒偏也可以朝那兒偏,形成各種各樣的偏振。

技術分享圖片

技術分享圖片

其次,偏振墨鏡就像一個篩子,只有跟篩子的縫隙方向一致,光子才能“鉆過去”。如果跟篩子的縫隙方向垂直,光子就被完全“攔住”了。

用繩子的抖動比喻光子的偏振,你就很容易理解了。

技術分享圖片

如果光子偏振方向跟縫隙方向既不垂直也不平行,而是呈一定角度,又會怎樣呢?

如果你在鉆過去的朝↗方向偏振的光子後面,再放一個只過濾↑光子的偏振鏡,就會發現一個非常詭異的量子力學現象:大約有一半兒↗偏振光子穿過了偏振鏡,而且偏振方向都變成了↑。

技術分享圖片

這個時候,運用高中學過的矢量合成知識,我們可以試著解釋這個現象。

由於光子的偏振既有方向又有大小,我們可以將每個光子的偏振看做一個矢量。於是,它們滿足矢量的加法。

技術分享圖片

由於↗方向的振動等於↑方向的振動加上→方向的振動,我們就可以說,↗偏振的光子可以看作是同時在朝↑和→方向振動。

技術分享圖片

如果你不理解什麽叫同時進行兩種振動,想想你耳朵裏的鼓膜,正是它同時進行多種振動,你才能同時聽到各種各樣的聲音。

技術分享圖片

這個時候,我們就可以試著解釋那個奇怪的量子現象了。如果把一個↗偏振的光子看作是一個光子同時進行↑和→兩種振動,那麽我們可以說,當這個光子路過↑偏振鏡的時候,其中一半兒→振動被擋住了,另一半兒↑振動通過了。

技術分享圖片

然而,這個解釋並不完全對。

如果你朝這個偏振鏡發出一個↗光子,在偏振鏡之後,你並不會接收到一個振動能量減弱了一半兒的光子。而是有50%的幾率接收到一個↑光子;50%的幾率什麽也沒接收到。

技術分享圖片

說到這裏你可能想起來了,這就是量子力學常說的“上帝擲骰子”。

技術分享圖片

如果我們把↑光子看做比特0,→光子看做比特1,那麽,一個↗光子就處於比特0和比特1光子的疊加狀態之中。

如果你硬要用一個偏振鏡去測量它到底是比特0還是比特1,就會發現,測量結果有50%的概率是比特0,還有50%的概率是比特1。

↗光子所攜帶的這種詭異的“比特”就叫做量子比特。

技術分享圖片

電子計算機所做的計算,就是在操縱經典比特。同樣的道理,所謂量子計算機,就是在量子力學允許的範圍內操縱量子比特。

技術分享圖片

不知道你發現了沒有,由於量子比特可以同時處於比特0和比特1的狀態,量子門操縱它時,實際上同時操縱了其中的比特0和比特1的狀態。

所以,操縱1個量子比特的量子計算機可以同時操縱2個狀態。如果一個量子計算機可以同時操縱N個量子比特,那麽它實際上可以同時操縱2N個狀態,其中每個狀態都是一個N位的經典比特。

這就是量子計算機傳說中的並行計算能力。

技術分享圖片

最後,讓我們用量子計算的Grover算法來說明它是如何並行計算的。

假設我們有N個未經排序的數據。如果使用經典算法尋找其中的某個數據x,條件是它(並且只有它)滿足P(x)=TRUE,比方說x代表一個人的工號,P(x)是看他是不是現任CEO。那麽你只能從第一個數據開始,一個一個地看它是不是CEO的工號,直到你瞎貓碰上死耗子。

在這種算法中,計算復雜度是O(N)。

技術分享圖片

在Grover算法中,我們可以將N個數據同時儲存在log2N個量子比特中,然後同時計算N個函數P( )的取值,也就是同時看它是不是CEO的工號。

技術分享圖片

在N個計算結果中,必然有1個結果是CEO的工號,其他結果都不是。但如果你這個時候貿然去“讀取”結果,就會發現,每個結果發生的概率都是1/N。

這就好比你用↑偏振鏡去測量↗光子,得到↑和→的概率各為1/2。

技術分享圖片

Grover算法的思想是,同時計算了N個P( )的取值後,先不要讀取,而是通過量子操作略微增加結果為CEO工號的那個數據發生的概率。

技術分享圖片

數學計算證明,反復重復以上過程 (π√N)/4次之後,你要找的那個數據發生的概率就會達到最大,最終達到(1-2-N)。這個時候如果你再去讀取數據,就會以極大的概率讀到你要找的數據。

技術分享圖片

所以,Grover的量子搜索加速算法,可以將搜索復雜度降低到O(√N),但你成功讀取那個數據的概率永遠也不會達到100%,而是會略小於100%。

從目前的情況看,量子計算只是在少數計算任務中表現的比經典計算更快,例如大數質因子(Shor算法)、隨機數據庫搜索(Grover算法),並且,這種快法不能掙脫量子力學的約束,達到十全十美。

註:為什麽Grover算法的操作必須且最多只能重復(π√N)/4次?

請你想象一個N維空間,每個維度代表log2N個量子比特所存儲的一個狀態。由於這種空間在紙上畫不出來,我們需要進行一些簡化,假設右邊這個二維空間代表那個N維空間。其中一個維度|X>表示你要搜索的數據對應的狀態,另一個維度|s’>表示除|X>以外所有其他N-1個數據相疊加所對應的狀態。

Grover算法的初始狀態,就代表其中一個矢量|s>。

技術分享圖片

Grover算法采用的量子操作,就是像撥動表盤上的時針一樣,不斷將矢量|s>朝著|X>的方向撥過去,每次撥動的角度只能是θ,其中。θ=2arcsin(1/√N)。

註意我們說過,一個量子疊加態跟哪個方向的夾角越小,測量時得到哪個方向的結果的概率就越大。不難計算,將矢量|s>這樣撥動π/2θ?(π√N)/4次之後,它與|X>的夾角最小,測量時得到你要找的正確結果的概率最大。

註意,在這個比喻中,我們沒有考慮N個狀態之間的相位,但這並不影響討論的結果。

技術分享圖片

轉自:http://www.sohu.com/a/150417986_224832

漫畫 | 10分鐘看懂量子比特、量子計算和量子算法