首先我們先來複習一下上個章節所說的東西
首先,經過headamard transform 後 :
∣ψ⟩=2n1x∈{0,1}n∑∣x⟩(1) 接下來經過Oracle Uf :
Uf(∣ψ⟩)→∣ψ1⟩(2) 而後,我們再通過Grover Diffusion Operator,也就是 2∣ψ⟩⟨ψ∣−I ,可以得到 :
∣ψG⟩=(2∣ψ⟩⟨ψ∣−I)∣ψ1⟩=2∣ψ⟩⟨ψ∣ψ1⟩−∣ψ1⟩=2(∣ψ⟩)(1−2n2)−(∣ψ⟩−2n2∣x∗⟩)=(2n2n+1−2−2n))∣ψ⟩−2n2∣x∗⟩(3)
內積的性質(同時也適用於量子)
x⋅y=∣x∣∣y∥cosθ 我們以下圖表是目前的量子態,i0為搜尋目標, 可將其他量子態( ∑∣x⟩−∣i0⟩)視為一個子群,正交於 i0 :
由於 ∣ψ⟩ 和 ∣ψ1⟩ 只在 i0 方向差了個負號,因此我們可以將 ∣ψ⟩ 水平軸為基準映射出 ∣ψ1⟩,並算一下夾角(機率幅總和是 1 ) :
⟨ψ∣ψ1⟩=1⋅1⋅cosθ=1−2n2(4) 在前一節我們有提到,之後經過的diffusion Operator 是將 ∣ψ1⟩ 基於平均的翻轉,並且重新將 i0 機率幅翻為正的,所以我們假設 ∣ψG⟩ 和| ψ⟩ 的夾角為 θ′ ,並帶入(3)
θ′=⟨ψ∣ψG⟩=⟨ψ∣(2∣ψ⟩⟨ψ∣−I)∣ψ1⟩=2⋅1⋅⟨ψ∣ψ1⟩−⟨ψ∣ψ1⟩=⟨ψ∣ψ1⟩=θ(5) 根據(5),我們可以知道兩個角相等,但是 ∣ψ⟩ 、 ∣ψ1⟩ 、 ∣ψG⟩ 都是最原始的狀態,我們必須接著證明不論何時,Diffusion Operator 都是基於 ∣ψ⟩ 的翻轉 :
在上圖中, ∣σ⟩是初始狀態,經過 Uf 後變成 ∣σ1⟩ ,再經過Diffusion Operator 後是 G∣σ⟩ ,首先化簡 G∣σ⟩ :
G∣σ⟩=(2∣ψ⟩⟨ψ∣−I)Uf(∣σ⟩)=2Uf⟨ψ∣σ⟩−∣σ1⟩=2cosα2∣ψ⟩−∣σ1⟩(6) 接著計算夾角 θ :
⟨σ∣G∣σ⟩=⟨σ∣(2cosα2∣ψ⟩−∣σ1⟩)=2cosα2⟨σ∣ψ⟩−⟨σ∣σ1⟩=2cosα1cosα2−cos(α1+α2)=cos(α2−α1)(7) 由此可知
θ=α2−α1(8) 也就是每次翻轉前後會差一個 θ ,也就是說地K次翻轉後,我們可以得到 G∣σk⟩ 的夾角為 :
2θ+θk(9) 不停地經過翻轉後, G∣σ⟩ 會越來越高並且越來越接近 i0 ,也就是說有更大的機率測得正確答案,然而,一但超過某個次數,越到第二象限之後,就會變小,所以我們希望能求得最接近 ∣i0⟩ 的操作次數。
首先是三角函數的性質
arcsinθ≈θ(10) 一開始的 arcsinθ=2n2 ,根據(10),當n很大時
θ=2n2(11) 經過k次之後
(2k+1)(2θ) 而我們希望找到機率波的最接近 i0 , i0 與水平夾角是 2π
(2k+1)(2θ)=2π(12) 將 θ 帶入
(2k+1)(2n1)=2π 簡化整理
k=4π2n−21 因此時間複雜度為
O(2n)=O(N) 和第一種解釋能得到相同的結果。