📗
白話文量子演算法
  • 量子世界的基本數學
  • Deutsch-Jozsa
    • oracle and query
    • 經典 vs Deutsh-Jozsa
  • Bernstein-Vazarani
  • Simon's Algorithm
  • Gover's algorithm
    • 經典 vs Grover
    • 演算法解釋
    • 演算法解釋 2
  • 參考資料
Powered by GitBook
On this page
  • 1. 經典算法
  • 2. 量子算法

Was this helpful?

  1. Gover's algorithm

經典 vs Grover

本章節只會介紹演算法的結構與時間複雜度,下個章節將會加以解釋

PreviousGover's algorithmNext演算法解釋

Last updated 5 years ago

Was this helpful?

1. 經典算法

在一個沒有任何資料結構排序過的資料庫中,如果要尋找一筆特定資料,那我們只能一筆一筆地尋找直到找到為止,平均需要 N2\frac{N}{2}2N​ ,最糟需要 NNN,因此時間複雜度為 O(N)O(N)O(N) 。

2. 量子算法

Grover's algorithm 的時間複雜度與結構

Grover's algorithm 的時間複雜度為 O(N)O(\sqrt{N})O(N​) ,以下為其結構 :

每個 Grover iteration ( GGG )可視為一個步驟,其結構如下 :

Oracle UfU_fUf​是個phase Oracle,輸入一個函數 f:{0,⋯ ,N−1}→{0,1}f : \left\{0,\cdots,N-1\right\} \rightarrow \left\{0,1\right\} f:{0,⋯,N−1}→{0,1} ,輸出如下 :

達到以下效果

∣i⟩→(−1)f(i)∣i⟩|i\rangle\rightarrow(-1)^{f(i)}|i\rangle∣i⟩→(−1)f(i)∣i⟩

Grover's algorithm 其實很簡單,就是重複做 Grover iteration(也就是 UfU_fUf​ 以及 2∣ψ⟩⟨ψ∣ − I2|\psi\rangle\langle\psi|\ -\ I 2∣ψ⟩⟨ψ∣ − I ) O(N)O(\sqrt{N})O(N​) 次後觀察,即可得到答案。

Grover's algorithm structure