閘與電路
阿達馬閘(Hadamard gate, H)
大多數量子演算法的第一步,是拿一個本來持有確定答案的量子位元——比如 |0>——然後把它「打開」,讓它在 0 和 1 之間真正處於未定狀態。阿達馬閘就是做這件事的工具。給它一個 |0>,它會產生 |0> 與 |1> 的等權疊加;給它一個 |1>,它會產生類似的等權混合,但內部帶著不同的符號。與其把它想成擲硬幣,不如想成讓硬幣旋轉起來:量子位元此刻以一種精確、可以被完整描述的方式懸在兩種結果之間,而正是這份精確的平衡,是後續各個閘所依賴的基礎。
對於這裡的「疊加」到底帶來了什麼,最好誠實以對。經過一次 H 閘之後,如果你立刻測量這個量子位元,得到的只是 0 或 1,各佔 50/50 的機率——沒有魔法,也沒有平行地算出所有答案。真正的威力出現在後面:H 塞進 |1> 分支裡的那個符號,讓各個分支在演算法執行過程中彼此干涉,於是錯誤答案可以相互抵消、正確答案得到增強。阿達馬閘的作用,是先把這些分支創造出來;電路的其餘部分則負責編排它們如何干涉。
兩點實用說明。和每一個量子閘一樣,H 是可逆的,而且它是自身的逆——連用兩次,你會精確地回到出發點,兩次疊加相互干涉、彼此抵消。還有,它很少單打獨鬥:在許多量子位元上鋪一層阿達馬閘,接上糾纏閘,再來一輪收尾的干涉,這就是從格羅弗搜尋到蕭爾分解等演算法的基本骨架。
H|0> = (|0> + |1>)/sqrt(2), H|1> = (|0> - |1>)/sqrt(2)
H 把每個基態都送入等權疊加;注意 |1> 那一項上的負號——正是這個相對符號,使得之後的干涉成為可能。
阿達馬閘並不能讓量子位元「一次性嘗試所有答案」——在 H 之後立刻測量,只會得到一個隨機的 0 或 1;它的用處只來自之後各分支之間的干涉,而這些分支正是它打開的。
又稱
另見