傅里葉變換
前文中我們了解了Hadamard變換,本文將要介紹傅里葉變換。
傅里葉變換的使用方式和Hadamard變換非常類似。
a圖大家應該不陌生了,這個就是我們在簡單的量子算法(二):Simon's Algorithm中介紹的Simon‘s algorithm,而b圖,只是把這個電路中的Hadamard門變成量子傅里葉,就成了一個可以period finding的電路。而period finding是Shor算法的基礎。
那么傅里葉白變換的矩陣表示長什么樣子呢?
一個N比特的傅里葉是這樣的:
其中 \(\omega =e^{\frac{2 \pi i}{N}} =\cos \frac{2 \pi}{N}+i \sin \frac{2 \pi}{N}\)
第i行j列的就是 \(\omega ^{ij}\) ,需要注意的是,這里的ij都是從零開始計數。
說這么麻煩,\(\omega,\omega^2, \omega^3,…,\omega^{N}\) 其實就是 \(x^N=1\) 的N個解。
那么這個 $ \omega $ 又有什么特殊之處呢?
如果我們令:
$x=e^{\theta_1 i} =\cos \theta_1 +i \sin \theta_1 $
$y=e^{\theta_2 i} =\cos \theta_2 +i \sin \theta_2 $
那么,
是以,\(\omega\)的相乘,表達出來是 \(\theta\) 的相加。
如果讓 \(\theta_1= 2 \pi /N\) ,那么\(\omega,\omega^2, \omega^3,…,\omega^{N}\) 所對應的 \(\theta\) 就正好是 \(\theta_1,\theta_1*2,\theta_1*3,\theta_1*4,…,,\theta_1*N\)。
正巧是一個圓里等分的幾個。
一些和w有關的有趣事實:
- \(1+\omega+\omega^2+\omega^3+…++\omega^{N-1}=0\) (因為把他們加在一起相當於是一個圓里的幾個等分點加在一起,正好回到了原點)
- \(1+\omega^j+\omega^{2*j}+\omega^{3*j}+…++\omega^{(N-1)*j}\) 為0 如果 \(j \neq 0\) 為N 如果\(j=0\)
- \(\frac{\omega^{nj}-1}{\omega^j-1}=0 (j \neq0)\)
- \(\omega\) 的共軛轉置是 \(\omega^{-1}\)
量子傅里葉變換和普通的傅里葉變換有有什么區別呢?
量子傅里葉變換更快
簡單里離散傅里葉變換,需要的時間是 \(N^2\)
快速傅里葉變換的是 \(N\log N\)
而量子傅里葉是 \(n^2= \log^2N\)
量子變換的兩個有趣性質
量子傅里葉的電路圖如下圖,輸入是 \(\sum_{i=0}^{N-1} \alpha_i |i\rangle\) 輸出是 \(\sum_{i=0}^{N-1} \beta_i |i\rangle\)
Convolution-Multiplication
如果我們輸入的量子態的概率幅為 \(\alpha_0 , \alpha_1, \alpha_2, \alpha_3,…, \alpha_{N-1}\) ,輸出的量子態的概率幅為 \(\beta_0 , \beta_1, \beta_2, \beta_3,…, \beta_{N-1}\)
則,當我們將輸入的概率幅變為:\(\alpha_{N-},\alpha_0 , \alpha_1, \alpha_2, …, \alpha_{N-2}\) 輸出的概率不變。(這里寫得是概率,不是概率幅,概率是概率幅的平方)
why?
原本的輸入他們對應的輸出是這樣的
\(\beta_0=\alpha_0+\alpha_1+\alpha_2+…+\alpha_{N-1}\)
\(\beta_1=\alpha_0+\omega\alpha_1+\omega^2\alpha_2+…+\omega^{N-1}\alpha_{N-1}\)
\(\beta_i=\sum_j \omega^{ij} \alpha_j\)
當我們改變的我們輸入的順序后
\(\begin{align}\beta_1'&=\alpha_{N-1}+\omega \alpha_0+ \omega^2 \alpha_1+\omega^3\alpha_2+…+\omega^{N-1}\alpha_{N-2}\\ &= \omega^{N}\alpha_{N-1}+\omega \alpha_0+ \omega^2 \alpha_1+\omega^3\alpha_2+…+\omega^{N-1}\alpha_{N-2} \\ &= \omega(\alpha_0+\omega\alpha_1+\omega^2\alpha_2+…+\omega^{N-1}\alpha_{N-1}) \\&= \omega \beta_1 \end{align}\)
在等式的第二步之所以能直接在\(\alpha_{N-1}\)前面加上一個\(\omega^N\) ,是因為 \(\omega^N=1\)
\(\beta_1\)似乎和\(\beta_1'\)長得不一樣,他們中間還差了一個\(\omega\),但是前面我們說了,\(\omega\)是 \(x^N=1\)的解,則,這兩個的平方是一樣的,即,他們的概率是一樣的。
概率一樣意味着什么?
意味着,當我們把我的輸入數據shift后,我在后面的測量得到每種結果的可能性是一樣的。
periodic function
傅里葉變換可以改變周期函數的周期,如下圖:
不過比起a圖,我們更喜歡b圖的周期,只在周期處有值,其余處的概率為0,且所有周期處的概率是相等的。
那么QFT真的能做到這一點嗎?
證明:
我的輸入是 \(\sqrt{\frac{r}{M}}\sum_{j=0}^{\frac{M}{r}-1}|j*r\rangle\)
只有在r的整數倍的地方才有值,所以有概率的只有\(|j*r\rangle\) ,因為這些值是平均的,概率的總值為1,一共有值的地方有\(M/r\)個,所以每個地方的概率都是 \(r/M\) ,又因為這里是概率幅,所以這里提到前面的是 \(\sqrt{\frac{r}{M}}\) 。
傅里葉矩陣,在前面我們已經提到,在矩陣前有一個系數\(\sqrt{\frac{1}{M}}\) ,矩陣里第i行j列的就是 \(\omega ^{ij}\) 。
如果我們要求 \(\beta_{k \frac{M}{r}}\) 的值怎么算?
M/r是\(\beta\) 的周期,前面的k是第幾個周期的計數,\(k \frac{M}{r}\)對應的,也就是\(\omega\)的i, \(\omega\)的j是第幾列的意思,這里是j*r
\(\begin{align}\beta_{k \frac{M}{r}}=&\sqrt{\frac{r}{M}} *\sqrt{\frac{1}{M}} \sum_{j=0}^{\frac{M}{r}-1} \omega^{k\frac{M}{r}j*r}\\&= \frac{\sqrt{r}}{M}\sum_{j=0}^{\frac{M}{r}-1} \omega^{k*M*j} \\ &=\frac{\sqrt{r}}{M}\sum_{j=0}^{\frac{M}{r}-1} 1^{k*j} \\ &= \frac{\sqrt{r}}{M} *\frac{M}{r} \\ &= \frac{1}{\sqrt{r}}\end{align}\)
M就是先前的N,所以 \(\omega^M=1\) 。
綜上,我們可知,\(\beta\)在周期處的值都相等。
那么為什么,其他地方的也都是0呢?
可以直接去推一推,會抵消,也可以這么想,在周期處的概率為1/r,而周期處一共有r個,由於概率和為1,那么其他地方必然沒有概率。
ps:大家有畫示意圖比較方便的軟件嗎?感覺自己ppt繪圖能畫死在這
參考資料: