三量子比特的量子傅里叶变换代码

5

背景

我发现了一个JavaScript量子模拟器,并试图编写代码(即量子电路)来实现3个量子比特的量子傅里叶变换。

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

这是基于 Nielsen 和 Chuang 的《量子计算与量子信息》中关于 QFT 的章节。 (电路末尾的条件 NOT 门旨在交换输出位以正确的顺序排列 - QFT 反转了位的顺序。)

我还尝试了一种基于维基百科 QFT 文章的电路,但离答案更远了。

问题

有人可以帮忙纠正我的计算 QFT 的算法吗?

(我认为最有可能的错误在于我的电路,但我想也有可能是底层 JavaScript 实现中存在错误?)


模拟器在这里 - Peter de Rivaz
将您的图表倒过来可以得到正确的结果。 - Evgeny Kluev
@Evgeny Brilliant - 谢谢你! - Peter de Rivaz
顺便提一下,该电路是博客文章的一部分,其中包括一个解决方案。 - Craig Gidney
1个回答

3
维基百科提供的电路无法工作是因为所提供的相位门顺时针旋转而不是逆时针旋转(例如,是-45度而不是+45度)。维基百科上的电路(可能还有教科书)使用的是R_(pi/2)门,但您却有一个R_(-pi/2)门。
有几种方法可以解决这个问题:
  • 使用Z(-180),-90和-45模拟+45度门。+90度同理。
  • 将电路倒置,使线1上的门现在变成了之后的线3上的门,反之亦然。
  • 将交换部分(最后三个X门)从末尾移到开头
  • 颠倒所有门的顺序,除了末尾的三个X门。
  • (我认为)应用以上三种方法中的任意三种。
  • 可能还有更多方法。弄清每种方法的原理很有趣。
抱歉造成困惑。 (实际上是我的电路模拟器,在一篇包含解决方案的博客文章中编写的。)

有很多方法可以解决它,谢谢!现在我可以看到中间结果应该是什么样子的,有了正确的电路,它开始变得更加清晰。我正在努力建立更好的直觉,以便能够决定是否相信多世界诠释 - 再次感谢! - Peter de Rivaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接