傅里叶变换
前文中我们了解了Hadamard变换,本文将要介绍傅里叶变换。
傅里叶变换的使用方式和Hadamard变换非常类似。
a图大家应该不陌生了,这个就是我们在简单的量子算法(二):Simon's Algorithm中介绍的Simon‘s algorithm,而b图,只是把这个电路中的Hadamard门变成量子傅里叶,就成了一个可以period finding的电路。而period finding是Shor算法的基础。
那么傅里叶白变换的矩阵表示长什么样子呢?
一个N比特的傅里叶是这样的:
\[QFT_N= \frac{1}{\sqrt N}\left[ \begin{array}{}{1} &{1}&1&…&1 \\ 1&{\omega} &{\omega^2} &{…} &{\omega^{N-1}} \\ 1&{\omega^2} &{\omega^4} &{…} &{\omega^{2*(N-1)}} \\… \\ 1&{\omega^{N-1}} &{\omega^{(N-1)*2}} &{…} &{\omega^{(N-1)*(N-1)}}\end{array}\right]\]
其中 \(\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 $
那么,
\[\begin{align}x*y&=(\cos \theta_1 +i \sin \theta_1)(\cos \theta_2 +i \sin \theta_2) \\ &= \cos \theta_1 cos\theta_2+ isin\theta_1\cos \theta_2 +i\cos \theta_1\sin \theta_2 + \sin \theta_1 \sin \theta_2 \\ &=cos(\theta_1+\theta_2)+sin(\theta_1+\theta_2) \\&=e^{i(\theta_1+\theta_2)} \end{align}\]
是以,\(\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\)
当我们改变的我们输入的顺序后
\[\beta_0’=\alpha_{N-1}+\alpha_0+\alpha_1+…+\alpha_{N-2}\]
\(\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绘图能画死在这
参考资料:
Quantume Mechanics & Quantume Computation Lecture 9