量子傅里叶变换

傅里叶变换

前文中我们了解了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

posted @ 2019-07-29 21:37  夏天喵  阅读(2135)  评论(0编辑  收藏