3 qbits的量子傅立叶变换代码

时间:2014-05-04 12:24:36

标签: javascript algorithm fft quantum-computing

背景

我遇到了一个Javascript量子模拟器,并试图编写代码(即量子电路)来实现3 qbit量子傅立叶变换。

我能得到的最接近的如下所示: QFT result

这是基于QFT的章节,来自"量子计算和量子信息"尼尔森和庄。 (电路末端的条件NOT门用于将输出位交换为正确的顺序 - QFT反转位的顺序。)

我也尝试过基于wikipedia QFT article的电路,但没有接近答案。

问题

任何人都可以帮助纠正我的算法来计算QFT吗?

(我认为这个bug最有可能出现在我的电路中,但我想底层Javascript实现中也可能存在错误?)

1 个答案:

答案 0 :(得分:3)

来自维基百科的电路不起作用的原因是因为所提供的相位门顺时针转动而不是逆时针转动(例如-45度而不是+45度)。维基百科上的电路(也可能是教科书)使用的是R_(pi / 2)门,但你有一个R _( - pi / 2)门。

有几种方法可以解决这个问题:

  • 使用Z(-180), - 90和-45模拟+45度门。类似的想法+90。
  • 将电路翻转过来,使电线1上的电线现在在电线3上,反之亦然。
  • 将交换部分(最后三个X门)从末尾移动到开始
  • 反转所有门的顺序,除了最后的三个X.
  • (我认为)恰好应用上述三种。
  • 可能还有很多方法。找出每个人工作的原因很有意思。

对不起,后退阶段令人困惑。 (这实际上是我的电路模拟器,我为blog post that includes a solution写的。)