傅里叶变换
前文中我们了解了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^{ heta_1 i} =cos heta_1 +i sin heta_1 $
$y=e^{ heta_2 i} =cos heta_2 +i sin heta_2 $
那么,
是以,(omega)的相乘,表达出来是 ( heta) 的相加。
如果让 ( heta_1= 2 pi /N) ,那么(omega,omega^2, omega^3,…,omega^{N}) 所对应的 ( heta) 就正好是 ( heta_1, heta_1*2, heta_1*3, heta_1*4,…,, heta_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 eq 0) 为N 如果(j=0)
- (frac{omega^{nj}-1}{omega^j-1}=0 (j eq0))
- (omega) 的共轭转置是 (omega^{-1})
量子傅里叶变换和普通的傅里叶变换有有什么区别呢?
量子傅里叶变换更快
简单里离散傅里叶变换,需要的时间是 (N^2)
快速傅里叶变换的是 (Nlog N)
而量子傅里叶是 (n^2= log^2N)
量子变换的两个有趣性质
量子傅里叶的电路图如下图,输入是 (sum_{i=0}^{N-1} alpha_i |i angle) 输出是 (sum_{i=0}^{N-1} eta_i |i angle)
Convolution-Multiplication
如果我们输入的量子态的概率幅为 (alpha_0 , alpha_1, alpha_2, alpha_3,…, alpha_{N-1}) ,输出的量子态的概率幅为 (eta_0 , eta_1, eta_2, eta_3,…, eta_{N-1})
则,当我们将输入的概率幅变为:(alpha_{N-},alpha_0 , alpha_1, alpha_2, …, alpha_{N-2}) 输出的概率不变。(这里写得是概率,不是概率幅,概率是概率幅的平方)
why?
原本的输入他们对应的输出是这样的
(eta_0=alpha_0+alpha_1+alpha_2+…+alpha_{N-1})
(eta_1=alpha_0+omegaalpha_1+omega^2alpha_2+…+omega^{N-1}alpha_{N-1})
(eta_i=sum_j omega^{ij} alpha_j)
当我们改变的我们输入的顺序后
(egin{align}eta_1'&=alpha_{N-1}+omega alpha_0+ omega^2 alpha_1+omega^3alpha_2+…+omega^{N-1}alpha_{N-2}\ &= omega^{N}alpha_{N-1}+omega alpha_0+ omega^2 alpha_1+omega^3alpha_2+…+omega^{N-1}alpha_{N-2} \ &= omega(alpha_0+omegaalpha_1+omega^2alpha_2+…+omega^{N-1}alpha_{N-1}) \&= omega eta_1 end{align})
在等式的第二步之所以能直接在(alpha_{N-1})前面加上一个(omega^N) ,是因为 (omega^N=1)
(eta_1)似乎和(eta_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 angle)
只有在r的整数倍的地方才有值,所以有概率的只有(|j*r angle) ,因为这些值是平均的,概率的总值为1,一共有值的地方有(M/r)个,所以每个地方的概率都是 (r/M) ,又因为这里是概率幅,所以这里提到前面的是 (sqrt{frac{r}{M}}) 。
傅里叶矩阵,在前面我们已经提到,在矩阵前有一个系数(sqrt{frac{1}{M}}) ,矩阵里第i行j列的就是 (omega ^{ij}) 。
如果我们要求 (eta_{k frac{M}{r}}) 的值怎么算?
M/r是(eta) 的周期,前面的k是第几个周期的计数,(k frac{M}{r})对应的,也就是(omega)的i, (omega)的j是第几列的意思,这里是j*r
(egin{align}eta_{k frac{M}{r}}=&sqrt{frac{r}{M}} *sqrt{frac{1}{M}} sum_{j=0}^{frac{M}{r}-1} omega^{kfrac{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) 。
综上,我们可知,(eta)在周期处的值都相等。
那么为什么,其他地方的也都是0呢?
可以直接去推一推,会抵消,也可以这么想,在周期处的概率为1/r,而周期处一共有r个,由于概率和为1,那么其他地方必然没有概率。
ps:大家有画示意图比较方便的软件吗?感觉自己ppt绘图能画死在这
参考资料: