你只能窺視一次
這條規則決定了量子計算裡其他的一切:當你讀取一個 量子位元 時,你拿回來的是一個樸素的、古典的位元——一個 0 或一個 1。不是分數,不是混合,也不是一串可能性的清單。就是一個位元。
這感覺很不公平,因為量子位元在你讀取它之前,可以處於一種 疊加態——也就是 |0> 與 |1> 真正同時存在的混合。你也許指望把這個豐富的 量子態 整個掏出來檢查一番。但你做不到。測量 只遞給你一個位元,再無其他,而且你沒法倒帶重問。
玻恩定則
那麼,既然讀取給你的是一個看似隨機的位元,是什麼決定了它究竟是哪一個呢?是態本身。一個量子位元由兩個被稱為振幅的數寫成,一個掛在 |0> 上,一個掛在 |1> 上:
|psi> = a|0> + b|1>
玻恩定則說:讀到 0 的機率是 |a|^2,讀到 1 的機率是 |b|^2。你把振幅的大小取平方,就得到那個機率。因為測量時總得發生*某件事*,這些機率必須加起來等於 1:|a|^2 + |b|^2 = 1。
坍縮
測量不只是*報告*一個值——它會改變這個態。在你讀到 0 的那一瞬間,量子位元真的就變成了 |0>。你再讀一次,每次都會得到 0。疊加態消失了;這種不可逆的跳變就叫做坍縮。
這給單次執行能告訴你的東西劃了一道硬上限。無論量子位元原本承載著 |0> 與 |1> 怎樣精微的混合,坍縮都會把它壓成一個確定的位元,另一種可能性就這麼沒了。你永遠看不到振幅本身——只能看到它們讓其變得可能的那個結果。
不可複製:你沒法先複製一份
有一條誘人的脫身之路:既然測量會摧毀這個態,那何不先把量子位元複製上一百份,再去測量這些副本、把原本的混合重建出來呢?這在古典電腦上是行得通的。但在這裡,它是不可能的。
[[no-cloning-theorem|不可複製定理]] 證明了:不存在任何操作,能拿一個未知的量子態,再造出它的第二份獨立副本。那些讓量子 資訊 變得有用的定律,同時也禁止複製一個未知的態。所以你得到的那唯一一次測量,真的就是你唯一的窗口——根本沒有備份副本可以拿到一旁研究。
圍繞測量來設計
把這三條規則合在一起,設計上的難題就清楚了。你只有一次窺視(每次執行得到一個坍縮後的位元),你得到的那個位元由 |振幅|^2 決定(玻恩定則),而且你沒法先複製一個未知的態來檢查它(不可複製)。量子電腦不是一顆暗地裡把每個選項都算一遍的、更快的古典 CPU——它是一台用來塑造振幅的機器。
所以一個量子演算法的全部工作,就是透過干涉,安排好讓正確答案的振幅在你測量*之前*就變得很大。Grover 搜尋溫和地做這件事,在許多步裡一點點把目標的振幅往上推,從而帶來二次方(平方根)的加速——而不是什麼神奇的指數級加速。Shor 演算法之所以能拿到它那著名的指數級優勢,只是因為因數分解有一種隱藏的結構,可以被它的干涉圖樣所利用;而大多數問題並沒有這樣的結構。