📗
白話文量子演算法
  • 量子世界的基本數學
  • 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
  • 問題
  • 經典算法
  • 量子算法(Bernstein-Vazarani algorithm)

Was this helpful?

Bernstein-Vazarani

本章節將了解 Berstein-Vazarani algorithm的問題以及算法

問題

我們已知一個布林函數(boolean function):

f:{0,1}n→{0,1}(1)f:\left\{0,1\right\}^n\rightarrow\left\{0,1\right\}\tag{1}f:{0,1}n→{0,1}(1)

布林函數的形式如下:

f(x)=s⋅x mod 2(2)f(x)=s\cdot x\ mod\ 2\tag{2}f(x)=s⋅x mod 2(2)

xxx 為任意n-bit的輸入, sss為 "secret string", 函數 f 會先將 sss字串 和 xxx字串內積後,再mod 2,並輸出結果,而問題就是,請找出字串 sss

經典算法

經典算法中,我們需要n次的query,舉例如下(假設n = 4):

f(1000)=s1f(0100)=s2f(0010)=s3f(0001)=s4f(1000) = s_1\\ f(0100) = s_2\\ f(0010) = s_3\\ f(0001) = s_4f(1000)=s1​f(0100)=s2​f(0010)=s3​f(0001)=s4​

而顯而易見的,完整的字串 sss 就是 s1s2s3s4s_1s_2s_3s_4s1​s2​s3​s4​ ,在此經典算法中,其時間複雜度為

O(n)O(n)O(n)

並且, nnn query已經是經典算法的lower bound,很簡單就能證明, sss 總共有 2n2^n2n 個可能,而每次的query,都能將這個空間一分為二,所以很明顯要 nnn 次才能得出最終結果。

然而量子算法(Bernstein-Vazarani algorithm)卻能加速到

O(1)O(1)O(1)

現在就讓我們來看看是如何做到的!

量子算法(Bernstein-Vazarani algorithm)

下圖是Bernstein-Vazarani算法的結構:

我們先準備n-qbits,並且初始化在 ∣0⟩⊗n|0\rangle^{\otimes n}∣0⟩⊗n 經過Hadamard gate後,query 函數 fff ,再經過一次Hadamard gate後,就能觀測到正確答案,接下來證明一下其正確性:

∣0⟩⊗n→H12n∑x∈{0,1}n∣x⟩→f12n∑x∈{0,1}n(−1)f(x)∣x⟩ =  12n∑x∈{0,1}n(−1)s⋅x∣x⟩ =  12n∑x∈{0,1}n(−1)s1⋅x1⋯(−1)sn⋅xn∣x⟩\begin{aligned} |0\rangle^{\otimes n} &\xrightarrow{H}\frac{1}{\sqrt{2^n}}\sum_{x\in\left\{0,1\right\}^n}|x\rangle\\ &\xrightarrow{f}\frac{1}{\sqrt{2^n}}\sum_{x\in\left\{0,1\right\}^n}(-1)^{f(x)}|x\rangle\\ &\ =\ \ \frac{1}{\sqrt{2^n}}\sum_{x\in\left\{0,1\right\}^n}(-1)^{s\cdot x}|x\rangle\\ &\ =\ \ \frac{1}{\sqrt{2^n}}\sum_{x\in\left\{0,1\right\}^n}(-1)^{s_1\cdot x_1}\cdots(-1)^{s_n\cdot x_n}|x\rangle\\ \end{aligned}∣0⟩⊗n​H​2n​1​x∈{0,1}n∑​∣x⟩f​2n​1​x∈{0,1}n∑​(−1)f(x)∣x⟩ =  2n​1​x∈{0,1}n∑​(−1)s⋅x∣x⟩ =  2n​1​x∈{0,1}n∑​(−1)s1​⋅x1​⋯(−1)sn​⋅xn​∣x⟩​

緊接著,在對每個qbit做一次Hadamard transform,如果 si=1s_i = 1si​=1 ,該qbit會從 ∣−⟩→∣1⟩|-\rangle\to|1\rangle∣−⟩→∣1⟩ ,反之亦然。

Berstein-Vazarni只需要query一次就能得到答案,相較於經典版本,是 n→1n\to1n→1 的加速。

Previous經典 vs Deutsh-JozsaNextSimon's Algorithm

Last updated 5 years ago

Was this helpful?