使用三个量子位在IBM Q上实现Grover算法的预言


10

我正在尝试通过实现三个量子位的Grover算法来适应IBM Q,但是难以实现Oracle。

您能否展示如何做到这一点或建议一些好的资源来习惯IBM Q电路编程?

我想要做的是通过翻转一个符号来标记一个任意状态,就像预言中那样。

例如,我有

1个/8|000+|001+|010+|011+|100+|101+|110+|111

我想标记通过翻转其标志。我以某种方式理解CCZ闸门可以解决问题,但是IBM Q中没有CCZ闸门。某些闸门的组合将起到与CCZ相同的作用,但是我不确定如何做到这一点。我还为其他情况而苦苦挣扎,不仅是。- | 111 | 111 |111-|111|111

两个量子位的情况对我来说很简单,但是三个量子位的关心仍然让我感到困惑。


1
他们的文档包括格罗弗算法的一些示例,尽管我不记得搜索空间有多大。
Norrius

感谢您的评论。是的,此页面(quantumexperience.ng.bluemix.net/proxy/tutorial/full-user-guide/…)解释了两个量子位Grover的算法实现。
比克(Bick)

Answers:


4

我在回答我的问题。谷歌搜索后,我发现这张图片显示了CNOT,T匕首和T闸门的CCZ闸门。我在IBM Q上尝试了此方法,并成功了。我想探究为什么它起作用,但这是另一个故事。

对于感兴趣的人,这是我的Grover算法的量子电路,它通过一次迭代找到| 111>。

Grover的算法通过一次迭代找到| 111>


1
您想查找可控的NOT门(也称为Toffoli)的标准电路。我的Nielsen&Chuang版中的图4.9。要转换成受控相位的门,只需在目标量子位之前和之后都粘贴一个Hadamard(或者,如果两端已经有Hadamard,只需将其移除)即可。
DaftWullie

0

我在这里使用qiskit对多个量子位实现了相同的问题。

...|111

通常,该想法是在目标位上使用Hadamard,然后是CCX门,然后在目标位上使用另一个Hadamard,来模拟CCZ门。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.