量子計算機已經成為現實了,但是距離實際應用還有很長很長的路要走。不過不用擔心,真正學過量子計算之後,你就不會對量子計算機的發展有什麼期待了。
疊加
量子計算機並不是直接計算答案,而是在所有有可能的答案裏,隨機挑選一個答案出來。
疊加態的存在,讓量子計算能夠表示這些所有可能的答案。
在量子的世界,粒子的狀態大多不是簡單的 0 和 1,而是處於 0 和 1 之間的某種狀態。這個就是疊加態,也叫作一個量子比特。
一個量子比特處於什麼狀態,是需要測量才能知道的,但是測量結果不能是中間狀態,只能是 0 或者 1 。這個結果是隨機的,我們只能知道得到每種結果的概率是多少。
兩個比特能表示四種結果。但是如果我們需要同時操作這四個結果,在經典的世界,我們就要操作八個比特,但是在量子的世界,就只需要操作兩個量子比特。這是計算能夠加速的其中一個因素。
不過,如果我們沒有辦法控制這些隨機的結果,就只會得到一堆隨機的亂碼而已。
糾纏
隨機測量得到的結果幾乎肯定是錯的。我們要在測量之前,操作這個量子系統的狀態狀態,把得到錯誤答案的概率降到最低。
一對糾纏的粒子,測量出來的狀態,總是會呈現出某些關聯。例如「結果必定相反」、「結果必定相同」、「結果有90%的可能相同」。
這種關聯,並不是在製作糾纏粒子的時候決定好的,我們可以在製作了兩個糾纏粒子之後,才按照情況改變觀測方法,控制兩個粒子的關聯程度,調整結果相同或相反的概率。
在量子計算,糾纏的作用就是能把多個的分開的量子比特變成一個整體。這麼一來,操作其中任何一個量子比特,都相當於操作整體的狀態。
疊加和糾纏,都體現了量子計算的一個特點:我們必須在對量子系統的內在一無所知的狀態下,操控量子系統的整體狀態。
這種一無所知,其實有着莫大的好處。因為我們不知道系統內部是哪一種狀態,所以必須要在考慮所有狀態的情況下對系統進行整體操作。量子的物理性質會幫我們把整體操作應用到所有可能存在的狀態上,實現加速。
具體能加速多少,就看我們能想出什麼操作來提升測量出正確答案的概率了。這是量子計算最困難的部分。據我所知有兩種主要流派,分別類似 Grover’s Algorithm 和 Shor’s Algorithm。
- Grover’s Algorithm 會不斷對整體系統驗證答案。
- 應用範圍很廣,但加速程度有限,不一定比優化過的普通經典算法快。
- Shor’s Algorithm 會大批抵消錯誤的答案。
- 雖然快得出奇,但只對和週期有關的數學問題有效。
所以,量子計算機不僅還要過很久才能實現,就算實現了,對大部分的問題也沒有什麼驚天動地的效能改善。